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