| OLD | NEW |
| (Empty) |
| 1 /******************************************************************** | |
| 2 * COPYRIGHT: | |
| 3 * Copyright (c) 1997-2012, International Business Machines Corporation and | |
| 4 * others. All Rights Reserved. | |
| 5 ********************************************************************/ | |
| 6 /*******************************************************************************
* | |
| 7 * | |
| 8 * File CCOLLTST.C | |
| 9 * | |
| 10 * Modification History: | |
| 11 * Name Description | |
| 12 * Madhu Katragadda Creation | |
| 13 ********************************************************************************
* | |
| 14 */ | |
| 15 #include <stdio.h> | |
| 16 | |
| 17 #include "unicode/utypes.h" | |
| 18 | |
| 19 #if !UCONFIG_NO_COLLATION | |
| 20 | |
| 21 #include "cintltst.h" | |
| 22 #include "ccolltst.h" | |
| 23 #include "unicode/ucol.h" | |
| 24 #include "unicode/ustring.h" | |
| 25 #include "cmemory.h" | |
| 26 | |
| 27 void addCollTest(TestNode** root); | |
| 28 | |
| 29 void addCollTest(TestNode** root) | |
| 30 { | |
| 31 addCollAPITest(root); | |
| 32 addCurrencyCollTest(root); | |
| 33 #if !UCONFIG_NO_NORMALIZATION | |
| 34 addNormTest(root); | |
| 35 #endif | |
| 36 addGermanCollTest(root); | |
| 37 addSpanishCollTest(root); | |
| 38 addFrenchCollTest(root); | |
| 39 addKannaCollTest(root); | |
| 40 addTurkishCollTest(root); | |
| 41 addEnglishCollTest(root); | |
| 42 addFinnishCollTest(root); | |
| 43 | |
| 44 /* WEIVTODO: return tests here */ | |
| 45 addRuleBasedCollTest(root); | |
| 46 addCollIterTest(root); | |
| 47 addAllCollTest(root); | |
| 48 addMiscCollTest(root); | |
| 49 #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILE_IO | |
| 50 addSearchTest(root); | |
| 51 #endif | |
| 52 } | |
| 53 | |
| 54 | |
| 55 | |
| 56 /*Internal functions used*/ | |
| 57 static char* dumpSk(uint8_t *sourceKey, char *sk) { | |
| 58 uint32_t kLen = (uint32_t)strlen((const char *)sourceKey); | |
| 59 uint32_t i = 0; | |
| 60 | |
| 61 *sk = 0; | |
| 62 | |
| 63 for(i = 0; i<kLen; i++) { | |
| 64 sprintf(sk+2*i, "%02X", sourceKey[i]); | |
| 65 } | |
| 66 return sk; | |
| 67 } | |
| 68 | |
| 69 static const char *getCompareResult(UCollationResult result) | |
| 70 { | |
| 71 if (result == UCOL_LESS) | |
| 72 { | |
| 73 return "LESS"; | |
| 74 } | |
| 75 else if (result == UCOL_EQUAL) | |
| 76 { | |
| 77 return "EQUAL"; | |
| 78 } | |
| 79 else if (result == UCOL_GREATER) | |
| 80 { | |
| 81 return "GREATER"; | |
| 82 } | |
| 83 return "invalid UCollationResult?"; | |
| 84 } | |
| 85 | |
| 86 void reportCResult( const UChar source[], const UChar target[], | |
| 87 uint8_t *sourceKey, uint8_t *targetKey, | |
| 88 UCollationResult compareResult, | |
| 89 UCollationResult keyResult, | |
| 90 UCollationResult incResult, | |
| 91 UCollationResult expectedResult ) | |
| 92 { | |
| 93 if (expectedResult < -1 || expectedResult > 1) | |
| 94 { | |
| 95 log_err("***** invalid call to reportCResult ****\n"); | |
| 96 return; | |
| 97 } | |
| 98 | |
| 99 if (compareResult != expectedResult) | |
| 100 { | |
| 101 log_err("Compare(%s , %s) returned: %s expected: %s\n", aescstrdup(sourc
e,-1), aescstrdup(target,-1), | |
| 102 getCompareResult(compareResult), getCompareResult(expectedResult) ); | |
| 103 } | |
| 104 | |
| 105 if (incResult != expectedResult) | |
| 106 { | |
| 107 log_err("incCompare(%s , %s) returned: %s expected: %s\n", aescstrdup(so
urce,-1), aescstrdup(target,-1), | |
| 108 getCompareResult(incResult), getCompareResult(expectedResult) ); | |
| 109 } | |
| 110 | |
| 111 if (keyResult != expectedResult) | |
| 112 { | |
| 113 log_err("KeyCompare(%s , %s) returned: %s expected: %s\n", aescstrdup(so
urce,-1), aescstrdup(target,-1), | |
| 114 getCompareResult(keyResult), getCompareResult(expectedResult) ); | |
| 115 } | |
| 116 | |
| 117 if (keyResult != compareResult) | |
| 118 { | |
| 119 log_err("difference between sortkey and compare result for (%s , %s) Key
s: %s compare %s\n", aescstrdup(source,-1), aescstrdup(target,-1), | |
| 120 getCompareResult(keyResult), getCompareResult(compareResult)); | |
| 121 } | |
| 122 | |
| 123 if(keyResult != expectedResult || keyResult != compareResult) | |
| 124 { | |
| 125 char sk[10000]; | |
| 126 log_verbose("SortKey1: %s\n", dumpSk(sourceKey, sk)); | |
| 127 log_verbose("SortKey2: %s\n", dumpSk(targetKey, sk)); | |
| 128 } | |
| 129 } | |
| 130 | |
| 131 #endif /* #if !UCONFIG_NO_COLLATION */ | |
| OLD | NEW |