Index: source/test/intltest/itrbnfp.cpp |
diff --git a/source/test/intltest/itrbnfp.cpp b/source/test/intltest/itrbnfp.cpp |
deleted file mode 100644 |
index d84f4b43f062b0db788845edfafeecf86ca55036..0000000000000000000000000000000000000000 |
--- a/source/test/intltest/itrbnfp.cpp |
+++ /dev/null |
@@ -1,183 +0,0 @@ |
-/* |
- ******************************************************************************* |
- * Copyright (C) 2004-2009, International Business Machines Corporation and * |
- * others. All Rights Reserved. * |
- ******************************************************************************* |
- */ |
- |
-#include "unicode/utypes.h" |
- |
-#if !UCONFIG_NO_FORMATTING |
- |
-#include "itrbnfp.h" |
- |
-#include "unicode/umachine.h" |
- |
-#include "unicode/tblcoll.h" |
-#include "unicode/coleitr.h" |
-#include "unicode/ures.h" |
-#include "unicode/ustring.h" |
-#include "unicode/decimfmt.h" |
- |
-#include <string.h> |
- |
-// current macro not in icu1.8.1 |
-#define TESTCASE(id,test) \ |
- case id: \ |
- name = #test; \ |
- if (exec) { \ |
- logln(#test "---"); \ |
- logln(); \ |
- test(); \ |
- } \ |
- break |
- |
-void IntlTestRBNFParse::runIndexedTest(int32_t index, UBool exec, const char* &name, char* /*par*/) |
-{ |
- if (exec) logln("TestSuite RuleBasedNumberFormatParse"); |
- switch (index) { |
-#if U_HAVE_RBNF |
- TESTCASE(0, TestParse); |
-#else |
- TESTCASE(0, TestRBNFParseDisabled); |
-#endif |
- default: |
- name = ""; |
- break; |
- } |
-} |
- |
-#if U_HAVE_RBNF |
- |
-void |
-IntlTestRBNFParse::TestParse() { |
- // Try various rule parsing errors. Shouldn't crash. |
- |
- logln("RBNF Parse test starting"); |
- |
- // these rules make no sense but behave rationally |
- const char* okrules[] = { |
- "", |
- "random text", |
- "%foo:bar", |
- "%foo: bar", |
- "0:", |
- "0::", |
- ";", |
- ";;", |
- "%%foo:;", |
- ":", |
- "::", |
- ":1", |
- ":;", |
- ":;:;", |
- "-", |
- "-1", |
- "-:", |
- ".", |
- ".1", |
- "[", |
- "]", |
- "[]", |
- "[foo]", |
- "[[]", |
- "[]]", |
- "[[]]", |
- "[][]", |
- "<", |
- "<<", |
- "<<<", |
- "10:;9:;", |
- ">", |
- ">>", |
- ">>>", |
- "=", |
- "==", |
- "===", |
- "=foo=", |
- |
- NULL, |
- }; |
- |
- // these rules would throw exceptions when formatting, if we could throw exceptions |
- const char* exceptrules[] = { |
- "10:", // formatting any value with a one's digit will fail |
- "11: << x", // formating a multiple of 10 causes rollback rule to fail |
- "%%foo: 0 foo; 10: =%%bar=; %%bar: 0: bar; 10: =%%foo=;", |
- |
- NULL, |
- }; |
- |
- // none of these rules should crash the formatter |
- const char** allrules[] = { |
- okrules, |
- exceptrules, |
- NULL, |
- }; |
- |
- for (int j = 0; allrules[j]; ++j) { |
- const char** rules = allrules[j]; |
- for (int i = 0; rules[i]; ++i) { |
- const char* rule = rules[i]; |
- logln("rule[%d] \"%s\"", i, rule); |
- UErrorCode status = U_ZERO_ERROR; |
- UParseError perr; |
- RuleBasedNumberFormat* formatter = new RuleBasedNumberFormat(rule, Locale::getUS(), perr, status); |
- |
- if (U_SUCCESS(status)) { |
- // format some values |
- |
- testfmt(formatter, 20, status); |
- testfmt(formatter, 1.23, status); |
- testfmt(formatter, -123, status); |
- testfmt(formatter, .123, status); |
- testfmt(formatter, 123, status); |
- |
- } else if (status == U_PARSE_ERROR) { |
- logln("perror line: %x offset: %x context: %s|%s", perr.line, perr.offset, perr.preContext, perr.postContext); |
- } |
- |
- delete formatter; |
- } |
- } |
-} |
- |
-void |
-IntlTestRBNFParse::testfmt(RuleBasedNumberFormat* formatter, double val, UErrorCode& status) { |
- UnicodeString us; |
- formatter->format((const Formattable)val, us, status); |
- if (U_SUCCESS(status)) { |
- us.insert(0, (UChar)'"'); |
- us.append((UChar)'"'); |
- logln(us); |
- } else { |
- logln("error: could not format %g, returned status: %d", val, status); |
- } |
-} |
- |
-void |
-IntlTestRBNFParse::testfmt(RuleBasedNumberFormat* formatter, int val, UErrorCode& status) { |
- UnicodeString us; |
- formatter->format((const Formattable)(int32_t)val, us, status); |
- if (U_SUCCESS(status)) { |
- us.insert(0, (UChar)'"'); |
- us.append((UChar)'"'); |
- logln(us); |
- } else { |
- logln("error: could not format %d, returned status: %d", val, status); |
- } |
-} |
- |
- |
-/* U_HAVE_RBNF */ |
-#else |
- |
-void |
-IntlTestRBNF::TestRBNFParseDisabled() { |
- errln("*** RBNF currently disabled on this platform ***\n"); |
-} |
- |
-/* U_HAVE_RBNF */ |
-#endif |
- |
-#endif /* #if !UCONFIG_NO_FORMATTING */ |