Imported Upstream version 58.1
[platform/upstream/icu.git] / source / test / intltest / ucaconf.h
1 // Copyright (C) 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