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