• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 */) override;
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