public void testCompare(String str1, String str2, OPTION option) throws IOException {
byte[] buffer1 = writeStringToBytes(str1);
byte[] buffer2 = writeStringToBytes(str2);
switch (option) {
case STANDARD:
assertEquals(str1.compareTo(str2), compareTo(buffer1, 0, buffer2, 0));
int n1 = normalize(buffer1, 0);
int n2 = normalize(buffer2, 0);
assertTrue(isSameSign(str1.compareTo(str2), n1 - n2));
break;
case RAW_BYTE:
assertEquals(str1.compareTo(str2), rawByteCompareTo(buffer1, 0, buffer2, 0));
break;
case LOWERCASE:
assertEquals(str1.compareToIgnoreCase(str2), lowerCaseCompareTo(buffer1, 0, buffer2, 0));
break;
}
}