1 2/******************************************************************** 3 * COPYRIGHT: 4 * Copyright (c) 1997-2009, International Business Machines Corporation and 5 * others. All Rights Reserved. 6 ********************************************************************/ 7 8#include "unicode/utypes.h" 9 10#if !UCONFIG_NO_COLLATION 11 12#ifndef _COLL 13#include "unicode/coll.h" 14#endif 15 16#ifndef _TBLCOLL 17#include "unicode/tblcoll.h" 18#endif 19 20#ifndef _UNISTR 21#include "unicode/unistr.h" 22#endif 23 24#ifndef _SORTKEY 25#include "unicode/sortkey.h" 26#endif 27 28#ifndef _ESCOLL 29#include "escoll.h" 30#endif 31 32#include "sfwdchit.h" 33 34CollationSpanishTest::CollationSpanishTest() 35: myCollation(0) 36{ 37 UErrorCode status = U_ZERO_ERROR; 38 myCollation = Collator::createInstance(Locale("es", "ES", ""),status); 39} 40 41CollationSpanishTest::~CollationSpanishTest() 42{ 43 delete myCollation; 44} 45 46const UChar CollationSpanishTest::testSourceCases[][CollationSpanishTest::MAX_TOKEN_LEN] = { 47 {0x61, 0x6c, 0x69, 0x61, 0x73, 0}, 48 {0x45, 0x6c, 0x6c, 0x69, 0x6f, 0x74, 0}, 49 {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0}, 50 {0x61, 0x63, 0x48, 0x63, 0}, 51 {0x61, 0x63, 0x63, 0}, 52 {0x61, 0x6c, 0x69, 0x61, 0x73, 0}, 53 {0x61, 0x63, 0x48, 0x63, 0}, 54 {0x61, 0x63, 0x63, 0}, 55 {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0}, 56}; 57 58const UChar CollationSpanishTest::testTargetCases[][CollationSpanishTest::MAX_TOKEN_LEN] = { 59 {0x61, 0x6c, 0x6c, 0x69, 0x61, 0x73, 0}, 60 {0x45, 0x6d, 0x69, 0x6f, 0x74, 0}, 61 {0x68, 0x65, 0x6c, 0x6c, 0x4f, 0}, 62 {0x61, 0x43, 0x48, 0x63, 0}, 63 {0x61, 0x43, 0x48, 0x63, 0}, 64 {0x61, 0x6c, 0x6c, 0x69, 0x61, 0x73, 0}, 65 {0x61, 0x43, 0x48, 0x63, 0}, 66 {0x61, 0x43, 0x48, 0x63, 0}, 67 {0x68, 0x65, 0x6c, 0x6c, 0x4f, 0}, 68}; 69 70const Collator::EComparisonResult CollationSpanishTest::results[] = { 71 Collator::LESS, 72 Collator::LESS, 73 Collator::GREATER, 74 Collator::LESS, 75 Collator::LESS, 76 // test primary > 5 77 Collator::LESS, 78 Collator::EQUAL, 79 Collator::LESS, 80 Collator::EQUAL 81}; 82 83void CollationSpanishTest::TestTertiary(/* char* par */) 84{ 85 int32_t i = 0; 86 myCollation->setStrength(Collator::TERTIARY); 87 for (i = 0; i < 5 ; i++) { 88 doTest(myCollation, testSourceCases[i], testTargetCases[i], results[i]); 89 } 90} 91void CollationSpanishTest::TestPrimary(/* char* par */) 92{ 93 int32_t i; 94 myCollation->setStrength(Collator::PRIMARY); 95 for (i = 5; i < 9; i++) { 96 doTest(myCollation, testSourceCases[i], testTargetCases[i], results[i]); 97 } 98} 99 100void CollationSpanishTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par */) 101{ 102 if (exec) logln("TestSuite CollationSpanishTest: "); 103 104 if((!myCollation) && exec) { 105 dataerrln(__FILE__ " cannot test - failed to create collator."); 106 name = "some test"; 107 return; 108 } 109 switch (index) { 110 case 0: name = "TestPrimary"; if (exec) TestPrimary(/* par */); break; 111 case 1: name = "TestTertiary"; if (exec) TestTertiary(/* par */); break; 112 default: name = ""; break; 113 } 114} 115 116#endif /* #if !UCONFIG_NO_COLLATION */ 117