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