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