1 /******************************************************************** 2 * COPYRIGHT: 3 * Copyright (c) 2002-2012, International Business Machines Corporation and 4 * others. All Rights Reserved. 5 ********************************************************************/ 6 7 /** 8 * UCAConformanceTest performs conformance tests defined in the data 9 * files. ICU ships with stub data files, as the whole test are too 10 * long. To do the whole test, download the test files. 11 */ 12 13 #ifndef _UCACONF_TST 14 #define _UCACONF_TST 15 16 #include "unicode/utypes.h" 17 18 #if !UCONFIG_NO_COLLATION 19 20 #include "unicode/tblcoll.h" 21 #include "tscoll.h" 22 23 #include <stdio.h> 24 25 class UCAConformanceTest: public IntlTestCollator { 26 public: 27 UCAConformanceTest(); 28 virtual ~UCAConformanceTest(); 29 30 void runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par = NULL */); 31 32 void TestTableNonIgnorable(/* par */); 33 void TestTableShifted(/* par */); 34 void TestRulesNonIgnorable(/* par */); 35 void TestRulesShifted(/* par */); 36 private: 37 void initRbUCA(); 38 void setCollNonIgnorable(Collator *coll); 39 void setCollShifted(Collator *coll); 40 void testConformance(const Collator *coll); 41 void openTestFile(const char *type); 42 43 RuleBasedCollator *UCA; // rule-based so rules are available 44 Collator *rbUCA; 45 FILE *testFile; 46 UErrorCode status; 47 char testDataPath[1024]; 48 UBool isAtLeastUCA62; 49 }; 50 51 #endif /* #if !UCONFIG_NO_COLLATION */ 52 53 #endif 54