1 /********************************************************************
2  * COPYRIGHT:
3  * Copyright (c) 1997-2013, International Business Machines Corporation and
4  * others. All Rights Reserved.
5  ********************************************************************/
6 
7 #ifndef _PluralRulesTest
8 #define _PluralRulesTest
9 
10 #include "unicode/utypes.h"
11 
12 #if !UCONFIG_NO_FORMATTING
13 
14 #include "intltest.h"
15 #include "unicode/localpointer.h"
16 #include "unicode/plurrule.h"
17 
18 /**
19  * Test basic functionality of various API functions
20  **/
21 class PluralRulesTest : public IntlTest {
22     void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
23 
24 private:
25     /**
26      * Performs tests on many API functions, see detailed comments in source code
27      **/
28     void testAPI();
29     void testGetUniqueKeywordValue();
30     void testGetSamples();
31     void testWithin();
32     void testGetAllKeywordValues();
33     void testOrdinal();
34     void testSelect();
35     void testAvailbleLocales();
36     void testParseErrors();
37     void testFixedDecimal();
38 
39     void assertRuleValue(const UnicodeString& rule, double expected);
40     void assertRuleKeyValue(const UnicodeString& rule, const UnicodeString& key,
41                             double expected);
42     void checkSelect(const LocalPointer<PluralRules> &rules, UErrorCode &status,
43                                   int32_t line, const char *keyword, ...);
44 };
45 
46 #endif /* #if !UCONFIG_NO_FORMATTING */
47 
48 #endif
49