15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/******************************************************************** 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * COPYRIGHT: 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright (c) 1997-2003, International Business Machines Corporation and 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * others. All Rights Reserved. 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ********************************************************************/ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * CollationGermanTest is a third level test class. This tests the locale 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * specific primary, secondary and tertiary rules. For example, o-umlaut 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * is sorted with expanding char e. 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) */ 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifndef _DECOLL 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define _DECOLL 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "unicode/utypes.h" 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#if !UCONFIG_NO_COLLATION 183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "tscoll.h" 203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)class CollationGermanTest: public IntlTestCollator { 223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)public: 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // If this is too small for the test data, just increase it. 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Just don't make it too large, otherwise the executable will get too big 253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) enum EToken_Len { MAX_TOKEN_LEN = 16 }; 263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) 273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) CollationGermanTest(); 283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) virtual ~CollationGermanTest(); 2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL ); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // perform test with strength PRIMARY 324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) void TestPrimary(/* char* par */); 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) // perform test with strength SECONDARY 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void TestSecondary(/* char* par */); 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) // perform tests with strength TERTIARY 38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) void TestTertiary(/* char* par */); 3946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)private: 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static const UChar testSourceCases[][MAX_TOKEN_LEN]; 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static const UChar testTargetCases[][MAX_TOKEN_LEN]; 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) static const Collator::EComparisonResult results[][2]; 447d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 457d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) Collator *myCollation; 467d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}; 477d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles) 487d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#endif /* #if !UCONFIG_NO_COLLATION */ 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 50#endif 51