Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Side by Side Diff: source/test/intltest/quantityformattertest.cpp

Issue 845603002: Update ICU to 54.1 step 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/icu.git@master
Patch Set: remove unusued directories Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/test/intltest/plurults.cpp ('k') | source/test/intltest/rbbiapts.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 *******************************************************************************
3 * Copyright (C) 2014, International Business Machines Corporation and *
4 * others. All Rights Reserved. *
5 *******************************************************************************
6 *
7 * File QUANTITYFORMATTERTEST.CPP
8 *
9 ********************************************************************************
10 */
11 #include "cstring.h"
12 #include "intltest.h"
13 #include "quantityformatter.h"
14 #include "simplepatternformatter.h"
15 #include "unicode/numfmt.h"
16 #include "unicode/plurrule.h"
17
18
19 class QuantityFormatterTest : public IntlTest {
20 public:
21 QuantityFormatterTest() {
22 }
23 void TestBasic();
24 void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par= 0);
25 private:
26 };
27
28 void QuantityFormatterTest::runIndexedTest(int32_t index, UBool exec, const char * &name, char* /*par*/) {
29 TESTCASE_AUTO_BEGIN;
30 TESTCASE_AUTO(TestBasic);
31 TESTCASE_AUTO_END;
32 }
33
34 void QuantityFormatterTest::TestBasic() {
35 UErrorCode status = U_ZERO_ERROR;
36 #if !UCONFIG_NO_FORMATTING
37 QuantityFormatter fmt;
38 assertFalse(
39 "adding bad variant",
40 fmt.add("a bad variant", "{0} pounds", status));
41 assertEquals("adding bad variant status", U_ILLEGAL_ARGUMENT_ERROR, status);
42 status = U_ZERO_ERROR;
43 assertFalse(
44 "Adding bad pattern",
45 fmt.add("other", "{0} {1} too many placeholders", status));
46 assertEquals("adding bad pattern status", U_ILLEGAL_ARGUMENT_ERROR, status);
47 status = U_ZERO_ERROR;
48 assertFalse("isValid with no patterns", fmt.isValid());
49 assertTrue(
50 "Adding good pattern with no placeholders",
51 fmt.add("other", "no placeholder", status));
52 assertTrue(
53 "Adding good pattern",
54 fmt.add("other", "{0} pounds", status));
55 assertTrue("isValid with other", fmt.isValid());
56 assertTrue(
57 "Adding good pattern",
58 fmt.add("one", "{0} pound", status));
59
60 assertEquals(
61 "getByVariant",
62 fmt.getByVariant("bad variant")->getPatternWithNoPlaceholders(),
63 " pounds");
64 assertEquals(
65 "getByVariant",
66 fmt.getByVariant("other")->getPatternWithNoPlaceholders(),
67 " pounds");
68 assertEquals(
69 "getByVariant",
70 fmt.getByVariant("one")->getPatternWithNoPlaceholders(),
71 " pound");
72 assertEquals(
73 "getByVariant",
74 fmt.getByVariant("few")->getPatternWithNoPlaceholders(),
75 " pounds");
76
77 // Test copy constructor
78 {
79 QuantityFormatter copied(fmt);
80 assertEquals(
81 "copied getByVariant",
82 copied.getByVariant("other")->getPatternWithNoPlaceholders(),
83 " pounds");
84 assertEquals(
85 "copied getByVariant",
86 copied.getByVariant("one")->getPatternWithNoPlaceholders(),
87 " pound");
88 assertEquals(
89 "copied getByVariant",
90 copied.getByVariant("few")->getPatternWithNoPlaceholders(),
91 " pounds");
92 }
93
94 // Test assignment
95 {
96 QuantityFormatter assigned;
97 assigned = fmt;
98 assertEquals(
99 "assigned getByVariant",
100 assigned.getByVariant("other")->getPatternWithNoPlaceholders(),
101 " pounds");
102 assertEquals(
103 "assigned getByVariant",
104 assigned.getByVariant("one")->getPatternWithNoPlaceholders(),
105 " pound");
106 assertEquals(
107 "assigned getByVariant",
108 assigned.getByVariant("few")->getPatternWithNoPlaceholders(),
109 " pounds");
110 }
111
112 // Test format.
113 {
114 LocalPointer<NumberFormat> numfmt(
115 NumberFormat::createInstance(Locale::getEnglish(), status));
116 LocalPointer<PluralRules> plurrule(
117 PluralRules::forLocale("en", status));
118 FieldPosition pos(FieldPosition::DONT_CARE);
119 UnicodeString appendTo;
120 assertEquals(
121 "format singular",
122 "1 pound",
123 fmt.format(
124 1,
125 *numfmt,
126 *plurrule,
127 appendTo,
128 pos,
129 status), TRUE);
130 appendTo.remove();
131 assertEquals(
132 "format plural",
133 "2 pounds",
134 fmt.format(
135 2,
136 *numfmt,
137 *plurrule,
138 appendTo,
139 pos,
140 status), TRUE);
141 }
142 fmt.reset();
143 assertFalse("isValid after reset", fmt.isValid());
144 #endif
145 assertSuccess("", status);
146 }
147
148 extern IntlTest *createQuantityFormatterTest() {
149 return new QuantityFormatterTest();
150 }
OLDNEW
« no previous file with comments | « source/test/intltest/plurults.cpp ('k') | source/test/intltest/rbbiapts.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698