]> git.saurik.com Git - apple/icu.git/blame - icuSources/test/intltest/ficoll.cpp
ICU-511.31.tar.gz
[apple/icu.git] / icuSources / test / intltest / ficoll.cpp
CommitLineData
b75a7d8f 1/********************************************************************
729e4ab9 2 * Copyright (c) 1997-2009, International Business Machines
46f4442e 3 * Corporation and others. All Rights Reserved.
b75a7d8f
A
4 ********************************************************************/
5
6#include "unicode/utypes.h"
7
8#if !UCONFIG_NO_COLLATION
9
10#ifndef _COLL
11#include "unicode/coll.h"
12#endif
13
14#ifndef _TBLCOLL
15#include "unicode/tblcoll.h"
16#endif
17
18#ifndef _UNISTR
19#include "unicode/unistr.h"
20#endif
21
22#ifndef _SORTKEY
23#include "unicode/sortkey.h"
24#endif
25
26#ifndef _FICOLL
27#include "ficoll.h"
28#endif
29
30#include "sfwdchit.h"
31
32CollationFinnishTest::CollationFinnishTest()
33: myCollation(0)
34{
35 UErrorCode status = U_ZERO_ERROR;
46f4442e 36 myCollation = Collator::createInstance(Locale("fi", "FI", "", "collation=standard"),status);
b75a7d8f
A
37}
38
39CollationFinnishTest::~CollationFinnishTest()
40{
41 delete myCollation;
42}
43
44const UChar CollationFinnishTest::testSourceCases[][CollationFinnishTest::MAX_TOKEN_LEN] = {
45 {0x77, 0x61, 0x74, 0},
46 {0x76, 0x61, 0x74, 0},
47 {0x61, 0x00FC, 0x62, 0x65, 0x63, 0x6b, 0},
48 {0x4c, 0x00E5, 0x76, 0x69, 0},
49 {0x77, 0x61, 0x74, 0}
50};
51
52const UChar CollationFinnishTest::testTargetCases[][CollationFinnishTest::MAX_TOKEN_LEN] = {
53 {0x76, 0x61, 0x74, 0},
54 {0x77, 0x61, 0x79, 0},
55 {0x61, 0x78, 0x62, 0x65, 0x63, 0x6b, 0},
56 {0x4c, 0x00E4, 0x77, 0x65, 0},
57 {0x76, 0x61, 0x74, 0}
58};
59
60const Collator::EComparisonResult CollationFinnishTest::results[] = {
61 Collator::GREATER,
62 Collator::LESS,
63 Collator::GREATER,
64 Collator::LESS,
65 // test primary > 4
66 Collator::EQUAL,
67};
68
69void CollationFinnishTest::TestTertiary(/* char* par */)
70{
71 int32_t i = 0;
72 myCollation->setStrength(Collator::TERTIARY);
73 for (i = 0; i < 4 ; i++) {
74 doTest(myCollation, testSourceCases[i], testTargetCases[i], results[i]);
75 }
76}
77void CollationFinnishTest::TestPrimary(/* char* par */)
78{
79 int32_t i;
80 myCollation->setStrength(Collator::PRIMARY);
81 for (i = 4; i < 5; i++) {
82 doTest(myCollation, testSourceCases[i], testTargetCases[i], results[i]);
83 }
84}
85
86void CollationFinnishTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
87{
88 if (exec) logln("TestSuite CollationFinnishTest: ");
89
90 if((!myCollation) && exec) {
729e4ab9 91 dataerrln(__FILE__ " cannot test - failed to create collator.");
73c04bcf 92 name = "some test";
b75a7d8f
A
93 return;
94 }
95 switch (index) {
96 case 0: name = "TestPrimary"; if (exec) TestPrimary(/* par */); break;
97 case 1: name = "TestTertiary"; if (exec) TestTertiary(/* par */); break;
98 default: name = ""; break;
99 }
100}
101
102#endif /* #if !UCONFIG_NO_COLLATION */