Index: icu46/source/test/cintltst/ccolltst.c |
=================================================================== |
--- icu46/source/test/cintltst/ccolltst.c (revision 0) |
+++ icu46/source/test/cintltst/ccolltst.c (revision 0) |
@@ -0,0 +1,129 @@ |
+/******************************************************************** |
+ * COPYRIGHT: |
+ * Copyright (c) 1997-2009, International Business Machines Corporation and |
+ * others. All Rights Reserved. |
+ ********************************************************************/ |
+/******************************************************************************** |
+* |
+* File CCOLLTST.C |
+* |
+* Modification History: |
+* Name Description |
+* Madhu Katragadda Creation |
+********************************************************************************* |
+*/ |
+#include <stdio.h> |
+ |
+#include "unicode/utypes.h" |
+ |
+#if !UCONFIG_NO_COLLATION |
+ |
+#include "cintltst.h" |
+#include "ccolltst.h" |
+#include "unicode/ucol.h" |
+#include "unicode/ustring.h" |
+#include "cmemory.h" |
+ |
+void addCollTest(TestNode** root); |
+ |
+void addCollTest(TestNode** root) |
+{ |
+ addCollAPITest(root); |
+ addCurrencyCollTest(root); |
+ addNormTest(root); |
+ addGermanCollTest(root); |
+ addSpanishCollTest(root); |
+ addFrenchCollTest(root); |
+ addKannaCollTest(root); |
+ addTurkishCollTest(root); |
+ addEnglishCollTest(root); |
+ addFinnishCollTest(root); |
+ |
+ /* WEIVTODO: return tests here */ |
+ addRuleBasedCollTest(root); |
+ addCollIterTest(root); |
+ addAllCollTest(root); |
+ addMiscCollTest(root); |
+#if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILE_IO |
+ addSearchTest(root); |
+#endif |
+} |
+ |
+ |
+ |
+/*Internal functions used*/ |
+static char* dumpSk(uint8_t *sourceKey, char *sk) { |
+ uint32_t kLen = (uint32_t)strlen((const char *)sourceKey); |
+ uint32_t i = 0; |
+ |
+ *sk = 0; |
+ |
+ for(i = 0; i<kLen; i++) { |
+ sprintf(sk+2*i, "%02X", sourceKey[i]); |
+ } |
+ return sk; |
+} |
+ |
+static const char *getCompareResult(UCollationResult result) |
+{ |
+ if (result == UCOL_LESS) |
+ { |
+ return "LESS"; |
+ } |
+ else if (result == UCOL_EQUAL) |
+ { |
+ return "EQUAL"; |
+ } |
+ else if (result == UCOL_GREATER) |
+ { |
+ return "GREATER"; |
+ } |
+ return "invalid UCollationResult?"; |
+} |
+ |
+void reportCResult( const UChar source[], const UChar target[], |
+ uint8_t *sourceKey, uint8_t *targetKey, |
+ UCollationResult compareResult, |
+ UCollationResult keyResult, |
+ UCollationResult incResult, |
+ UCollationResult expectedResult ) |
+{ |
+ if (expectedResult < -1 || expectedResult > 1) |
+ { |
+ log_err("***** invalid call to reportCResult ****\n"); |
+ return; |
+ } |
+ |
+ if (compareResult != expectedResult) |
+ { |
+ log_err("Compare(%s , %s) returned: %s expected: %s\n", aescstrdup(source,-1), aescstrdup(target,-1), |
+ getCompareResult(compareResult), getCompareResult(expectedResult) ); |
+ } |
+ |
+ if (incResult != expectedResult) |
+ { |
+ log_err("incCompare(%s , %s) returned: %s expected: %s\n", aescstrdup(source,-1), aescstrdup(target,-1), |
+ getCompareResult(incResult), getCompareResult(expectedResult) ); |
+ } |
+ |
+ if (keyResult != expectedResult) |
+ { |
+ log_err("KeyCompare(%s , %s) returned: %s expected: %s\n", aescstrdup(source,-1), aescstrdup(target,-1), |
+ getCompareResult(keyResult), getCompareResult(expectedResult) ); |
+ } |
+ |
+ if (keyResult != compareResult) |
+ { |
+ log_err("difference between sortkey and compare result for (%s , %s) Keys: %s compare %s\n", aescstrdup(source,-1), aescstrdup(target,-1), |
+ getCompareResult(keyResult), getCompareResult(compareResult)); |
+ } |
+ |
+ if(keyResult != expectedResult || keyResult != compareResult) |
+ { |
+ char sk[10000]; |
+ log_verbose("SortKey1: %s\n", dumpSk(sourceKey, sk)); |
+ log_verbose("SortKey2: %s\n", dumpSk(targetKey, sk)); |
+ } |
+} |
+ |
+#endif /* #if !UCONFIG_NO_COLLATION */ |
Property changes on: icu46/source/test/cintltst/ccolltst.c |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |