From 736010a4568939cbf7dbc786168b387016050bcd Mon Sep 17 00:00:00 2001 From: "Steven R. Loomis" Date: Fri, 7 Dec 2012 00:26:50 +0000 Subject: [PATCH] ICU-9655 move enumset test X-SVN-Rev: 32934 --- icu4c/source/test/intltest/itutil.cpp | 68 ++++++++- icu4c/source/test/intltest/numfmtst.cpp | 174 +++++++++--------------- 2 files changed, 133 insertions(+), 109 deletions(-) diff --git a/icu4c/source/test/intltest/itutil.cpp b/icu4c/source/test/intltest/itutil.cpp index 9353eb57b53..d9c0784a738 100644 --- a/icu4c/source/test/intltest/itutil.cpp +++ b/icu4c/source/test/intltest/itutil.cpp @@ -1,6 +1,6 @@ /******************************************************************** * COPYRIGHT: - * Copyright (c) 1997-2011, International Business Machines Corporation and + * Copyright (c) 1997-2012, International Business Machines Corporation and * others. All Rights Reserved. ********************************************************************/ @@ -32,6 +32,7 @@ extern IntlTest *createBytesTrieTest(); static IntlTest *createLocalPointerTest(); extern IntlTest *createUCharsTrieTest(); +static IntlTest *createEnumSetTest(); #define CASE(id, test) case id: \ name = #test; \ @@ -86,6 +87,14 @@ void IntlTestUtilities::runIndexedTest( int32_t index, UBool exec, const char* & callTest(*test, par); } break; + case 19: + name = "EnumSetTest"; + if (exec) { + logln("TestSuite EnumSetTest---"); logln(); + LocalPointer test(createEnumSetTest()); + callTest(*test, par); + } + break; default: name = ""; break; //needed to end loop } } @@ -466,3 +475,60 @@ void LocalPointerTest::TestLocalXyzPointerNull() { #endif /* !UCONFIG_NO_TRANSLITERATION */ } + +/** EnumSet test **/ +#include "unicode/enumset.h" + +class EnumSetTest : public IntlTest { +public: + EnumSetTest() {} + virtual void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=NULL); + void TestEnumSet(); +}; + +static IntlTest *createEnumSetTest() { + return new EnumSetTest(); +} + +void EnumSetTest::runIndexedTest(int32_t index, UBool exec, const char *&name, char * /*par*/) { + TESTCASE_AUTO_BEGIN; + TESTCASE_AUTO(TestEnumSet); + TESTCASE_AUTO_END; +} +enum myEnum { + MAX_NONBOOLEAN=-1, + THING1, + THING2, + THING3, + LIMIT_BOOLEAN +}; + +void EnumSetTest::TestEnumSet() { + EnumSet + flags; + infoln("TODO!! This test doesn't fail on error. Convert printf into error assert.\n"); + + logln("Enum is from [%d..%d]\n", MAX_NONBOOLEAN+1, + LIMIT_BOOLEAN); + + logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); + logln("Value now: %d\n", flags.getAll()); + flags.clear(); + logln("clear -Value now: %d\n", flags.getAll()); + logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); + flags.add(THING1); + logln("set THING1 -Value now: %d\n", flags.getAll()); + logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); + flags.add(THING3); + logln("set THING3 -Value now: %d\n", flags.getAll()); + logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); + flags.remove(THING2); + logln("remove THING2 -Value now: %d\n", flags.getAll()); + logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); + flags.remove(THING1); + logln("remove THING1 -Value now: %d\n", flags.getAll()); + logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); + +} diff --git a/icu4c/source/test/intltest/numfmtst.cpp b/icu4c/source/test/intltest/numfmtst.cpp index 963656fd760..60359dd0396 100644 --- a/icu4c/source/test/intltest/numfmtst.cpp +++ b/icu4c/source/test/intltest/numfmtst.cpp @@ -48,82 +48,77 @@ static const UChar ISO_CURRENCY_USD[] = {0x55, 0x53, 0x44, 0}; // "USD" // class NumberFormatTest // ***************************************************************************** -#define CASE(id,test) case id: name = #test; if (exec) { logln(#test "---"); logln((UnicodeString)""); test(); } break - #define CHECK(status,str) if (U_FAILURE(status)) { errcheckln(status, UnicodeString("FAIL: ") + str + " - " + u_errorName(status)); return; } #define CHECK_DATA(status,str) if (U_FAILURE(status)) { dataerrln(UnicodeString("FAIL: ") + str + " - " + u_errorName(status)); return; } void NumberFormatTest::runIndexedTest( int32_t index, UBool exec, const char* &name, char* /*par*/ ) { - // if (exec) logln((UnicodeString)"TestSuite DateFormatTest"); - switch (index) { - CASE(0,TestCurrencySign); - CASE(1,TestCurrency); - CASE(2,TestParse); - CASE(3,TestRounding487); - CASE(4,TestQuotes); - CASE(5,TestExponential); - CASE(6,TestPatterns); - - // Upgrade to alphaWorks - liu 5/99 - CASE(7,TestExponent); - CASE(8,TestScientific); - CASE(9,TestPad); - CASE(10,TestPatterns2); - CASE(11,TestSecondaryGrouping); - CASE(12,TestSurrogateSupport); - CASE(13,TestAPI); - - CASE(14,TestCurrencyObject); - CASE(15,TestCurrencyPatterns); - //CASE(16,TestDigitList); - CASE(16,TestWhiteSpaceParsing); - CASE(17,TestComplexCurrency); // This test removed because CLDR no longer uses choice formats in currency symbols. - CASE(18,TestRegCurrency); - CASE(19,TestSymbolsWithBadLocale); - CASE(20,TestAdoptDecimalFormatSymbols); - - CASE(21,TestScientific2); - CASE(22,TestScientificGrouping); - CASE(23,TestInt64); - - CASE(24,TestPerMill); - CASE(25,TestIllegalPatterns); - CASE(26,TestCases); - - CASE(27,TestCurrencyNames); - CASE(28,TestCurrencyAmount); - CASE(29,TestCurrencyUnit); - CASE(30,TestCoverage); - CASE(31,TestJB3832); - CASE(32,TestHost); - CASE(33,TestHostClone); - CASE(34,TestCurrencyFormat); - CASE(35,TestRounding); - CASE(36,TestNonpositiveMultiplier); - CASE(37,TestNumberingSystems); - CASE(38,TestSpaceParsing); - CASE(39,TestMultiCurrencySign); - CASE(40,TestCurrencyFormatForMixParsing); - CASE(41,TestDecimalFormatCurrencyParse); - CASE(42,TestCurrencyIsoPluralFormat); - CASE(43,TestCurrencyParsing); - CASE(44,TestParseCurrencyInUCurr); - CASE(45,TestFormatAttributes); - CASE(46,TestFieldPositionIterator); - CASE(47,TestDecimal); - CASE(48,TestCurrencyFractionDigits); - CASE(49,TestExponentParse); - CASE(50,TestExplicitParents); - CASE(51,TestLenientParse); - CASE(52,TestAvailableNumberingSystems); - CASE(53,TestRoundingPattern); - CASE(54,Test9087); - CASE(55,TestFormatFastpaths); - CASE(56,TestEnumSet); - CASE(57,TestFormattableSize); - default: name = ""; break; - } + TESTCASE_AUTO_BEGIN; + TESTCASE_AUTO(TestCurrencySign); + TESTCASE_AUTO(TestCurrency); + TESTCASE_AUTO(TestParse); + TESTCASE_AUTO(TestRounding487); + TESTCASE_AUTO(TestQuotes); + TESTCASE_AUTO(TestExponential); + TESTCASE_AUTO(TestPatterns); + + // Upgrade to alphaWorks - liu 5/99 + TESTCASE_AUTO(TestExponent); + TESTCASE_AUTO(TestScientific); + TESTCASE_AUTO(TestPad); + TESTCASE_AUTO(TestPatterns2); + TESTCASE_AUTO(TestSecondaryGrouping); + TESTCASE_AUTO(TestSurrogateSupport); + TESTCASE_AUTO(TestAPI); + + TESTCASE_AUTO(TestCurrencyObject); + TESTCASE_AUTO(TestCurrencyPatterns); + //TESTCASE_AUTO(TestDigitList); + TESTCASE_AUTO(TestWhiteSpaceParsing); + TESTCASE_AUTO(TestComplexCurrency); // This test removed because CLDR no longer uses choice formats in currency symbols. + TESTCASE_AUTO(TestRegCurrency); + TESTCASE_AUTO(TestSymbolsWithBadLocale); + TESTCASE_AUTO(TestAdoptDecimalFormatSymbols); + + TESTCASE_AUTO(TestScientific2); + TESTCASE_AUTO(TestScientificGrouping); + TESTCASE_AUTO(TestInt64); + + TESTCASE_AUTO(TestPerMill); + TESTCASE_AUTO(TestIllegalPatterns); + TESTCASE_AUTO(TestCases); + + TESTCASE_AUTO(TestCurrencyNames); + TESTCASE_AUTO(TestCurrencyAmount); + TESTCASE_AUTO(TestCurrencyUnit); + TESTCASE_AUTO(TestCoverage); + TESTCASE_AUTO(TestJB3832); + TESTCASE_AUTO(TestHost); + TESTCASE_AUTO(TestHostClone); + TESTCASE_AUTO(TestCurrencyFormat); + TESTCASE_AUTO(TestRounding); + TESTCASE_AUTO(TestNonpositiveMultiplier); + TESTCASE_AUTO(TestNumberingSystems); + TESTCASE_AUTO(TestSpaceParsing); + TESTCASE_AUTO(TestMultiCurrencySign); + TESTCASE_AUTO(TestCurrencyFormatForMixParsing); + TESTCASE_AUTO(TestDecimalFormatCurrencyParse); + TESTCASE_AUTO(TestCurrencyIsoPluralFormat); + TESTCASE_AUTO(TestCurrencyParsing); + TESTCASE_AUTO(TestParseCurrencyInUCurr); + TESTCASE_AUTO(TestFormatAttributes); + TESTCASE_AUTO(TestFieldPositionIterator); + TESTCASE_AUTO(TestDecimal); + TESTCASE_AUTO(TestCurrencyFractionDigits); + TESTCASE_AUTO(TestExponentParse); + TESTCASE_AUTO(TestExplicitParents); + TESTCASE_AUTO(TestLenientParse); + TESTCASE_AUTO(TestAvailableNumberingSystems); + TESTCASE_AUTO(TestRoundingPattern); + TESTCASE_AUTO(Test9087); + TESTCASE_AUTO(TestFormatFastpaths); + TESTCASE_AUTO(TestFormattableSize); + TESTCASE_AUTO_END; } // ------------------------------------- @@ -6685,43 +6680,6 @@ void NumberFormatTest::TestFormatFastpaths() { } } -enum myEnum { - MAX_NONBOOLEAN=-1, - THING1, - THING2, - THING3, - LIMIT_BOOLEAN -}; - -void NumberFormatTest::TestEnumSet(void) { - EnumSet - flags; - infoln("TODO!! This test doesn't fail on error. Convert printf into error assert.\n"); - - logln("Enum is from [%d..%d]\n", MAX_NONBOOLEAN+1, - LIMIT_BOOLEAN); - - logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); - logln("Value now: %d\n", flags.getAll()); - flags.clear(); - logln("clear -Value now: %d\n", flags.getAll()); - logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); - flags.add(THING1); - logln("set THING1 -Value now: %d\n", flags.getAll()); - logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); - flags.add(THING3); - logln("set THING3 -Value now: %d\n", flags.getAll()); - logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); - flags.remove(THING2); - logln("remove THING2 -Value now: %d\n", flags.getAll()); - logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); - flags.remove(THING1); - logln("remove THING1 -Value now: %d\n", flags.getAll()); - logln("get(thing1)=%d, get(thing2)=%d, get(thing3)=%d\n", flags.get(THING1), flags.get(THING2), flags.get(THING3)); - -} void NumberFormatTest::TestFormattableSize(void) { if(sizeof(FmtStackData) > UNUM_INTERNAL_STACKARRAY_SIZE) { -- 2.49.0