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 **/
21class PluralRulesTest : public IntlTest {
22    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
23
24private:
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