1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/********************************************************************
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * COPYRIGHT:
385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho * Copyright (c) 1997-2009, International Business Machines Corporation and
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * others. All Rights Reserved.
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************/
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/utypes.h"
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#if !UCONFIG_NO_COLLATION
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef _COLL
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/coll.h"
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef _TBLCOLL
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/tblcoll.h"
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef _UNISTR
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/unistr.h"
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#ifndef _SORTKEY
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/sortkey.h"
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "lcukocol.h"
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "sfwdchit.h"
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruLotusCollationKoreanTest::LotusCollationKoreanTest()
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru: myCollation(0)
33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    UErrorCode status = U_ZERO_ERROR;
35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation = Collator::createInstance("ko_kr", status);
36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(U_SUCCESS(status)) {
37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      myCollation->setAttribute(UCOL_NORMALIZATION_MODE, UCOL_ON, status);
38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    } else {
3985bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      errcheckln(status, "Couldn't instantiate the collator with %s", u_errorName(status));
40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      delete myCollation;
41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      myCollation = 0;
42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruLotusCollationKoreanTest::~LotusCollationKoreanTest()
47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    delete myCollation;
49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst UChar LotusCollationKoreanTest::testSourceCases[][LotusCollationKoreanTest::MAX_TOKEN_LEN] = {
52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {0xac00, 0}
53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst UChar LotusCollationKoreanTest::testTargetCases[][LotusCollationKoreanTest::MAX_TOKEN_LEN] = {
57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    {0xac01, 0}
58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst Collator::EComparisonResult LotusCollationKoreanTest::results[] = {
61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    Collator::LESS
62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru};
63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid LotusCollationKoreanTest::TestTertiary(/* char* par */)
65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    int32_t i = 0;
67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    myCollation->setStrength(Collator::TERTIARY);
68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    for (i = 0; i < 1; i++) {
70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru        doTest(myCollation, testSourceCases[i], testTargetCases[i], results[i]);
71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid LotusCollationKoreanTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ )
75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{
76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if (exec) logln("TestSuite LotusCollationKoreanTest: ");
77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    if(myCollation) {
78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      switch (index) {
79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru          case 0: name = "TestTertiary";  if (exec)   TestTertiary(/* par */); break;
80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru          default: name = ""; break;
81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      }
82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    } else {
8385bf2e2fbc60a9f938064abc8127d61da7d19882Claire Ho      dataerrln("Class collator not instantiated");
84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru      name = "";
85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru    }
86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru}
87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#endif /* #if !UCONFIG_NO_COLLATION */
89