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
25class UCAConformanceTest: public IntlTestCollator {
26public:
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 */);
36private:
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