16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/********************************************************************
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * COPYRIGHT:
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (c) 1997-2013, International Business Machines Corporation and
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * others. All Rights Reserved.
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ********************************************************************/
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef _PLURALFORMATTEST
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define _PLURALFORMATTEST
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/utypes.h"
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/plurrule.h"
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/plurfmt.h"
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#if !UCONFIG_NO_FORMATTING
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "intltest.h"
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/**
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Test basic functionality of various API functions
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org **/
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgclass PluralFormatTest : public IntlTest {
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgprivate:
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /**
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     * Performs tests on many API functions, see detailed comments in source code
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org     **/
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void pluralFormatBasicTest(/* char* par */);
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void pluralFormatUnitTest(/* char* par */);
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void pluralFormatLocaleTest(/* char* par */);
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void pluralFormatExtendedTest();
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void pluralFormatExtendedParseTest();
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void ordinalFormatTest();
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void TestDecimals();
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void numberFormatTest(PluralFormat* plFmt,
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                          NumberFormat *numFmt,
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                          int32_t start,
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                          int32_t end,
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                          UnicodeString* numOddAppendStr,
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                          UnicodeString* numEvenAppendStr,
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                          UBool overwrite, // overwrite the numberFormat.format result
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                          UnicodeString *message);
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    void helperTestResults(const char** localeArray,
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                           int32_t capacityOfArray,
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                           UnicodeString& testPattern,
476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org                           int8_t *expectingResults);
486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif /* #if !UCONFIG_NO_FORMATTING */
516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
53