11b362b15af34006e6a11974088a46d42b903418eJohann/********************************************************************
21b362b15af34006e6a11974088a46d42b903418eJohann * COPYRIGHT:
31b362b15af34006e6a11974088a46d42b903418eJohann * Copyright (c) 1997-2003, International Business Machines Corporation and
41b362b15af34006e6a11974088a46d42b903418eJohann * others. All Rights Reserved.
51b362b15af34006e6a11974088a46d42b903418eJohann ********************************************************************/
61b362b15af34006e6a11974088a46d42b903418eJohann
71b362b15af34006e6a11974088a46d42b903418eJohann/**
81b362b15af34006e6a11974088a46d42b903418eJohann * CollationFrenchTest is a third level test class. This tests the locale
91b362b15af34006e6a11974088a46d42b903418eJohann * specific tertiary rules.  For example, the French secondary sorting on
101b362b15af34006e6a11974088a46d42b903418eJohann * accented characters.
111b362b15af34006e6a11974088a46d42b903418eJohann */
121b362b15af34006e6a11974088a46d42b903418eJohann#ifndef _FRCOLL
13ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang#define _FRCOLL
14ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang
151b362b15af34006e6a11974088a46d42b903418eJohann#include "unicode/utypes.h"
161b362b15af34006e6a11974088a46d42b903418eJohann
171b362b15af34006e6a11974088a46d42b903418eJohann#if !UCONFIG_NO_COLLATION
181b362b15af34006e6a11974088a46d42b903418eJohann
191b362b15af34006e6a11974088a46d42b903418eJohann#include "tscoll.h"
201b362b15af34006e6a11974088a46d42b903418eJohann
211b362b15af34006e6a11974088a46d42b903418eJohannclass CollationFrenchTest: public IntlTestCollator {
221b362b15af34006e6a11974088a46d42b903418eJohannpublic:
231b362b15af34006e6a11974088a46d42b903418eJohann    // If this is too small for the test data, just increase it.
24ba164dffc5a6795bce97fae02b51ccf3330e15e4hkuang    // Just don't make it too large, otherwise the executable will get too big
251b362b15af34006e6a11974088a46d42b903418eJohann    enum EToken_Len { MAX_TOKEN_LEN = 16 };
261b362b15af34006e6a11974088a46d42b903418eJohann
271b362b15af34006e6a11974088a46d42b903418eJohann    CollationFrenchTest();
281b362b15af34006e6a11974088a46d42b903418eJohann    virtual ~CollationFrenchTest();
291b362b15af34006e6a11974088a46d42b903418eJohann    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
301b362b15af34006e6a11974088a46d42b903418eJohann
311b362b15af34006e6a11974088a46d42b903418eJohann    // perform tests with strength SECONDARY
321b362b15af34006e6a11974088a46d42b903418eJohann    void TestSecondary(/* char* par */);
331b362b15af34006e6a11974088a46d42b903418eJohann
341b362b15af34006e6a11974088a46d42b903418eJohann    // perform tests with strength TERTIARY
351b362b15af34006e6a11974088a46d42b903418eJohann    void TestTertiary(/* char* par */);
361b362b15af34006e6a11974088a46d42b903418eJohann
371b362b15af34006e6a11974088a46d42b903418eJohann    // perform extra tests
381b362b15af34006e6a11974088a46d42b903418eJohann    void TestExtra(/* char* par */);
391b362b15af34006e6a11974088a46d42b903418eJohann
401b362b15af34006e6a11974088a46d42b903418eJohannprivate:
411b362b15af34006e6a11974088a46d42b903418eJohann    static const UChar testSourceCases[][MAX_TOKEN_LEN];
421b362b15af34006e6a11974088a46d42b903418eJohann    static const UChar testTargetCases[][MAX_TOKEN_LEN];
431b362b15af34006e6a11974088a46d42b903418eJohann    static const UChar testBugs[][MAX_TOKEN_LEN];
441b362b15af34006e6a11974088a46d42b903418eJohann    static const Collator::EComparisonResult results[];
451b362b15af34006e6a11974088a46d42b903418eJohann    static const UChar testAcute[][MAX_TOKEN_LEN];
461b362b15af34006e6a11974088a46d42b903418eJohann
471b362b15af34006e6a11974088a46d42b903418eJohann    Collator *myCollation;
481b362b15af34006e6a11974088a46d42b903418eJohann};
491b362b15af34006e6a11974088a46d42b903418eJohann
501b362b15af34006e6a11974088a46d42b903418eJohann#endif /* #if !UCONFIG_NO_COLLATION */
511b362b15af34006e6a11974088a46d42b903418eJohann
521b362b15af34006e6a11974088a46d42b903418eJohann#endif
531b362b15af34006e6a11974088a46d42b903418eJohann