1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
4 *******************************************************************************
5 * Copyright (C) 2014-2016, International Business Machines Corporation and *
6 * others. All Rights Reserved. *
7 *******************************************************************************
11 *******************************************************************************
18 #if !UCONFIG_NO_FORMATTING
20 #include "unicode/decimfmt.h"
21 #include "unicode/measfmt.h"
22 #include "unicode/measure.h"
23 #include "unicode/measunit.h"
24 #include "unicode/strenum.h"
25 #include "unicode/tmunit.h"
26 #include "unicode/plurrule.h"
27 #include "unicode/ustring.h"
30 #include "unicode/reldatefmt.h"
31 #include "unicode/rbnf.h"
33 struct ExpectedResult
{
34 const Measure
*measures
;
39 class MeasureFormatTest
: public IntlTest
{
44 void runIndexedTest(int32_t index
, UBool exec
, const char *&name
, char *par
=0);
47 void TestCompatible53();
48 void TestCompatible54();
49 void TestCompatible55();
50 void TestCompatible56();
51 void TestCompatible57();
52 void TestCompatible58();
53 void TestCompatible59();
54 void TestCompatible63();
55 void TestCompatible64();
56 void TestCompatible65();
57 void TestGetAvailable();
58 void TestExamplesInDocs();
59 void TestFormatPeriodEn();
60 void Test10219FractionalPlurals();
62 void TestFormatSingleArg();
63 void TestFormatMeasuresZeroArg();
65 void TestNumeratorPlurals();
67 void TestManyLocaleDurations();
69 void TestCurrencies();
70 void TestDisplayNames();
71 void TestFieldPosition();
72 void TestFieldPositionMultiple();
75 void TestGroupingSeparator();
76 void TestDoubleZero();
77 void TestUnitPerUnitResolution();
78 void TestIndividualPluralFallback();
79 void Test20332_PersonUnits();
80 void TestNumericTime();
81 void TestNumericTimeSomeSpecialFormats();
83 const char *description
,
84 const MeasureFormat
&fmt
,
85 const Measure
*measures
,
87 const char *expected
);
88 void verifyFormatWithPrefix(
89 const char *description
,
90 const MeasureFormat
&fmt
,
91 const UnicodeString
&prefix
,
92 const Measure
*measures
,
94 const char *expected
);
96 const char *description
,
97 const MeasureFormat
&fmt
,
98 const ExpectedResult
*expectedResults
,
100 void helperTestSimplePer(
101 const Locale
&locale
,
102 UMeasureFormatWidth width
,
104 const MeasureUnit
&unit
,
105 const MeasureUnit
&perUnit
,
106 const char *expected
);
107 void helperTestSimplePer(
108 const Locale
&locale
,
109 UMeasureFormatWidth width
,
111 const MeasureUnit
&unit
,
112 const MeasureUnit
&perUnit
,
113 const char *expected
,
115 int32_t expected_start
,
116 int32_t expected_end
);
117 void helperTestMultiples(
118 const Locale
&locale
,
119 UMeasureFormatWidth width
,
120 const char *expected
);
121 void helperTestManyLocaleDurations(
122 const char *localeID
,
123 UMeasureFormatWidth width
,
124 const Measure
*measures
,
125 int32_t measureCount
,
126 const char *expected
);
127 void helperTestDisplayName(
128 const MeasureUnit
*unit
,
129 const char *localeID
,
130 UMeasureFormatWidth width
,
131 const char *expected
);
132 void verifyFieldPosition(
133 const char *description
,
134 const MeasureFormat
&fmt
,
135 const UnicodeString
&prefix
,
136 const Measure
*measures
,
137 int32_t measureCount
,
138 NumberFormat::EAlignmentFields field
,
143 void MeasureFormatTest::runIndexedTest(
144 int32_t index
, UBool exec
, const char *&name
, char *) {
146 logln("TestSuite MeasureFormatTest: ");
149 TESTCASE_AUTO(TestBasic
);
150 TESTCASE_AUTO(TestCompatible53
);
151 TESTCASE_AUTO(TestCompatible54
);
152 TESTCASE_AUTO(TestCompatible55
);
153 TESTCASE_AUTO(TestCompatible56
);
154 TESTCASE_AUTO(TestCompatible57
);
155 TESTCASE_AUTO(TestCompatible58
);
156 TESTCASE_AUTO(TestCompatible59
);
157 TESTCASE_AUTO(TestCompatible63
);
158 TESTCASE_AUTO(TestCompatible64
);
159 TESTCASE_AUTO(TestCompatible65
);
160 TESTCASE_AUTO(TestGetAvailable
);
161 TESTCASE_AUTO(TestExamplesInDocs
);
162 TESTCASE_AUTO(TestFormatPeriodEn
);
163 TESTCASE_AUTO(Test10219FractionalPlurals
);
164 TESTCASE_AUTO(TestGreek
);
165 TESTCASE_AUTO(TestFormatSingleArg
);
166 TESTCASE_AUTO(TestFormatMeasuresZeroArg
);
167 TESTCASE_AUTO(TestSimplePer
);
168 TESTCASE_AUTO(TestNumeratorPlurals
);
169 TESTCASE_AUTO(TestMultiples
);
170 TESTCASE_AUTO(TestManyLocaleDurations
);
171 TESTCASE_AUTO(TestGram
);
172 TESTCASE_AUTO(TestCurrencies
);
173 TESTCASE_AUTO(TestDisplayNames
);
174 TESTCASE_AUTO(TestFieldPosition
);
175 TESTCASE_AUTO(TestFieldPositionMultiple
);
176 TESTCASE_AUTO(TestBadArg
);
177 TESTCASE_AUTO(TestEquality
);
178 TESTCASE_AUTO(TestGroupingSeparator
);
179 TESTCASE_AUTO(TestDoubleZero
);
180 TESTCASE_AUTO(TestUnitPerUnitResolution
);
181 TESTCASE_AUTO(TestIndividualPluralFallback
);
182 TESTCASE_AUTO(Test20332_PersonUnits
);
183 TESTCASE_AUTO(TestNumericTime
);
184 TESTCASE_AUTO(TestNumericTimeSomeSpecialFormats
);
188 void MeasureFormatTest::TestCompatible53() {
189 UErrorCode status
= U_ZERO_ERROR
;
190 LocalPointer
<MeasureUnit
> measureUnit
;
191 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
192 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
193 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
194 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
195 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
196 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
197 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
198 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
199 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
200 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
201 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
202 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
203 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
204 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
205 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
206 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
207 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
208 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
209 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
210 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
211 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
212 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
213 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
214 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
215 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
216 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
217 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
218 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
219 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
220 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
221 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
222 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
223 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
224 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
225 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
226 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
227 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
228 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
229 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
230 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
231 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
232 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
233 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
234 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
235 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
236 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
237 assertSuccess("", status
);
240 void MeasureFormatTest::TestCompatible54() {
241 UErrorCode status
= U_ZERO_ERROR
;
242 LocalPointer
<MeasureUnit
> measureUnit
;
243 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
244 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status
));
245 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
246 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
247 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
248 measureUnit
.adoptInstead(MeasureUnit::createRadian(status
));
249 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
250 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
251 measureUnit
.adoptInstead(MeasureUnit::createSquareCentimeter(status
));
252 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
253 measureUnit
.adoptInstead(MeasureUnit::createSquareInch(status
));
254 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
255 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
256 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
257 measureUnit
.adoptInstead(MeasureUnit::createSquareYard(status
));
258 measureUnit
.adoptInstead(MeasureUnit::createLiterPerKilometer(status
));
259 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallon(status
));
260 measureUnit
.adoptInstead(MeasureUnit::createBit(status
));
261 measureUnit
.adoptInstead(MeasureUnit::createByte(status
));
262 measureUnit
.adoptInstead(MeasureUnit::createGigabit(status
));
263 measureUnit
.adoptInstead(MeasureUnit::createGigabyte(status
));
264 measureUnit
.adoptInstead(MeasureUnit::createKilobit(status
));
265 measureUnit
.adoptInstead(MeasureUnit::createKilobyte(status
));
266 measureUnit
.adoptInstead(MeasureUnit::createMegabit(status
));
267 measureUnit
.adoptInstead(MeasureUnit::createMegabyte(status
));
268 measureUnit
.adoptInstead(MeasureUnit::createTerabit(status
));
269 measureUnit
.adoptInstead(MeasureUnit::createTerabyte(status
));
270 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
271 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
272 measureUnit
.adoptInstead(MeasureUnit::createMicrosecond(status
));
273 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
274 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
275 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
276 measureUnit
.adoptInstead(MeasureUnit::createNanosecond(status
));
277 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
278 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
279 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
280 measureUnit
.adoptInstead(MeasureUnit::createAmpere(status
));
281 measureUnit
.adoptInstead(MeasureUnit::createMilliampere(status
));
282 measureUnit
.adoptInstead(MeasureUnit::createOhm(status
));
283 measureUnit
.adoptInstead(MeasureUnit::createVolt(status
));
284 measureUnit
.adoptInstead(MeasureUnit::createCalorie(status
));
285 measureUnit
.adoptInstead(MeasureUnit::createFoodcalorie(status
));
286 measureUnit
.adoptInstead(MeasureUnit::createJoule(status
));
287 measureUnit
.adoptInstead(MeasureUnit::createKilocalorie(status
));
288 measureUnit
.adoptInstead(MeasureUnit::createKilojoule(status
));
289 measureUnit
.adoptInstead(MeasureUnit::createKilowattHour(status
));
290 measureUnit
.adoptInstead(MeasureUnit::createGigahertz(status
));
291 measureUnit
.adoptInstead(MeasureUnit::createHertz(status
));
292 measureUnit
.adoptInstead(MeasureUnit::createKilohertz(status
));
293 measureUnit
.adoptInstead(MeasureUnit::createMegahertz(status
));
294 measureUnit
.adoptInstead(MeasureUnit::createAstronomicalUnit(status
));
295 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
296 measureUnit
.adoptInstead(MeasureUnit::createDecimeter(status
));
297 measureUnit
.adoptInstead(MeasureUnit::createFathom(status
));
298 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
299 measureUnit
.adoptInstead(MeasureUnit::createFurlong(status
));
300 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
301 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
302 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
303 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
304 measureUnit
.adoptInstead(MeasureUnit::createMicrometer(status
));
305 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
306 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
307 measureUnit
.adoptInstead(MeasureUnit::createNanometer(status
));
308 measureUnit
.adoptInstead(MeasureUnit::createNauticalMile(status
));
309 measureUnit
.adoptInstead(MeasureUnit::createParsec(status
));
310 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
311 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
312 measureUnit
.adoptInstead(MeasureUnit::createLux(status
));
313 measureUnit
.adoptInstead(MeasureUnit::createCarat(status
));
314 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
315 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
316 measureUnit
.adoptInstead(MeasureUnit::createMetricTon(status
));
317 measureUnit
.adoptInstead(MeasureUnit::createMicrogram(status
));
318 measureUnit
.adoptInstead(MeasureUnit::createMilligram(status
));
319 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
320 measureUnit
.adoptInstead(MeasureUnit::createOunceTroy(status
));
321 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
322 measureUnit
.adoptInstead(MeasureUnit::createStone(status
));
323 measureUnit
.adoptInstead(MeasureUnit::createTon(status
));
324 measureUnit
.adoptInstead(MeasureUnit::createGigawatt(status
));
325 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
326 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
327 measureUnit
.adoptInstead(MeasureUnit::createMegawatt(status
));
328 measureUnit
.adoptInstead(MeasureUnit::createMilliwatt(status
));
329 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
330 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
331 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
332 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
333 measureUnit
.adoptInstead(MeasureUnit::createMillimeterOfMercury(status
));
334 measureUnit
.adoptInstead(MeasureUnit::createPoundPerSquareInch(status
));
335 measureUnit
.adoptInstead(MeasureUnit::createKarat(status
));
336 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
337 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
338 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
339 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
340 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
341 measureUnit
.adoptInstead(MeasureUnit::createKelvin(status
));
342 measureUnit
.adoptInstead(MeasureUnit::createAcreFoot(status
));
343 measureUnit
.adoptInstead(MeasureUnit::createBushel(status
));
344 measureUnit
.adoptInstead(MeasureUnit::createCentiliter(status
));
345 measureUnit
.adoptInstead(MeasureUnit::createCubicCentimeter(status
));
346 measureUnit
.adoptInstead(MeasureUnit::createCubicFoot(status
));
347 measureUnit
.adoptInstead(MeasureUnit::createCubicInch(status
));
348 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
349 measureUnit
.adoptInstead(MeasureUnit::createCubicMeter(status
));
350 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
351 measureUnit
.adoptInstead(MeasureUnit::createCubicYard(status
));
352 measureUnit
.adoptInstead(MeasureUnit::createCup(status
));
353 measureUnit
.adoptInstead(MeasureUnit::createDeciliter(status
));
354 measureUnit
.adoptInstead(MeasureUnit::createFluidOunce(status
));
355 measureUnit
.adoptInstead(MeasureUnit::createGallon(status
));
356 measureUnit
.adoptInstead(MeasureUnit::createHectoliter(status
));
357 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
358 measureUnit
.adoptInstead(MeasureUnit::createMegaliter(status
));
359 measureUnit
.adoptInstead(MeasureUnit::createMilliliter(status
));
360 measureUnit
.adoptInstead(MeasureUnit::createPint(status
));
361 measureUnit
.adoptInstead(MeasureUnit::createQuart(status
));
362 measureUnit
.adoptInstead(MeasureUnit::createTablespoon(status
));
363 measureUnit
.adoptInstead(MeasureUnit::createTeaspoon(status
));
364 assertSuccess("", status
);
367 void MeasureFormatTest::TestCompatible55() {
368 UErrorCode status
= U_ZERO_ERROR
;
369 LocalPointer
<MeasureUnit
> measureUnit
;
370 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
371 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status
));
372 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
373 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
374 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
375 measureUnit
.adoptInstead(MeasureUnit::createRadian(status
));
376 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
377 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
378 measureUnit
.adoptInstead(MeasureUnit::createSquareCentimeter(status
));
379 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
380 measureUnit
.adoptInstead(MeasureUnit::createSquareInch(status
));
381 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
382 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
383 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
384 measureUnit
.adoptInstead(MeasureUnit::createSquareYard(status
));
385 measureUnit
.adoptInstead(MeasureUnit::createLiterPerKilometer(status
));
386 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallon(status
));
387 measureUnit
.adoptInstead(MeasureUnit::createBit(status
));
388 measureUnit
.adoptInstead(MeasureUnit::createByte(status
));
389 measureUnit
.adoptInstead(MeasureUnit::createGigabit(status
));
390 measureUnit
.adoptInstead(MeasureUnit::createGigabyte(status
));
391 measureUnit
.adoptInstead(MeasureUnit::createKilobit(status
));
392 measureUnit
.adoptInstead(MeasureUnit::createKilobyte(status
));
393 measureUnit
.adoptInstead(MeasureUnit::createMegabit(status
));
394 measureUnit
.adoptInstead(MeasureUnit::createMegabyte(status
));
395 measureUnit
.adoptInstead(MeasureUnit::createTerabit(status
));
396 measureUnit
.adoptInstead(MeasureUnit::createTerabyte(status
));
397 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
398 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
399 measureUnit
.adoptInstead(MeasureUnit::createMicrosecond(status
));
400 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
401 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
402 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
403 measureUnit
.adoptInstead(MeasureUnit::createNanosecond(status
));
404 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
405 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
406 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
407 measureUnit
.adoptInstead(MeasureUnit::createAmpere(status
));
408 measureUnit
.adoptInstead(MeasureUnit::createMilliampere(status
));
409 measureUnit
.adoptInstead(MeasureUnit::createOhm(status
));
410 measureUnit
.adoptInstead(MeasureUnit::createVolt(status
));
411 measureUnit
.adoptInstead(MeasureUnit::createCalorie(status
));
412 measureUnit
.adoptInstead(MeasureUnit::createFoodcalorie(status
));
413 measureUnit
.adoptInstead(MeasureUnit::createJoule(status
));
414 measureUnit
.adoptInstead(MeasureUnit::createKilocalorie(status
));
415 measureUnit
.adoptInstead(MeasureUnit::createKilojoule(status
));
416 measureUnit
.adoptInstead(MeasureUnit::createKilowattHour(status
));
417 measureUnit
.adoptInstead(MeasureUnit::createGigahertz(status
));
418 measureUnit
.adoptInstead(MeasureUnit::createHertz(status
));
419 measureUnit
.adoptInstead(MeasureUnit::createKilohertz(status
));
420 measureUnit
.adoptInstead(MeasureUnit::createMegahertz(status
));
421 measureUnit
.adoptInstead(MeasureUnit::createAstronomicalUnit(status
));
422 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
423 measureUnit
.adoptInstead(MeasureUnit::createDecimeter(status
));
424 measureUnit
.adoptInstead(MeasureUnit::createFathom(status
));
425 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
426 measureUnit
.adoptInstead(MeasureUnit::createFurlong(status
));
427 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
428 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
429 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
430 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
431 measureUnit
.adoptInstead(MeasureUnit::createMicrometer(status
));
432 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
433 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
434 measureUnit
.adoptInstead(MeasureUnit::createNanometer(status
));
435 measureUnit
.adoptInstead(MeasureUnit::createNauticalMile(status
));
436 measureUnit
.adoptInstead(MeasureUnit::createParsec(status
));
437 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
438 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
439 measureUnit
.adoptInstead(MeasureUnit::createLux(status
));
440 measureUnit
.adoptInstead(MeasureUnit::createCarat(status
));
441 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
442 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
443 measureUnit
.adoptInstead(MeasureUnit::createMetricTon(status
));
444 measureUnit
.adoptInstead(MeasureUnit::createMicrogram(status
));
445 measureUnit
.adoptInstead(MeasureUnit::createMilligram(status
));
446 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
447 measureUnit
.adoptInstead(MeasureUnit::createOunceTroy(status
));
448 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
449 measureUnit
.adoptInstead(MeasureUnit::createStone(status
));
450 measureUnit
.adoptInstead(MeasureUnit::createTon(status
));
451 measureUnit
.adoptInstead(MeasureUnit::createGigawatt(status
));
452 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
453 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
454 measureUnit
.adoptInstead(MeasureUnit::createMegawatt(status
));
455 measureUnit
.adoptInstead(MeasureUnit::createMilliwatt(status
));
456 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
457 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
458 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
459 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
460 measureUnit
.adoptInstead(MeasureUnit::createMillimeterOfMercury(status
));
461 measureUnit
.adoptInstead(MeasureUnit::createPoundPerSquareInch(status
));
462 measureUnit
.adoptInstead(MeasureUnit::createKarat(status
));
463 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
464 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
465 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
466 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
467 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
468 measureUnit
.adoptInstead(MeasureUnit::createGenericTemperature(status
));
469 measureUnit
.adoptInstead(MeasureUnit::createKelvin(status
));
470 measureUnit
.adoptInstead(MeasureUnit::createAcreFoot(status
));
471 measureUnit
.adoptInstead(MeasureUnit::createBushel(status
));
472 measureUnit
.adoptInstead(MeasureUnit::createCentiliter(status
));
473 measureUnit
.adoptInstead(MeasureUnit::createCubicCentimeter(status
));
474 measureUnit
.adoptInstead(MeasureUnit::createCubicFoot(status
));
475 measureUnit
.adoptInstead(MeasureUnit::createCubicInch(status
));
476 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
477 measureUnit
.adoptInstead(MeasureUnit::createCubicMeter(status
));
478 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
479 measureUnit
.adoptInstead(MeasureUnit::createCubicYard(status
));
480 measureUnit
.adoptInstead(MeasureUnit::createCup(status
));
481 measureUnit
.adoptInstead(MeasureUnit::createDeciliter(status
));
482 measureUnit
.adoptInstead(MeasureUnit::createFluidOunce(status
));
483 measureUnit
.adoptInstead(MeasureUnit::createGallon(status
));
484 measureUnit
.adoptInstead(MeasureUnit::createHectoliter(status
));
485 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
486 measureUnit
.adoptInstead(MeasureUnit::createMegaliter(status
));
487 measureUnit
.adoptInstead(MeasureUnit::createMilliliter(status
));
488 measureUnit
.adoptInstead(MeasureUnit::createPint(status
));
489 measureUnit
.adoptInstead(MeasureUnit::createQuart(status
));
490 measureUnit
.adoptInstead(MeasureUnit::createTablespoon(status
));
491 measureUnit
.adoptInstead(MeasureUnit::createTeaspoon(status
));
492 assertSuccess("", status
);
495 void MeasureFormatTest::TestCompatible56() {
496 UErrorCode status
= U_ZERO_ERROR
;
497 LocalPointer
<MeasureUnit
> measureUnit
;
498 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
499 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status
));
500 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
501 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
502 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
503 measureUnit
.adoptInstead(MeasureUnit::createRadian(status
));
504 measureUnit
.adoptInstead(MeasureUnit::createRevolutionAngle(status
));
505 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
506 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
507 measureUnit
.adoptInstead(MeasureUnit::createSquareCentimeter(status
));
508 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
509 measureUnit
.adoptInstead(MeasureUnit::createSquareInch(status
));
510 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
511 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
512 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
513 measureUnit
.adoptInstead(MeasureUnit::createSquareYard(status
));
514 measureUnit
.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status
));
515 measureUnit
.adoptInstead(MeasureUnit::createLiterPerKilometer(status
));
516 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallon(status
));
517 measureUnit
.adoptInstead(MeasureUnit::createBit(status
));
518 measureUnit
.adoptInstead(MeasureUnit::createByte(status
));
519 measureUnit
.adoptInstead(MeasureUnit::createGigabit(status
));
520 measureUnit
.adoptInstead(MeasureUnit::createGigabyte(status
));
521 measureUnit
.adoptInstead(MeasureUnit::createKilobit(status
));
522 measureUnit
.adoptInstead(MeasureUnit::createKilobyte(status
));
523 measureUnit
.adoptInstead(MeasureUnit::createMegabit(status
));
524 measureUnit
.adoptInstead(MeasureUnit::createMegabyte(status
));
525 measureUnit
.adoptInstead(MeasureUnit::createTerabit(status
));
526 measureUnit
.adoptInstead(MeasureUnit::createTerabyte(status
));
527 measureUnit
.adoptInstead(MeasureUnit::createCentury(status
));
528 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
529 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
530 measureUnit
.adoptInstead(MeasureUnit::createMicrosecond(status
));
531 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
532 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
533 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
534 measureUnit
.adoptInstead(MeasureUnit::createNanosecond(status
));
535 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
536 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
537 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
538 measureUnit
.adoptInstead(MeasureUnit::createAmpere(status
));
539 measureUnit
.adoptInstead(MeasureUnit::createMilliampere(status
));
540 measureUnit
.adoptInstead(MeasureUnit::createOhm(status
));
541 measureUnit
.adoptInstead(MeasureUnit::createVolt(status
));
542 measureUnit
.adoptInstead(MeasureUnit::createCalorie(status
));
543 measureUnit
.adoptInstead(MeasureUnit::createFoodcalorie(status
));
544 measureUnit
.adoptInstead(MeasureUnit::createJoule(status
));
545 measureUnit
.adoptInstead(MeasureUnit::createKilocalorie(status
));
546 measureUnit
.adoptInstead(MeasureUnit::createKilojoule(status
));
547 measureUnit
.adoptInstead(MeasureUnit::createKilowattHour(status
));
548 measureUnit
.adoptInstead(MeasureUnit::createGigahertz(status
));
549 measureUnit
.adoptInstead(MeasureUnit::createHertz(status
));
550 measureUnit
.adoptInstead(MeasureUnit::createKilohertz(status
));
551 measureUnit
.adoptInstead(MeasureUnit::createMegahertz(status
));
552 measureUnit
.adoptInstead(MeasureUnit::createAstronomicalUnit(status
));
553 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
554 measureUnit
.adoptInstead(MeasureUnit::createDecimeter(status
));
555 measureUnit
.adoptInstead(MeasureUnit::createFathom(status
));
556 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
557 measureUnit
.adoptInstead(MeasureUnit::createFurlong(status
));
558 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
559 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
560 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
561 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
562 measureUnit
.adoptInstead(MeasureUnit::createMicrometer(status
));
563 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
564 measureUnit
.adoptInstead(MeasureUnit::createMileScandinavian(status
));
565 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
566 measureUnit
.adoptInstead(MeasureUnit::createNanometer(status
));
567 measureUnit
.adoptInstead(MeasureUnit::createNauticalMile(status
));
568 measureUnit
.adoptInstead(MeasureUnit::createParsec(status
));
569 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
570 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
571 measureUnit
.adoptInstead(MeasureUnit::createLux(status
));
572 measureUnit
.adoptInstead(MeasureUnit::createCarat(status
));
573 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
574 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
575 measureUnit
.adoptInstead(MeasureUnit::createMetricTon(status
));
576 measureUnit
.adoptInstead(MeasureUnit::createMicrogram(status
));
577 measureUnit
.adoptInstead(MeasureUnit::createMilligram(status
));
578 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
579 measureUnit
.adoptInstead(MeasureUnit::createOunceTroy(status
));
580 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
581 measureUnit
.adoptInstead(MeasureUnit::createStone(status
));
582 measureUnit
.adoptInstead(MeasureUnit::createTon(status
));
583 measureUnit
.adoptInstead(MeasureUnit::createGigawatt(status
));
584 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
585 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
586 measureUnit
.adoptInstead(MeasureUnit::createMegawatt(status
));
587 measureUnit
.adoptInstead(MeasureUnit::createMilliwatt(status
));
588 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
589 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
590 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
591 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
592 measureUnit
.adoptInstead(MeasureUnit::createMillimeterOfMercury(status
));
593 measureUnit
.adoptInstead(MeasureUnit::createPoundPerSquareInch(status
));
594 measureUnit
.adoptInstead(MeasureUnit::createKarat(status
));
595 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
596 measureUnit
.adoptInstead(MeasureUnit::createKnot(status
));
597 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
598 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
599 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
600 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
601 measureUnit
.adoptInstead(MeasureUnit::createGenericTemperature(status
));
602 measureUnit
.adoptInstead(MeasureUnit::createKelvin(status
));
603 measureUnit
.adoptInstead(MeasureUnit::createAcreFoot(status
));
604 measureUnit
.adoptInstead(MeasureUnit::createBushel(status
));
605 measureUnit
.adoptInstead(MeasureUnit::createCentiliter(status
));
606 measureUnit
.adoptInstead(MeasureUnit::createCubicCentimeter(status
));
607 measureUnit
.adoptInstead(MeasureUnit::createCubicFoot(status
));
608 measureUnit
.adoptInstead(MeasureUnit::createCubicInch(status
));
609 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
610 measureUnit
.adoptInstead(MeasureUnit::createCubicMeter(status
));
611 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
612 measureUnit
.adoptInstead(MeasureUnit::createCubicYard(status
));
613 measureUnit
.adoptInstead(MeasureUnit::createCup(status
));
614 measureUnit
.adoptInstead(MeasureUnit::createCupMetric(status
));
615 measureUnit
.adoptInstead(MeasureUnit::createDeciliter(status
));
616 measureUnit
.adoptInstead(MeasureUnit::createFluidOunce(status
));
617 measureUnit
.adoptInstead(MeasureUnit::createGallon(status
));
618 measureUnit
.adoptInstead(MeasureUnit::createHectoliter(status
));
619 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
620 measureUnit
.adoptInstead(MeasureUnit::createMegaliter(status
));
621 measureUnit
.adoptInstead(MeasureUnit::createMilliliter(status
));
622 measureUnit
.adoptInstead(MeasureUnit::createPint(status
));
623 measureUnit
.adoptInstead(MeasureUnit::createPintMetric(status
));
624 measureUnit
.adoptInstead(MeasureUnit::createQuart(status
));
625 measureUnit
.adoptInstead(MeasureUnit::createTablespoon(status
));
626 measureUnit
.adoptInstead(MeasureUnit::createTeaspoon(status
));
627 assertSuccess("", status
);
630 void MeasureFormatTest::TestCompatible57() {
631 UErrorCode status
= U_ZERO_ERROR
;
632 LocalPointer
<MeasureUnit
> measureUnit
;
633 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
634 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status
));
635 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
636 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
637 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
638 measureUnit
.adoptInstead(MeasureUnit::createRadian(status
));
639 measureUnit
.adoptInstead(MeasureUnit::createRevolutionAngle(status
));
640 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
641 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
642 measureUnit
.adoptInstead(MeasureUnit::createSquareCentimeter(status
));
643 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
644 measureUnit
.adoptInstead(MeasureUnit::createSquareInch(status
));
645 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
646 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
647 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
648 measureUnit
.adoptInstead(MeasureUnit::createSquareYard(status
));
649 measureUnit
.adoptInstead(MeasureUnit::createKarat(status
));
650 measureUnit
.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status
));
651 measureUnit
.adoptInstead(MeasureUnit::createMillimolePerLiter(status
));
652 measureUnit
.adoptInstead(MeasureUnit::createPartPerMillion(status
));
653 measureUnit
.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status
));
654 measureUnit
.adoptInstead(MeasureUnit::createLiterPerKilometer(status
));
655 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallon(status
));
656 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallonImperial(status
));
657 measureUnit
.adoptInstead(MeasureUnit::createBit(status
));
658 measureUnit
.adoptInstead(MeasureUnit::createByte(status
));
659 measureUnit
.adoptInstead(MeasureUnit::createGigabit(status
));
660 measureUnit
.adoptInstead(MeasureUnit::createGigabyte(status
));
661 measureUnit
.adoptInstead(MeasureUnit::createKilobit(status
));
662 measureUnit
.adoptInstead(MeasureUnit::createKilobyte(status
));
663 measureUnit
.adoptInstead(MeasureUnit::createMegabit(status
));
664 measureUnit
.adoptInstead(MeasureUnit::createMegabyte(status
));
665 measureUnit
.adoptInstead(MeasureUnit::createTerabit(status
));
666 measureUnit
.adoptInstead(MeasureUnit::createTerabyte(status
));
667 measureUnit
.adoptInstead(MeasureUnit::createCentury(status
));
668 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
669 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
670 measureUnit
.adoptInstead(MeasureUnit::createMicrosecond(status
));
671 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
672 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
673 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
674 measureUnit
.adoptInstead(MeasureUnit::createNanosecond(status
));
675 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
676 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
677 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
678 measureUnit
.adoptInstead(MeasureUnit::createAmpere(status
));
679 measureUnit
.adoptInstead(MeasureUnit::createMilliampere(status
));
680 measureUnit
.adoptInstead(MeasureUnit::createOhm(status
));
681 measureUnit
.adoptInstead(MeasureUnit::createVolt(status
));
682 measureUnit
.adoptInstead(MeasureUnit::createCalorie(status
));
683 measureUnit
.adoptInstead(MeasureUnit::createFoodcalorie(status
));
684 measureUnit
.adoptInstead(MeasureUnit::createJoule(status
));
685 measureUnit
.adoptInstead(MeasureUnit::createKilocalorie(status
));
686 measureUnit
.adoptInstead(MeasureUnit::createKilojoule(status
));
687 measureUnit
.adoptInstead(MeasureUnit::createKilowattHour(status
));
688 measureUnit
.adoptInstead(MeasureUnit::createGigahertz(status
));
689 measureUnit
.adoptInstead(MeasureUnit::createHertz(status
));
690 measureUnit
.adoptInstead(MeasureUnit::createKilohertz(status
));
691 measureUnit
.adoptInstead(MeasureUnit::createMegahertz(status
));
692 measureUnit
.adoptInstead(MeasureUnit::createAstronomicalUnit(status
));
693 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
694 measureUnit
.adoptInstead(MeasureUnit::createDecimeter(status
));
695 measureUnit
.adoptInstead(MeasureUnit::createFathom(status
));
696 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
697 measureUnit
.adoptInstead(MeasureUnit::createFurlong(status
));
698 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
699 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
700 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
701 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
702 measureUnit
.adoptInstead(MeasureUnit::createMicrometer(status
));
703 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
704 measureUnit
.adoptInstead(MeasureUnit::createMileScandinavian(status
));
705 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
706 measureUnit
.adoptInstead(MeasureUnit::createNanometer(status
));
707 measureUnit
.adoptInstead(MeasureUnit::createNauticalMile(status
));
708 measureUnit
.adoptInstead(MeasureUnit::createParsec(status
));
709 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
710 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
711 measureUnit
.adoptInstead(MeasureUnit::createLux(status
));
712 measureUnit
.adoptInstead(MeasureUnit::createCarat(status
));
713 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
714 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
715 measureUnit
.adoptInstead(MeasureUnit::createMetricTon(status
));
716 measureUnit
.adoptInstead(MeasureUnit::createMicrogram(status
));
717 measureUnit
.adoptInstead(MeasureUnit::createMilligram(status
));
718 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
719 measureUnit
.adoptInstead(MeasureUnit::createOunceTroy(status
));
720 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
721 measureUnit
.adoptInstead(MeasureUnit::createStone(status
));
722 measureUnit
.adoptInstead(MeasureUnit::createTon(status
));
723 measureUnit
.adoptInstead(MeasureUnit::createGigawatt(status
));
724 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
725 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
726 measureUnit
.adoptInstead(MeasureUnit::createMegawatt(status
));
727 measureUnit
.adoptInstead(MeasureUnit::createMilliwatt(status
));
728 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
729 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
730 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
731 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
732 measureUnit
.adoptInstead(MeasureUnit::createMillimeterOfMercury(status
));
733 measureUnit
.adoptInstead(MeasureUnit::createPoundPerSquareInch(status
));
734 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
735 measureUnit
.adoptInstead(MeasureUnit::createKnot(status
));
736 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
737 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
738 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
739 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
740 measureUnit
.adoptInstead(MeasureUnit::createGenericTemperature(status
));
741 measureUnit
.adoptInstead(MeasureUnit::createKelvin(status
));
742 measureUnit
.adoptInstead(MeasureUnit::createAcreFoot(status
));
743 measureUnit
.adoptInstead(MeasureUnit::createBushel(status
));
744 measureUnit
.adoptInstead(MeasureUnit::createCentiliter(status
));
745 measureUnit
.adoptInstead(MeasureUnit::createCubicCentimeter(status
));
746 measureUnit
.adoptInstead(MeasureUnit::createCubicFoot(status
));
747 measureUnit
.adoptInstead(MeasureUnit::createCubicInch(status
));
748 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
749 measureUnit
.adoptInstead(MeasureUnit::createCubicMeter(status
));
750 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
751 measureUnit
.adoptInstead(MeasureUnit::createCubicYard(status
));
752 measureUnit
.adoptInstead(MeasureUnit::createCup(status
));
753 measureUnit
.adoptInstead(MeasureUnit::createCupMetric(status
));
754 measureUnit
.adoptInstead(MeasureUnit::createDeciliter(status
));
755 measureUnit
.adoptInstead(MeasureUnit::createFluidOunce(status
));
756 measureUnit
.adoptInstead(MeasureUnit::createGallon(status
));
757 measureUnit
.adoptInstead(MeasureUnit::createGallonImperial(status
));
758 measureUnit
.adoptInstead(MeasureUnit::createHectoliter(status
));
759 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
760 measureUnit
.adoptInstead(MeasureUnit::createMegaliter(status
));
761 measureUnit
.adoptInstead(MeasureUnit::createMilliliter(status
));
762 measureUnit
.adoptInstead(MeasureUnit::createPint(status
));
763 measureUnit
.adoptInstead(MeasureUnit::createPintMetric(status
));
764 measureUnit
.adoptInstead(MeasureUnit::createQuart(status
));
765 measureUnit
.adoptInstead(MeasureUnit::createTablespoon(status
));
766 measureUnit
.adoptInstead(MeasureUnit::createTeaspoon(status
));
767 assertSuccess("", status
);
770 void MeasureFormatTest::TestCompatible58() {
771 UErrorCode status
= U_ZERO_ERROR
;
772 LocalPointer
<MeasureUnit
> measureUnit
;
773 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
774 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status
));
775 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
776 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
777 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
778 measureUnit
.adoptInstead(MeasureUnit::createRadian(status
));
779 measureUnit
.adoptInstead(MeasureUnit::createRevolutionAngle(status
));
780 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
781 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
782 measureUnit
.adoptInstead(MeasureUnit::createSquareCentimeter(status
));
783 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
784 measureUnit
.adoptInstead(MeasureUnit::createSquareInch(status
));
785 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
786 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
787 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
788 measureUnit
.adoptInstead(MeasureUnit::createSquareYard(status
));
789 measureUnit
.adoptInstead(MeasureUnit::createKarat(status
));
790 measureUnit
.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status
));
791 measureUnit
.adoptInstead(MeasureUnit::createMillimolePerLiter(status
));
792 measureUnit
.adoptInstead(MeasureUnit::createPartPerMillion(status
));
793 measureUnit
.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status
));
794 measureUnit
.adoptInstead(MeasureUnit::createLiterPerKilometer(status
));
795 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallon(status
));
796 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallonImperial(status
));
797 // measureUnit.adoptInstead(MeasureUnit::createEast(status));
798 // measureUnit.adoptInstead(MeasureUnit::createNorth(status));
799 // measureUnit.adoptInstead(MeasureUnit::createSouth(status));
800 // measureUnit.adoptInstead(MeasureUnit::createWest(status));
801 measureUnit
.adoptInstead(MeasureUnit::createBit(status
));
802 measureUnit
.adoptInstead(MeasureUnit::createByte(status
));
803 measureUnit
.adoptInstead(MeasureUnit::createGigabit(status
));
804 measureUnit
.adoptInstead(MeasureUnit::createGigabyte(status
));
805 measureUnit
.adoptInstead(MeasureUnit::createKilobit(status
));
806 measureUnit
.adoptInstead(MeasureUnit::createKilobyte(status
));
807 measureUnit
.adoptInstead(MeasureUnit::createMegabit(status
));
808 measureUnit
.adoptInstead(MeasureUnit::createMegabyte(status
));
809 measureUnit
.adoptInstead(MeasureUnit::createTerabit(status
));
810 measureUnit
.adoptInstead(MeasureUnit::createTerabyte(status
));
811 measureUnit
.adoptInstead(MeasureUnit::createCentury(status
));
812 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
813 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
814 measureUnit
.adoptInstead(MeasureUnit::createMicrosecond(status
));
815 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
816 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
817 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
818 measureUnit
.adoptInstead(MeasureUnit::createNanosecond(status
));
819 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
820 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
821 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
822 measureUnit
.adoptInstead(MeasureUnit::createAmpere(status
));
823 measureUnit
.adoptInstead(MeasureUnit::createMilliampere(status
));
824 measureUnit
.adoptInstead(MeasureUnit::createOhm(status
));
825 measureUnit
.adoptInstead(MeasureUnit::createVolt(status
));
826 measureUnit
.adoptInstead(MeasureUnit::createCalorie(status
));
827 measureUnit
.adoptInstead(MeasureUnit::createFoodcalorie(status
));
828 measureUnit
.adoptInstead(MeasureUnit::createJoule(status
));
829 measureUnit
.adoptInstead(MeasureUnit::createKilocalorie(status
));
830 measureUnit
.adoptInstead(MeasureUnit::createKilojoule(status
));
831 measureUnit
.adoptInstead(MeasureUnit::createKilowattHour(status
));
832 measureUnit
.adoptInstead(MeasureUnit::createGigahertz(status
));
833 measureUnit
.adoptInstead(MeasureUnit::createHertz(status
));
834 measureUnit
.adoptInstead(MeasureUnit::createKilohertz(status
));
835 measureUnit
.adoptInstead(MeasureUnit::createMegahertz(status
));
836 measureUnit
.adoptInstead(MeasureUnit::createAstronomicalUnit(status
));
837 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
838 measureUnit
.adoptInstead(MeasureUnit::createDecimeter(status
));
839 measureUnit
.adoptInstead(MeasureUnit::createFathom(status
));
840 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
841 measureUnit
.adoptInstead(MeasureUnit::createFurlong(status
));
842 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
843 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
844 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
845 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
846 measureUnit
.adoptInstead(MeasureUnit::createMicrometer(status
));
847 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
848 measureUnit
.adoptInstead(MeasureUnit::createMileScandinavian(status
));
849 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
850 measureUnit
.adoptInstead(MeasureUnit::createNanometer(status
));
851 measureUnit
.adoptInstead(MeasureUnit::createNauticalMile(status
));
852 measureUnit
.adoptInstead(MeasureUnit::createParsec(status
));
853 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
854 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
855 measureUnit
.adoptInstead(MeasureUnit::createLux(status
));
856 measureUnit
.adoptInstead(MeasureUnit::createCarat(status
));
857 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
858 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
859 measureUnit
.adoptInstead(MeasureUnit::createMetricTon(status
));
860 measureUnit
.adoptInstead(MeasureUnit::createMicrogram(status
));
861 measureUnit
.adoptInstead(MeasureUnit::createMilligram(status
));
862 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
863 measureUnit
.adoptInstead(MeasureUnit::createOunceTroy(status
));
864 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
865 measureUnit
.adoptInstead(MeasureUnit::createStone(status
));
866 measureUnit
.adoptInstead(MeasureUnit::createTon(status
));
867 measureUnit
.adoptInstead(MeasureUnit::createGigawatt(status
));
868 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
869 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
870 measureUnit
.adoptInstead(MeasureUnit::createMegawatt(status
));
871 measureUnit
.adoptInstead(MeasureUnit::createMilliwatt(status
));
872 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
873 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
874 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
875 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
876 measureUnit
.adoptInstead(MeasureUnit::createMillimeterOfMercury(status
));
877 measureUnit
.adoptInstead(MeasureUnit::createPoundPerSquareInch(status
));
878 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
879 measureUnit
.adoptInstead(MeasureUnit::createKnot(status
));
880 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
881 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
882 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
883 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
884 measureUnit
.adoptInstead(MeasureUnit::createGenericTemperature(status
));
885 measureUnit
.adoptInstead(MeasureUnit::createKelvin(status
));
886 measureUnit
.adoptInstead(MeasureUnit::createAcreFoot(status
));
887 measureUnit
.adoptInstead(MeasureUnit::createBushel(status
));
888 measureUnit
.adoptInstead(MeasureUnit::createCentiliter(status
));
889 measureUnit
.adoptInstead(MeasureUnit::createCubicCentimeter(status
));
890 measureUnit
.adoptInstead(MeasureUnit::createCubicFoot(status
));
891 measureUnit
.adoptInstead(MeasureUnit::createCubicInch(status
));
892 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
893 measureUnit
.adoptInstead(MeasureUnit::createCubicMeter(status
));
894 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
895 measureUnit
.adoptInstead(MeasureUnit::createCubicYard(status
));
896 measureUnit
.adoptInstead(MeasureUnit::createCup(status
));
897 measureUnit
.adoptInstead(MeasureUnit::createCupMetric(status
));
898 measureUnit
.adoptInstead(MeasureUnit::createDeciliter(status
));
899 measureUnit
.adoptInstead(MeasureUnit::createFluidOunce(status
));
900 measureUnit
.adoptInstead(MeasureUnit::createGallon(status
));
901 measureUnit
.adoptInstead(MeasureUnit::createGallonImperial(status
));
902 measureUnit
.adoptInstead(MeasureUnit::createHectoliter(status
));
903 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
904 measureUnit
.adoptInstead(MeasureUnit::createMegaliter(status
));
905 measureUnit
.adoptInstead(MeasureUnit::createMilliliter(status
));
906 measureUnit
.adoptInstead(MeasureUnit::createPint(status
));
907 measureUnit
.adoptInstead(MeasureUnit::createPintMetric(status
));
908 measureUnit
.adoptInstead(MeasureUnit::createQuart(status
));
909 measureUnit
.adoptInstead(MeasureUnit::createTablespoon(status
));
910 measureUnit
.adoptInstead(MeasureUnit::createTeaspoon(status
));
911 assertSuccess("", status
);
914 void MeasureFormatTest::TestCompatible59() {
915 UErrorCode status
= U_ZERO_ERROR
;
916 LocalPointer
<MeasureUnit
> measureUnit
;
917 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
918 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status
));
919 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
920 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
921 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
922 measureUnit
.adoptInstead(MeasureUnit::createRadian(status
));
923 measureUnit
.adoptInstead(MeasureUnit::createRevolutionAngle(status
));
924 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
925 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
926 measureUnit
.adoptInstead(MeasureUnit::createSquareCentimeter(status
));
927 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
928 measureUnit
.adoptInstead(MeasureUnit::createSquareInch(status
));
929 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
930 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
931 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
932 measureUnit
.adoptInstead(MeasureUnit::createSquareYard(status
));
933 measureUnit
.adoptInstead(MeasureUnit::createKarat(status
));
934 measureUnit
.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status
));
935 measureUnit
.adoptInstead(MeasureUnit::createMillimolePerLiter(status
));
936 measureUnit
.adoptInstead(MeasureUnit::createPartPerMillion(status
));
937 measureUnit
.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status
));
938 measureUnit
.adoptInstead(MeasureUnit::createLiterPerKilometer(status
));
939 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallon(status
));
940 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallonImperial(status
));
941 measureUnit
.adoptInstead(MeasureUnit::createBit(status
));
942 measureUnit
.adoptInstead(MeasureUnit::createByte(status
));
943 measureUnit
.adoptInstead(MeasureUnit::createGigabit(status
));
944 measureUnit
.adoptInstead(MeasureUnit::createGigabyte(status
));
945 measureUnit
.adoptInstead(MeasureUnit::createKilobit(status
));
946 measureUnit
.adoptInstead(MeasureUnit::createKilobyte(status
));
947 measureUnit
.adoptInstead(MeasureUnit::createMegabit(status
));
948 measureUnit
.adoptInstead(MeasureUnit::createMegabyte(status
));
949 measureUnit
.adoptInstead(MeasureUnit::createTerabit(status
));
950 measureUnit
.adoptInstead(MeasureUnit::createTerabyte(status
));
951 measureUnit
.adoptInstead(MeasureUnit::createCentury(status
));
952 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
953 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
954 measureUnit
.adoptInstead(MeasureUnit::createMicrosecond(status
));
955 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
956 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
957 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
958 measureUnit
.adoptInstead(MeasureUnit::createNanosecond(status
));
959 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
960 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
961 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
962 measureUnit
.adoptInstead(MeasureUnit::createAmpere(status
));
963 measureUnit
.adoptInstead(MeasureUnit::createMilliampere(status
));
964 measureUnit
.adoptInstead(MeasureUnit::createOhm(status
));
965 measureUnit
.adoptInstead(MeasureUnit::createVolt(status
));
966 measureUnit
.adoptInstead(MeasureUnit::createCalorie(status
));
967 measureUnit
.adoptInstead(MeasureUnit::createFoodcalorie(status
));
968 measureUnit
.adoptInstead(MeasureUnit::createJoule(status
));
969 measureUnit
.adoptInstead(MeasureUnit::createKilocalorie(status
));
970 measureUnit
.adoptInstead(MeasureUnit::createKilojoule(status
));
971 measureUnit
.adoptInstead(MeasureUnit::createKilowattHour(status
));
972 measureUnit
.adoptInstead(MeasureUnit::createGigahertz(status
));
973 measureUnit
.adoptInstead(MeasureUnit::createHertz(status
));
974 measureUnit
.adoptInstead(MeasureUnit::createKilohertz(status
));
975 measureUnit
.adoptInstead(MeasureUnit::createMegahertz(status
));
976 measureUnit
.adoptInstead(MeasureUnit::createAstronomicalUnit(status
));
977 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
978 measureUnit
.adoptInstead(MeasureUnit::createDecimeter(status
));
979 measureUnit
.adoptInstead(MeasureUnit::createFathom(status
));
980 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
981 measureUnit
.adoptInstead(MeasureUnit::createFurlong(status
));
982 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
983 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
984 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
985 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
986 measureUnit
.adoptInstead(MeasureUnit::createMicrometer(status
));
987 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
988 measureUnit
.adoptInstead(MeasureUnit::createMileScandinavian(status
));
989 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
990 measureUnit
.adoptInstead(MeasureUnit::createNanometer(status
));
991 measureUnit
.adoptInstead(MeasureUnit::createNauticalMile(status
));
992 measureUnit
.adoptInstead(MeasureUnit::createParsec(status
));
993 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
994 measureUnit
.adoptInstead(MeasureUnit::createPoint(status
));
995 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
996 measureUnit
.adoptInstead(MeasureUnit::createLux(status
));
997 measureUnit
.adoptInstead(MeasureUnit::createCarat(status
));
998 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
999 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
1000 measureUnit
.adoptInstead(MeasureUnit::createMetricTon(status
));
1001 measureUnit
.adoptInstead(MeasureUnit::createMicrogram(status
));
1002 measureUnit
.adoptInstead(MeasureUnit::createMilligram(status
));
1003 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
1004 measureUnit
.adoptInstead(MeasureUnit::createOunceTroy(status
));
1005 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
1006 measureUnit
.adoptInstead(MeasureUnit::createStone(status
));
1007 measureUnit
.adoptInstead(MeasureUnit::createTon(status
));
1008 measureUnit
.adoptInstead(MeasureUnit::createGigawatt(status
));
1009 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
1010 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
1011 measureUnit
.adoptInstead(MeasureUnit::createMegawatt(status
));
1012 measureUnit
.adoptInstead(MeasureUnit::createMilliwatt(status
));
1013 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
1014 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
1015 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
1016 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
1017 measureUnit
.adoptInstead(MeasureUnit::createMillimeterOfMercury(status
));
1018 measureUnit
.adoptInstead(MeasureUnit::createPoundPerSquareInch(status
));
1019 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
1020 measureUnit
.adoptInstead(MeasureUnit::createKnot(status
));
1021 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
1022 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
1023 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
1024 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
1025 measureUnit
.adoptInstead(MeasureUnit::createGenericTemperature(status
));
1026 measureUnit
.adoptInstead(MeasureUnit::createKelvin(status
));
1027 measureUnit
.adoptInstead(MeasureUnit::createAcreFoot(status
));
1028 measureUnit
.adoptInstead(MeasureUnit::createBushel(status
));
1029 measureUnit
.adoptInstead(MeasureUnit::createCentiliter(status
));
1030 measureUnit
.adoptInstead(MeasureUnit::createCubicCentimeter(status
));
1031 measureUnit
.adoptInstead(MeasureUnit::createCubicFoot(status
));
1032 measureUnit
.adoptInstead(MeasureUnit::createCubicInch(status
));
1033 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
1034 measureUnit
.adoptInstead(MeasureUnit::createCubicMeter(status
));
1035 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
1036 measureUnit
.adoptInstead(MeasureUnit::createCubicYard(status
));
1037 measureUnit
.adoptInstead(MeasureUnit::createCup(status
));
1038 measureUnit
.adoptInstead(MeasureUnit::createCupMetric(status
));
1039 measureUnit
.adoptInstead(MeasureUnit::createDeciliter(status
));
1040 measureUnit
.adoptInstead(MeasureUnit::createFluidOunce(status
));
1041 measureUnit
.adoptInstead(MeasureUnit::createGallon(status
));
1042 measureUnit
.adoptInstead(MeasureUnit::createGallonImperial(status
));
1043 measureUnit
.adoptInstead(MeasureUnit::createHectoliter(status
));
1044 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
1045 measureUnit
.adoptInstead(MeasureUnit::createMegaliter(status
));
1046 measureUnit
.adoptInstead(MeasureUnit::createMilliliter(status
));
1047 measureUnit
.adoptInstead(MeasureUnit::createPint(status
));
1048 measureUnit
.adoptInstead(MeasureUnit::createPintMetric(status
));
1049 measureUnit
.adoptInstead(MeasureUnit::createQuart(status
));
1050 measureUnit
.adoptInstead(MeasureUnit::createTablespoon(status
));
1051 measureUnit
.adoptInstead(MeasureUnit::createTeaspoon(status
));
1052 assertSuccess("", status
);
1055 // Note that TestCompatible60(), TestCompatible61(), TestCompatible62()
1056 // would be the same as TestCompatible59(), no need to add them.
1058 void MeasureFormatTest::TestCompatible63() {
1059 UErrorCode status
= U_ZERO_ERROR
;
1060 LocalPointer
<MeasureUnit
> measureUnit
;
1061 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
1062 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status
));
1063 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
1064 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
1065 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
1066 measureUnit
.adoptInstead(MeasureUnit::createRadian(status
));
1067 measureUnit
.adoptInstead(MeasureUnit::createRevolutionAngle(status
));
1068 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
1069 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
1070 measureUnit
.adoptInstead(MeasureUnit::createSquareCentimeter(status
));
1071 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
1072 measureUnit
.adoptInstead(MeasureUnit::createSquareInch(status
));
1073 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
1074 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
1075 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
1076 measureUnit
.adoptInstead(MeasureUnit::createSquareYard(status
));
1077 measureUnit
.adoptInstead(MeasureUnit::createKarat(status
));
1078 measureUnit
.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status
));
1079 measureUnit
.adoptInstead(MeasureUnit::createMillimolePerLiter(status
));
1080 measureUnit
.adoptInstead(MeasureUnit::createPartPerMillion(status
));
1081 measureUnit
.adoptInstead(MeasureUnit::createPercent(status
));
1082 measureUnit
.adoptInstead(MeasureUnit::createPermille(status
));
1083 measureUnit
.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status
));
1084 measureUnit
.adoptInstead(MeasureUnit::createLiterPerKilometer(status
));
1085 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallon(status
));
1086 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallonImperial(status
));
1087 measureUnit
.adoptInstead(MeasureUnit::createBit(status
));
1088 measureUnit
.adoptInstead(MeasureUnit::createByte(status
));
1089 measureUnit
.adoptInstead(MeasureUnit::createGigabit(status
));
1090 measureUnit
.adoptInstead(MeasureUnit::createGigabyte(status
));
1091 measureUnit
.adoptInstead(MeasureUnit::createKilobit(status
));
1092 measureUnit
.adoptInstead(MeasureUnit::createKilobyte(status
));
1093 measureUnit
.adoptInstead(MeasureUnit::createMegabit(status
));
1094 measureUnit
.adoptInstead(MeasureUnit::createMegabyte(status
));
1095 measureUnit
.adoptInstead(MeasureUnit::createPetabyte(status
));
1096 measureUnit
.adoptInstead(MeasureUnit::createTerabit(status
));
1097 measureUnit
.adoptInstead(MeasureUnit::createTerabyte(status
));
1098 measureUnit
.adoptInstead(MeasureUnit::createCentury(status
));
1099 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
1100 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
1101 measureUnit
.adoptInstead(MeasureUnit::createMicrosecond(status
));
1102 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
1103 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
1104 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
1105 measureUnit
.adoptInstead(MeasureUnit::createNanosecond(status
));
1106 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
1107 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
1108 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
1109 measureUnit
.adoptInstead(MeasureUnit::createAmpere(status
));
1110 measureUnit
.adoptInstead(MeasureUnit::createMilliampere(status
));
1111 measureUnit
.adoptInstead(MeasureUnit::createOhm(status
));
1112 measureUnit
.adoptInstead(MeasureUnit::createVolt(status
));
1113 measureUnit
.adoptInstead(MeasureUnit::createCalorie(status
));
1114 measureUnit
.adoptInstead(MeasureUnit::createFoodcalorie(status
));
1115 measureUnit
.adoptInstead(MeasureUnit::createJoule(status
));
1116 measureUnit
.adoptInstead(MeasureUnit::createKilocalorie(status
));
1117 measureUnit
.adoptInstead(MeasureUnit::createKilojoule(status
));
1118 measureUnit
.adoptInstead(MeasureUnit::createKilowattHour(status
));
1119 measureUnit
.adoptInstead(MeasureUnit::createGigahertz(status
));
1120 measureUnit
.adoptInstead(MeasureUnit::createHertz(status
));
1121 measureUnit
.adoptInstead(MeasureUnit::createKilohertz(status
));
1122 measureUnit
.adoptInstead(MeasureUnit::createMegahertz(status
));
1123 measureUnit
.adoptInstead(MeasureUnit::createAstronomicalUnit(status
));
1124 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
1125 measureUnit
.adoptInstead(MeasureUnit::createDecimeter(status
));
1126 measureUnit
.adoptInstead(MeasureUnit::createFathom(status
));
1127 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
1128 measureUnit
.adoptInstead(MeasureUnit::createFurlong(status
));
1129 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
1130 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
1131 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
1132 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
1133 measureUnit
.adoptInstead(MeasureUnit::createMicrometer(status
));
1134 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
1135 measureUnit
.adoptInstead(MeasureUnit::createMileScandinavian(status
));
1136 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
1137 measureUnit
.adoptInstead(MeasureUnit::createNanometer(status
));
1138 measureUnit
.adoptInstead(MeasureUnit::createNauticalMile(status
));
1139 measureUnit
.adoptInstead(MeasureUnit::createParsec(status
));
1140 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
1141 measureUnit
.adoptInstead(MeasureUnit::createPoint(status
));
1142 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
1143 measureUnit
.adoptInstead(MeasureUnit::createLux(status
));
1144 measureUnit
.adoptInstead(MeasureUnit::createCarat(status
));
1145 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
1146 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
1147 measureUnit
.adoptInstead(MeasureUnit::createMetricTon(status
));
1148 measureUnit
.adoptInstead(MeasureUnit::createMicrogram(status
));
1149 measureUnit
.adoptInstead(MeasureUnit::createMilligram(status
));
1150 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
1151 measureUnit
.adoptInstead(MeasureUnit::createOunceTroy(status
));
1152 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
1153 measureUnit
.adoptInstead(MeasureUnit::createStone(status
));
1154 measureUnit
.adoptInstead(MeasureUnit::createTon(status
));
1155 measureUnit
.adoptInstead(MeasureUnit::createGigawatt(status
));
1156 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
1157 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
1158 measureUnit
.adoptInstead(MeasureUnit::createMegawatt(status
));
1159 measureUnit
.adoptInstead(MeasureUnit::createMilliwatt(status
));
1160 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
1161 measureUnit
.adoptInstead(MeasureUnit::createAtmosphere(status
));
1162 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
1163 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
1164 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
1165 measureUnit
.adoptInstead(MeasureUnit::createMillimeterOfMercury(status
));
1166 measureUnit
.adoptInstead(MeasureUnit::createPoundPerSquareInch(status
));
1167 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
1168 measureUnit
.adoptInstead(MeasureUnit::createKnot(status
));
1169 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
1170 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
1171 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
1172 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
1173 measureUnit
.adoptInstead(MeasureUnit::createGenericTemperature(status
));
1174 measureUnit
.adoptInstead(MeasureUnit::createKelvin(status
));
1175 measureUnit
.adoptInstead(MeasureUnit::createAcreFoot(status
));
1176 measureUnit
.adoptInstead(MeasureUnit::createBushel(status
));
1177 measureUnit
.adoptInstead(MeasureUnit::createCentiliter(status
));
1178 measureUnit
.adoptInstead(MeasureUnit::createCubicCentimeter(status
));
1179 measureUnit
.adoptInstead(MeasureUnit::createCubicFoot(status
));
1180 measureUnit
.adoptInstead(MeasureUnit::createCubicInch(status
));
1181 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
1182 measureUnit
.adoptInstead(MeasureUnit::createCubicMeter(status
));
1183 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
1184 measureUnit
.adoptInstead(MeasureUnit::createCubicYard(status
));
1185 measureUnit
.adoptInstead(MeasureUnit::createCup(status
));
1186 measureUnit
.adoptInstead(MeasureUnit::createCupMetric(status
));
1187 measureUnit
.adoptInstead(MeasureUnit::createDeciliter(status
));
1188 measureUnit
.adoptInstead(MeasureUnit::createFluidOunce(status
));
1189 measureUnit
.adoptInstead(MeasureUnit::createGallon(status
));
1190 measureUnit
.adoptInstead(MeasureUnit::createGallonImperial(status
));
1191 measureUnit
.adoptInstead(MeasureUnit::createHectoliter(status
));
1192 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
1193 measureUnit
.adoptInstead(MeasureUnit::createMegaliter(status
));
1194 measureUnit
.adoptInstead(MeasureUnit::createMilliliter(status
));
1195 measureUnit
.adoptInstead(MeasureUnit::createPint(status
));
1196 measureUnit
.adoptInstead(MeasureUnit::createPintMetric(status
));
1197 measureUnit
.adoptInstead(MeasureUnit::createQuart(status
));
1198 measureUnit
.adoptInstead(MeasureUnit::createTablespoon(status
));
1199 measureUnit
.adoptInstead(MeasureUnit::createTeaspoon(status
));
1200 assertSuccess("", status
);
1203 void MeasureFormatTest::TestCompatible64() {
1204 UErrorCode status
= U_ZERO_ERROR
;
1205 LocalPointer
<MeasureUnit
> measureUnit
;
1206 MeasureUnit measureUnitValue
;
1207 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
1208 measureUnitValue
= MeasureUnit::getGForce();
1209 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status
));
1210 measureUnitValue
= MeasureUnit::getMeterPerSecondSquared();
1211 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
1212 measureUnitValue
= MeasureUnit::getArcMinute();
1213 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
1214 measureUnitValue
= MeasureUnit::getArcSecond();
1215 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
1216 measureUnitValue
= MeasureUnit::getDegree();
1217 measureUnit
.adoptInstead(MeasureUnit::createRadian(status
));
1218 measureUnitValue
= MeasureUnit::getRadian();
1219 measureUnit
.adoptInstead(MeasureUnit::createRevolutionAngle(status
));
1220 measureUnitValue
= MeasureUnit::getRevolutionAngle();
1221 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
1222 measureUnitValue
= MeasureUnit::getAcre();
1223 measureUnit
.adoptInstead(MeasureUnit::createDunam(status
));
1224 measureUnitValue
= MeasureUnit::getDunam();
1225 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
1226 measureUnitValue
= MeasureUnit::getHectare();
1227 measureUnit
.adoptInstead(MeasureUnit::createSquareCentimeter(status
));
1228 measureUnitValue
= MeasureUnit::getSquareCentimeter();
1229 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
1230 measureUnitValue
= MeasureUnit::getSquareFoot();
1231 measureUnit
.adoptInstead(MeasureUnit::createSquareInch(status
));
1232 measureUnitValue
= MeasureUnit::getSquareInch();
1233 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
1234 measureUnitValue
= MeasureUnit::getSquareKilometer();
1235 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
1236 measureUnitValue
= MeasureUnit::getSquareMeter();
1237 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
1238 measureUnitValue
= MeasureUnit::getSquareMile();
1239 measureUnit
.adoptInstead(MeasureUnit::createSquareYard(status
));
1240 measureUnitValue
= MeasureUnit::getSquareYard();
1241 measureUnit
.adoptInstead(MeasureUnit::createKarat(status
));
1242 measureUnitValue
= MeasureUnit::getKarat();
1243 measureUnit
.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status
));
1244 measureUnitValue
= MeasureUnit::getMilligramPerDeciliter();
1245 measureUnit
.adoptInstead(MeasureUnit::createMillimolePerLiter(status
));
1246 measureUnitValue
= MeasureUnit::getMillimolePerLiter();
1247 measureUnit
.adoptInstead(MeasureUnit::createMole(status
));
1248 measureUnitValue
= MeasureUnit::getMole();
1249 measureUnit
.adoptInstead(MeasureUnit::createPartPerMillion(status
));
1250 measureUnitValue
= MeasureUnit::getPartPerMillion();
1251 measureUnit
.adoptInstead(MeasureUnit::createPercent(status
));
1252 measureUnitValue
= MeasureUnit::getPercent();
1253 measureUnit
.adoptInstead(MeasureUnit::createPermille(status
));
1254 measureUnitValue
= MeasureUnit::getPermille();
1255 measureUnit
.adoptInstead(MeasureUnit::createPermyriad(status
));
1256 measureUnitValue
= MeasureUnit::getPermyriad();
1257 measureUnit
.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status
));
1258 measureUnitValue
= MeasureUnit::getLiterPer100Kilometers();
1259 measureUnit
.adoptInstead(MeasureUnit::createLiterPerKilometer(status
));
1260 measureUnitValue
= MeasureUnit::getLiterPerKilometer();
1261 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallon(status
));
1262 measureUnitValue
= MeasureUnit::getMilePerGallon();
1263 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallonImperial(status
));
1264 measureUnitValue
= MeasureUnit::getMilePerGallonImperial();
1265 measureUnit
.adoptInstead(MeasureUnit::createBit(status
));
1266 measureUnitValue
= MeasureUnit::getBit();
1267 measureUnit
.adoptInstead(MeasureUnit::createByte(status
));
1268 measureUnitValue
= MeasureUnit::getByte();
1269 measureUnit
.adoptInstead(MeasureUnit::createGigabit(status
));
1270 measureUnitValue
= MeasureUnit::getGigabit();
1271 measureUnit
.adoptInstead(MeasureUnit::createGigabyte(status
));
1272 measureUnitValue
= MeasureUnit::getGigabyte();
1273 measureUnit
.adoptInstead(MeasureUnit::createKilobit(status
));
1274 measureUnitValue
= MeasureUnit::getKilobit();
1275 measureUnit
.adoptInstead(MeasureUnit::createKilobyte(status
));
1276 measureUnitValue
= MeasureUnit::getKilobyte();
1277 measureUnit
.adoptInstead(MeasureUnit::createMegabit(status
));
1278 measureUnitValue
= MeasureUnit::getMegabit();
1279 measureUnit
.adoptInstead(MeasureUnit::createMegabyte(status
));
1280 measureUnitValue
= MeasureUnit::getMegabyte();
1281 measureUnit
.adoptInstead(MeasureUnit::createPetabyte(status
));
1282 measureUnitValue
= MeasureUnit::getPetabyte();
1283 measureUnit
.adoptInstead(MeasureUnit::createTerabit(status
));
1284 measureUnitValue
= MeasureUnit::getTerabit();
1285 measureUnit
.adoptInstead(MeasureUnit::createTerabyte(status
));
1286 measureUnitValue
= MeasureUnit::getTerabyte();
1287 measureUnit
.adoptInstead(MeasureUnit::createCentury(status
));
1288 measureUnitValue
= MeasureUnit::getCentury();
1289 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
1290 measureUnitValue
= MeasureUnit::getDay();
1291 measureUnit
.adoptInstead(MeasureUnit::createDayPerson(status
));
1292 measureUnitValue
= MeasureUnit::getDayPerson();
1293 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
1294 measureUnitValue
= MeasureUnit::getHour();
1295 measureUnit
.adoptInstead(MeasureUnit::createMicrosecond(status
));
1296 measureUnitValue
= MeasureUnit::getMicrosecond();
1297 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
1298 measureUnitValue
= MeasureUnit::getMillisecond();
1299 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
1300 measureUnitValue
= MeasureUnit::getMinute();
1301 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
1302 measureUnitValue
= MeasureUnit::getMonth();
1303 measureUnit
.adoptInstead(MeasureUnit::createMonthPerson(status
));
1304 measureUnitValue
= MeasureUnit::getMonthPerson();
1305 measureUnit
.adoptInstead(MeasureUnit::createNanosecond(status
));
1306 measureUnitValue
= MeasureUnit::getNanosecond();
1307 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
1308 measureUnitValue
= MeasureUnit::getSecond();
1309 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
1310 measureUnitValue
= MeasureUnit::getWeek();
1311 measureUnit
.adoptInstead(MeasureUnit::createWeekPerson(status
));
1312 measureUnitValue
= MeasureUnit::getWeekPerson();
1313 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
1314 measureUnitValue
= MeasureUnit::getYear();
1315 measureUnit
.adoptInstead(MeasureUnit::createYearPerson(status
));
1316 measureUnitValue
= MeasureUnit::getYearPerson();
1317 measureUnit
.adoptInstead(MeasureUnit::createAmpere(status
));
1318 measureUnitValue
= MeasureUnit::getAmpere();
1319 measureUnit
.adoptInstead(MeasureUnit::createMilliampere(status
));
1320 measureUnitValue
= MeasureUnit::getMilliampere();
1321 measureUnit
.adoptInstead(MeasureUnit::createOhm(status
));
1322 measureUnitValue
= MeasureUnit::getOhm();
1323 measureUnit
.adoptInstead(MeasureUnit::createVolt(status
));
1324 measureUnitValue
= MeasureUnit::getVolt();
1325 measureUnit
.adoptInstead(MeasureUnit::createBritishThermalUnit(status
));
1326 measureUnitValue
= MeasureUnit::getBritishThermalUnit();
1327 measureUnit
.adoptInstead(MeasureUnit::createCalorie(status
));
1328 measureUnitValue
= MeasureUnit::getCalorie();
1329 measureUnit
.adoptInstead(MeasureUnit::createElectronvolt(status
));
1330 measureUnitValue
= MeasureUnit::getElectronvolt();
1331 measureUnit
.adoptInstead(MeasureUnit::createFoodcalorie(status
));
1332 measureUnitValue
= MeasureUnit::getFoodcalorie();
1333 measureUnit
.adoptInstead(MeasureUnit::createJoule(status
));
1334 measureUnitValue
= MeasureUnit::getJoule();
1335 measureUnit
.adoptInstead(MeasureUnit::createKilocalorie(status
));
1336 measureUnitValue
= MeasureUnit::getKilocalorie();
1337 measureUnit
.adoptInstead(MeasureUnit::createKilojoule(status
));
1338 measureUnitValue
= MeasureUnit::getKilojoule();
1339 measureUnit
.adoptInstead(MeasureUnit::createKilowattHour(status
));
1340 measureUnitValue
= MeasureUnit::getKilowattHour();
1341 measureUnit
.adoptInstead(MeasureUnit::createNewton(status
));
1342 measureUnitValue
= MeasureUnit::getNewton();
1343 measureUnit
.adoptInstead(MeasureUnit::createPoundForce(status
));
1344 measureUnitValue
= MeasureUnit::getPoundForce();
1345 measureUnit
.adoptInstead(MeasureUnit::createGigahertz(status
));
1346 measureUnitValue
= MeasureUnit::getGigahertz();
1347 measureUnit
.adoptInstead(MeasureUnit::createHertz(status
));
1348 measureUnitValue
= MeasureUnit::getHertz();
1349 measureUnit
.adoptInstead(MeasureUnit::createKilohertz(status
));
1350 measureUnitValue
= MeasureUnit::getKilohertz();
1351 measureUnit
.adoptInstead(MeasureUnit::createMegahertz(status
));
1352 measureUnitValue
= MeasureUnit::getMegahertz();
1353 measureUnit
.adoptInstead(MeasureUnit::createAstronomicalUnit(status
));
1354 measureUnitValue
= MeasureUnit::getAstronomicalUnit();
1355 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
1356 measureUnitValue
= MeasureUnit::getCentimeter();
1357 measureUnit
.adoptInstead(MeasureUnit::createDecimeter(status
));
1358 measureUnitValue
= MeasureUnit::getDecimeter();
1359 measureUnit
.adoptInstead(MeasureUnit::createFathom(status
));
1360 measureUnitValue
= MeasureUnit::getFathom();
1361 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
1362 measureUnitValue
= MeasureUnit::getFoot();
1363 measureUnit
.adoptInstead(MeasureUnit::createFurlong(status
));
1364 measureUnitValue
= MeasureUnit::getFurlong();
1365 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
1366 measureUnitValue
= MeasureUnit::getInch();
1367 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
1368 measureUnitValue
= MeasureUnit::getKilometer();
1369 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
1370 measureUnitValue
= MeasureUnit::getLightYear();
1371 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
1372 measureUnitValue
= MeasureUnit::getMeter();
1373 measureUnit
.adoptInstead(MeasureUnit::createMicrometer(status
));
1374 measureUnitValue
= MeasureUnit::getMicrometer();
1375 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
1376 measureUnitValue
= MeasureUnit::getMile();
1377 measureUnit
.adoptInstead(MeasureUnit::createMileScandinavian(status
));
1378 measureUnitValue
= MeasureUnit::getMileScandinavian();
1379 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
1380 measureUnitValue
= MeasureUnit::getMillimeter();
1381 measureUnit
.adoptInstead(MeasureUnit::createNanometer(status
));
1382 measureUnitValue
= MeasureUnit::getNanometer();
1383 measureUnit
.adoptInstead(MeasureUnit::createNauticalMile(status
));
1384 measureUnitValue
= MeasureUnit::getNauticalMile();
1385 measureUnit
.adoptInstead(MeasureUnit::createParsec(status
));
1386 measureUnitValue
= MeasureUnit::getParsec();
1387 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
1388 measureUnitValue
= MeasureUnit::getPicometer();
1389 measureUnit
.adoptInstead(MeasureUnit::createPoint(status
));
1390 measureUnitValue
= MeasureUnit::getPoint();
1391 measureUnit
.adoptInstead(MeasureUnit::createSolarRadius(status
));
1392 measureUnitValue
= MeasureUnit::getSolarRadius();
1393 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
1394 measureUnitValue
= MeasureUnit::getYard();
1395 measureUnit
.adoptInstead(MeasureUnit::createLux(status
));
1396 measureUnitValue
= MeasureUnit::getLux();
1397 measureUnit
.adoptInstead(MeasureUnit::createSolarLuminosity(status
));
1398 measureUnitValue
= MeasureUnit::getSolarLuminosity();
1399 measureUnit
.adoptInstead(MeasureUnit::createCarat(status
));
1400 measureUnitValue
= MeasureUnit::getCarat();
1401 measureUnit
.adoptInstead(MeasureUnit::createDalton(status
));
1402 measureUnitValue
= MeasureUnit::getDalton();
1403 measureUnit
.adoptInstead(MeasureUnit::createEarthMass(status
));
1404 measureUnitValue
= MeasureUnit::getEarthMass();
1405 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
1406 measureUnitValue
= MeasureUnit::getGram();
1407 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
1408 measureUnitValue
= MeasureUnit::getKilogram();
1409 measureUnit
.adoptInstead(MeasureUnit::createMetricTon(status
));
1410 measureUnitValue
= MeasureUnit::getMetricTon();
1411 measureUnit
.adoptInstead(MeasureUnit::createMicrogram(status
));
1412 measureUnitValue
= MeasureUnit::getMicrogram();
1413 measureUnit
.adoptInstead(MeasureUnit::createMilligram(status
));
1414 measureUnitValue
= MeasureUnit::getMilligram();
1415 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
1416 measureUnitValue
= MeasureUnit::getOunce();
1417 measureUnit
.adoptInstead(MeasureUnit::createOunceTroy(status
));
1418 measureUnitValue
= MeasureUnit::getOunceTroy();
1419 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
1420 measureUnitValue
= MeasureUnit::getPound();
1421 measureUnit
.adoptInstead(MeasureUnit::createSolarMass(status
));
1422 measureUnitValue
= MeasureUnit::getSolarMass();
1423 measureUnit
.adoptInstead(MeasureUnit::createStone(status
));
1424 measureUnitValue
= MeasureUnit::getStone();
1425 measureUnit
.adoptInstead(MeasureUnit::createTon(status
));
1426 measureUnitValue
= MeasureUnit::getTon();
1427 measureUnit
.adoptInstead(MeasureUnit::createGigawatt(status
));
1428 measureUnitValue
= MeasureUnit::getGigawatt();
1429 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
1430 measureUnitValue
= MeasureUnit::getHorsepower();
1431 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
1432 measureUnitValue
= MeasureUnit::getKilowatt();
1433 measureUnit
.adoptInstead(MeasureUnit::createMegawatt(status
));
1434 measureUnitValue
= MeasureUnit::getMegawatt();
1435 measureUnit
.adoptInstead(MeasureUnit::createMilliwatt(status
));
1436 measureUnitValue
= MeasureUnit::getMilliwatt();
1437 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
1438 measureUnitValue
= MeasureUnit::getWatt();
1439 measureUnit
.adoptInstead(MeasureUnit::createAtmosphere(status
));
1440 measureUnitValue
= MeasureUnit::getAtmosphere();
1441 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
1442 measureUnitValue
= MeasureUnit::getHectopascal();
1443 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
1444 measureUnitValue
= MeasureUnit::getInchHg();
1445 measureUnit
.adoptInstead(MeasureUnit::createKilopascal(status
));
1446 measureUnitValue
= MeasureUnit::getKilopascal();
1447 measureUnit
.adoptInstead(MeasureUnit::createMegapascal(status
));
1448 measureUnitValue
= MeasureUnit::getMegapascal();
1449 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
1450 measureUnitValue
= MeasureUnit::getMillibar();
1451 measureUnit
.adoptInstead(MeasureUnit::createMillimeterOfMercury(status
));
1452 measureUnitValue
= MeasureUnit::getMillimeterOfMercury();
1453 measureUnit
.adoptInstead(MeasureUnit::createPoundPerSquareInch(status
));
1454 measureUnitValue
= MeasureUnit::getPoundPerSquareInch();
1455 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
1456 measureUnitValue
= MeasureUnit::getKilometerPerHour();
1457 measureUnit
.adoptInstead(MeasureUnit::createKnot(status
));
1458 measureUnitValue
= MeasureUnit::getKnot();
1459 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
1460 measureUnitValue
= MeasureUnit::getMeterPerSecond();
1461 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
1462 measureUnitValue
= MeasureUnit::getMilePerHour();
1463 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
1464 measureUnitValue
= MeasureUnit::getCelsius();
1465 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
1466 measureUnitValue
= MeasureUnit::getFahrenheit();
1467 measureUnit
.adoptInstead(MeasureUnit::createGenericTemperature(status
));
1468 measureUnitValue
= MeasureUnit::getGenericTemperature();
1469 measureUnit
.adoptInstead(MeasureUnit::createKelvin(status
));
1470 measureUnitValue
= MeasureUnit::getKelvin();
1471 measureUnit
.adoptInstead(MeasureUnit::createNewtonMeter(status
));
1472 measureUnitValue
= MeasureUnit::getNewtonMeter();
1473 measureUnit
.adoptInstead(MeasureUnit::createPoundFoot(status
));
1474 measureUnitValue
= MeasureUnit::getPoundFoot();
1475 measureUnit
.adoptInstead(MeasureUnit::createAcreFoot(status
));
1476 measureUnitValue
= MeasureUnit::getAcreFoot();
1477 measureUnit
.adoptInstead(MeasureUnit::createBarrel(status
));
1478 measureUnitValue
= MeasureUnit::getBarrel();
1479 measureUnit
.adoptInstead(MeasureUnit::createBushel(status
));
1480 measureUnitValue
= MeasureUnit::getBushel();
1481 measureUnit
.adoptInstead(MeasureUnit::createCentiliter(status
));
1482 measureUnitValue
= MeasureUnit::getCentiliter();
1483 measureUnit
.adoptInstead(MeasureUnit::createCubicCentimeter(status
));
1484 measureUnitValue
= MeasureUnit::getCubicCentimeter();
1485 measureUnit
.adoptInstead(MeasureUnit::createCubicFoot(status
));
1486 measureUnitValue
= MeasureUnit::getCubicFoot();
1487 measureUnit
.adoptInstead(MeasureUnit::createCubicInch(status
));
1488 measureUnitValue
= MeasureUnit::getCubicInch();
1489 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
1490 measureUnitValue
= MeasureUnit::getCubicKilometer();
1491 measureUnit
.adoptInstead(MeasureUnit::createCubicMeter(status
));
1492 measureUnitValue
= MeasureUnit::getCubicMeter();
1493 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
1494 measureUnitValue
= MeasureUnit::getCubicMile();
1495 measureUnit
.adoptInstead(MeasureUnit::createCubicYard(status
));
1496 measureUnitValue
= MeasureUnit::getCubicYard();
1497 measureUnit
.adoptInstead(MeasureUnit::createCup(status
));
1498 measureUnitValue
= MeasureUnit::getCup();
1499 measureUnit
.adoptInstead(MeasureUnit::createCupMetric(status
));
1500 measureUnitValue
= MeasureUnit::getCupMetric();
1501 measureUnit
.adoptInstead(MeasureUnit::createDeciliter(status
));
1502 measureUnitValue
= MeasureUnit::getDeciliter();
1503 measureUnit
.adoptInstead(MeasureUnit::createFluidOunce(status
));
1504 measureUnitValue
= MeasureUnit::getFluidOunce();
1505 measureUnit
.adoptInstead(MeasureUnit::createFluidOunceImperial(status
));
1506 measureUnitValue
= MeasureUnit::getFluidOunceImperial();
1507 measureUnit
.adoptInstead(MeasureUnit::createGallon(status
));
1508 measureUnitValue
= MeasureUnit::getGallon();
1509 measureUnit
.adoptInstead(MeasureUnit::createGallonImperial(status
));
1510 measureUnitValue
= MeasureUnit::getGallonImperial();
1511 measureUnit
.adoptInstead(MeasureUnit::createHectoliter(status
));
1512 measureUnitValue
= MeasureUnit::getHectoliter();
1513 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
1514 measureUnitValue
= MeasureUnit::getLiter();
1515 measureUnit
.adoptInstead(MeasureUnit::createMegaliter(status
));
1516 measureUnitValue
= MeasureUnit::getMegaliter();
1517 measureUnit
.adoptInstead(MeasureUnit::createMilliliter(status
));
1518 measureUnitValue
= MeasureUnit::getMilliliter();
1519 measureUnit
.adoptInstead(MeasureUnit::createPint(status
));
1520 measureUnitValue
= MeasureUnit::getPint();
1521 measureUnit
.adoptInstead(MeasureUnit::createPintMetric(status
));
1522 measureUnitValue
= MeasureUnit::getPintMetric();
1523 measureUnit
.adoptInstead(MeasureUnit::createQuart(status
));
1524 measureUnitValue
= MeasureUnit::getQuart();
1525 measureUnit
.adoptInstead(MeasureUnit::createTablespoon(status
));
1526 measureUnitValue
= MeasureUnit::getTablespoon();
1527 measureUnit
.adoptInstead(MeasureUnit::createTeaspoon(status
));
1528 measureUnitValue
= MeasureUnit::getTeaspoon();
1529 assertSuccess("", status
);
1532 void MeasureFormatTest::TestCompatible65() {
1533 UErrorCode status
= U_ZERO_ERROR
;
1534 LocalPointer
<MeasureUnit
> measureUnit
;
1535 MeasureUnit measureUnitValue
;
1536 measureUnit
.adoptInstead(MeasureUnit::createGForce(status
));
1537 measureUnitValue
= MeasureUnit::getGForce();
1538 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status
));
1539 measureUnitValue
= MeasureUnit::getMeterPerSecondSquared();
1540 measureUnit
.adoptInstead(MeasureUnit::createArcMinute(status
));
1541 measureUnitValue
= MeasureUnit::getArcMinute();
1542 measureUnit
.adoptInstead(MeasureUnit::createArcSecond(status
));
1543 measureUnitValue
= MeasureUnit::getArcSecond();
1544 measureUnit
.adoptInstead(MeasureUnit::createDegree(status
));
1545 measureUnitValue
= MeasureUnit::getDegree();
1546 measureUnit
.adoptInstead(MeasureUnit::createRadian(status
));
1547 measureUnitValue
= MeasureUnit::getRadian();
1548 measureUnit
.adoptInstead(MeasureUnit::createRevolutionAngle(status
));
1549 measureUnitValue
= MeasureUnit::getRevolutionAngle();
1550 measureUnit
.adoptInstead(MeasureUnit::createAcre(status
));
1551 measureUnitValue
= MeasureUnit::getAcre();
1552 measureUnit
.adoptInstead(MeasureUnit::createDunam(status
));
1553 measureUnitValue
= MeasureUnit::getDunam();
1554 measureUnit
.adoptInstead(MeasureUnit::createHectare(status
));
1555 measureUnitValue
= MeasureUnit::getHectare();
1556 measureUnit
.adoptInstead(MeasureUnit::createSquareCentimeter(status
));
1557 measureUnitValue
= MeasureUnit::getSquareCentimeter();
1558 measureUnit
.adoptInstead(MeasureUnit::createSquareFoot(status
));
1559 measureUnitValue
= MeasureUnit::getSquareFoot();
1560 measureUnit
.adoptInstead(MeasureUnit::createSquareInch(status
));
1561 measureUnitValue
= MeasureUnit::getSquareInch();
1562 measureUnit
.adoptInstead(MeasureUnit::createSquareKilometer(status
));
1563 measureUnitValue
= MeasureUnit::getSquareKilometer();
1564 measureUnit
.adoptInstead(MeasureUnit::createSquareMeter(status
));
1565 measureUnitValue
= MeasureUnit::getSquareMeter();
1566 measureUnit
.adoptInstead(MeasureUnit::createSquareMile(status
));
1567 measureUnitValue
= MeasureUnit::getSquareMile();
1568 measureUnit
.adoptInstead(MeasureUnit::createSquareYard(status
));
1569 measureUnitValue
= MeasureUnit::getSquareYard();
1570 measureUnit
.adoptInstead(MeasureUnit::createKarat(status
));
1571 measureUnitValue
= MeasureUnit::getKarat();
1572 measureUnit
.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status
));
1573 measureUnitValue
= MeasureUnit::getMilligramPerDeciliter();
1574 measureUnit
.adoptInstead(MeasureUnit::createMillimolePerLiter(status
));
1575 measureUnitValue
= MeasureUnit::getMillimolePerLiter();
1576 measureUnit
.adoptInstead(MeasureUnit::createMole(status
));
1577 measureUnitValue
= MeasureUnit::getMole();
1578 measureUnit
.adoptInstead(MeasureUnit::createPartPerMillion(status
));
1579 measureUnitValue
= MeasureUnit::getPartPerMillion();
1580 measureUnit
.adoptInstead(MeasureUnit::createPercent(status
));
1581 measureUnitValue
= MeasureUnit::getPercent();
1582 measureUnit
.adoptInstead(MeasureUnit::createPermille(status
));
1583 measureUnitValue
= MeasureUnit::getPermille();
1584 measureUnit
.adoptInstead(MeasureUnit::createPermyriad(status
));
1585 measureUnitValue
= MeasureUnit::getPermyriad();
1586 measureUnit
.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status
));
1587 measureUnitValue
= MeasureUnit::getLiterPer100Kilometers();
1588 measureUnit
.adoptInstead(MeasureUnit::createLiterPerKilometer(status
));
1589 measureUnitValue
= MeasureUnit::getLiterPerKilometer();
1590 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallon(status
));
1591 measureUnitValue
= MeasureUnit::getMilePerGallon();
1592 measureUnit
.adoptInstead(MeasureUnit::createMilePerGallonImperial(status
));
1593 measureUnitValue
= MeasureUnit::getMilePerGallonImperial();
1594 measureUnit
.adoptInstead(MeasureUnit::createBit(status
));
1595 measureUnitValue
= MeasureUnit::getBit();
1596 measureUnit
.adoptInstead(MeasureUnit::createByte(status
));
1597 measureUnitValue
= MeasureUnit::getByte();
1598 measureUnit
.adoptInstead(MeasureUnit::createGigabit(status
));
1599 measureUnitValue
= MeasureUnit::getGigabit();
1600 measureUnit
.adoptInstead(MeasureUnit::createGigabyte(status
));
1601 measureUnitValue
= MeasureUnit::getGigabyte();
1602 measureUnit
.adoptInstead(MeasureUnit::createKilobit(status
));
1603 measureUnitValue
= MeasureUnit::getKilobit();
1604 measureUnit
.adoptInstead(MeasureUnit::createKilobyte(status
));
1605 measureUnitValue
= MeasureUnit::getKilobyte();
1606 measureUnit
.adoptInstead(MeasureUnit::createMegabit(status
));
1607 measureUnitValue
= MeasureUnit::getMegabit();
1608 measureUnit
.adoptInstead(MeasureUnit::createMegabyte(status
));
1609 measureUnitValue
= MeasureUnit::getMegabyte();
1610 measureUnit
.adoptInstead(MeasureUnit::createPetabyte(status
));
1611 measureUnitValue
= MeasureUnit::getPetabyte();
1612 measureUnit
.adoptInstead(MeasureUnit::createTerabit(status
));
1613 measureUnitValue
= MeasureUnit::getTerabit();
1614 measureUnit
.adoptInstead(MeasureUnit::createTerabyte(status
));
1615 measureUnitValue
= MeasureUnit::getTerabyte();
1616 measureUnit
.adoptInstead(MeasureUnit::createCentury(status
));
1617 measureUnitValue
= MeasureUnit::getCentury();
1618 measureUnit
.adoptInstead(MeasureUnit::createDay(status
));
1619 measureUnitValue
= MeasureUnit::getDay();
1620 measureUnit
.adoptInstead(MeasureUnit::createDayPerson(status
));
1621 measureUnitValue
= MeasureUnit::getDayPerson();
1622 measureUnit
.adoptInstead(MeasureUnit::createDecade(status
));
1623 measureUnitValue
= MeasureUnit::getDecade();
1624 measureUnit
.adoptInstead(MeasureUnit::createHour(status
));
1625 measureUnitValue
= MeasureUnit::getHour();
1626 measureUnit
.adoptInstead(MeasureUnit::createMicrosecond(status
));
1627 measureUnitValue
= MeasureUnit::getMicrosecond();
1628 measureUnit
.adoptInstead(MeasureUnit::createMillisecond(status
));
1629 measureUnitValue
= MeasureUnit::getMillisecond();
1630 measureUnit
.adoptInstead(MeasureUnit::createMinute(status
));
1631 measureUnitValue
= MeasureUnit::getMinute();
1632 measureUnit
.adoptInstead(MeasureUnit::createMonth(status
));
1633 measureUnitValue
= MeasureUnit::getMonth();
1634 measureUnit
.adoptInstead(MeasureUnit::createMonthPerson(status
));
1635 measureUnitValue
= MeasureUnit::getMonthPerson();
1636 measureUnit
.adoptInstead(MeasureUnit::createNanosecond(status
));
1637 measureUnitValue
= MeasureUnit::getNanosecond();
1638 measureUnit
.adoptInstead(MeasureUnit::createSecond(status
));
1639 measureUnitValue
= MeasureUnit::getSecond();
1640 measureUnit
.adoptInstead(MeasureUnit::createWeek(status
));
1641 measureUnitValue
= MeasureUnit::getWeek();
1642 measureUnit
.adoptInstead(MeasureUnit::createWeekPerson(status
));
1643 measureUnitValue
= MeasureUnit::getWeekPerson();
1644 measureUnit
.adoptInstead(MeasureUnit::createYear(status
));
1645 measureUnitValue
= MeasureUnit::getYear();
1646 measureUnit
.adoptInstead(MeasureUnit::createYearPerson(status
));
1647 measureUnitValue
= MeasureUnit::getYearPerson();
1648 measureUnit
.adoptInstead(MeasureUnit::createAmpere(status
));
1649 measureUnitValue
= MeasureUnit::getAmpere();
1650 measureUnit
.adoptInstead(MeasureUnit::createMilliampere(status
));
1651 measureUnitValue
= MeasureUnit::getMilliampere();
1652 measureUnit
.adoptInstead(MeasureUnit::createOhm(status
));
1653 measureUnitValue
= MeasureUnit::getOhm();
1654 measureUnit
.adoptInstead(MeasureUnit::createVolt(status
));
1655 measureUnitValue
= MeasureUnit::getVolt();
1656 measureUnit
.adoptInstead(MeasureUnit::createBritishThermalUnit(status
));
1657 measureUnitValue
= MeasureUnit::getBritishThermalUnit();
1658 measureUnit
.adoptInstead(MeasureUnit::createCalorie(status
));
1659 measureUnitValue
= MeasureUnit::getCalorie();
1660 measureUnit
.adoptInstead(MeasureUnit::createElectronvolt(status
));
1661 measureUnitValue
= MeasureUnit::getElectronvolt();
1662 measureUnit
.adoptInstead(MeasureUnit::createFoodcalorie(status
));
1663 measureUnitValue
= MeasureUnit::getFoodcalorie();
1664 measureUnit
.adoptInstead(MeasureUnit::createJoule(status
));
1665 measureUnitValue
= MeasureUnit::getJoule();
1666 measureUnit
.adoptInstead(MeasureUnit::createKilocalorie(status
));
1667 measureUnitValue
= MeasureUnit::getKilocalorie();
1668 measureUnit
.adoptInstead(MeasureUnit::createKilojoule(status
));
1669 measureUnitValue
= MeasureUnit::getKilojoule();
1670 measureUnit
.adoptInstead(MeasureUnit::createKilowattHour(status
));
1671 measureUnitValue
= MeasureUnit::getKilowattHour();
1672 measureUnit
.adoptInstead(MeasureUnit::createThermUs(status
));
1673 measureUnitValue
= MeasureUnit::getThermUs();
1674 measureUnit
.adoptInstead(MeasureUnit::createNewton(status
));
1675 measureUnitValue
= MeasureUnit::getNewton();
1676 measureUnit
.adoptInstead(MeasureUnit::createPoundForce(status
));
1677 measureUnitValue
= MeasureUnit::getPoundForce();
1678 measureUnit
.adoptInstead(MeasureUnit::createGigahertz(status
));
1679 measureUnitValue
= MeasureUnit::getGigahertz();
1680 measureUnit
.adoptInstead(MeasureUnit::createHertz(status
));
1681 measureUnitValue
= MeasureUnit::getHertz();
1682 measureUnit
.adoptInstead(MeasureUnit::createKilohertz(status
));
1683 measureUnitValue
= MeasureUnit::getKilohertz();
1684 measureUnit
.adoptInstead(MeasureUnit::createMegahertz(status
));
1685 measureUnitValue
= MeasureUnit::getMegahertz();
1686 measureUnit
.adoptInstead(MeasureUnit::createDotPerCentimeter(status
));
1687 measureUnitValue
= MeasureUnit::getDotPerCentimeter();
1688 measureUnit
.adoptInstead(MeasureUnit::createDotPerInch(status
));
1689 measureUnitValue
= MeasureUnit::getDotPerInch();
1690 measureUnit
.adoptInstead(MeasureUnit::createEm(status
));
1691 measureUnitValue
= MeasureUnit::getEm();
1692 measureUnit
.adoptInstead(MeasureUnit::createMegapixel(status
));
1693 measureUnitValue
= MeasureUnit::getMegapixel();
1694 measureUnit
.adoptInstead(MeasureUnit::createPixel(status
));
1695 measureUnitValue
= MeasureUnit::getPixel();
1696 measureUnit
.adoptInstead(MeasureUnit::createPixelPerCentimeter(status
));
1697 measureUnitValue
= MeasureUnit::getPixelPerCentimeter();
1698 measureUnit
.adoptInstead(MeasureUnit::createPixelPerInch(status
));
1699 measureUnitValue
= MeasureUnit::getPixelPerInch();
1700 measureUnit
.adoptInstead(MeasureUnit::createAstronomicalUnit(status
));
1701 measureUnitValue
= MeasureUnit::getAstronomicalUnit();
1702 measureUnit
.adoptInstead(MeasureUnit::createCentimeter(status
));
1703 measureUnitValue
= MeasureUnit::getCentimeter();
1704 measureUnit
.adoptInstead(MeasureUnit::createDecimeter(status
));
1705 measureUnitValue
= MeasureUnit::getDecimeter();
1706 measureUnit
.adoptInstead(MeasureUnit::createFathom(status
));
1707 measureUnitValue
= MeasureUnit::getFathom();
1708 measureUnit
.adoptInstead(MeasureUnit::createFoot(status
));
1709 measureUnitValue
= MeasureUnit::getFoot();
1710 measureUnit
.adoptInstead(MeasureUnit::createFurlong(status
));
1711 measureUnitValue
= MeasureUnit::getFurlong();
1712 measureUnit
.adoptInstead(MeasureUnit::createInch(status
));
1713 measureUnitValue
= MeasureUnit::getInch();
1714 measureUnit
.adoptInstead(MeasureUnit::createKilometer(status
));
1715 measureUnitValue
= MeasureUnit::getKilometer();
1716 measureUnit
.adoptInstead(MeasureUnit::createLightYear(status
));
1717 measureUnitValue
= MeasureUnit::getLightYear();
1718 measureUnit
.adoptInstead(MeasureUnit::createMeter(status
));
1719 measureUnitValue
= MeasureUnit::getMeter();
1720 measureUnit
.adoptInstead(MeasureUnit::createMicrometer(status
));
1721 measureUnitValue
= MeasureUnit::getMicrometer();
1722 measureUnit
.adoptInstead(MeasureUnit::createMile(status
));
1723 measureUnitValue
= MeasureUnit::getMile();
1724 measureUnit
.adoptInstead(MeasureUnit::createMileScandinavian(status
));
1725 measureUnitValue
= MeasureUnit::getMileScandinavian();
1726 measureUnit
.adoptInstead(MeasureUnit::createMillimeter(status
));
1727 measureUnitValue
= MeasureUnit::getMillimeter();
1728 measureUnit
.adoptInstead(MeasureUnit::createNanometer(status
));
1729 measureUnitValue
= MeasureUnit::getNanometer();
1730 measureUnit
.adoptInstead(MeasureUnit::createNauticalMile(status
));
1731 measureUnitValue
= MeasureUnit::getNauticalMile();
1732 measureUnit
.adoptInstead(MeasureUnit::createParsec(status
));
1733 measureUnitValue
= MeasureUnit::getParsec();
1734 measureUnit
.adoptInstead(MeasureUnit::createPicometer(status
));
1735 measureUnitValue
= MeasureUnit::getPicometer();
1736 measureUnit
.adoptInstead(MeasureUnit::createPoint(status
));
1737 measureUnitValue
= MeasureUnit::getPoint();
1738 measureUnit
.adoptInstead(MeasureUnit::createSolarRadius(status
));
1739 measureUnitValue
= MeasureUnit::getSolarRadius();
1740 measureUnit
.adoptInstead(MeasureUnit::createYard(status
));
1741 measureUnitValue
= MeasureUnit::getYard();
1742 measureUnit
.adoptInstead(MeasureUnit::createLux(status
));
1743 measureUnitValue
= MeasureUnit::getLux();
1744 measureUnit
.adoptInstead(MeasureUnit::createSolarLuminosity(status
));
1745 measureUnitValue
= MeasureUnit::getSolarLuminosity();
1746 measureUnit
.adoptInstead(MeasureUnit::createCarat(status
));
1747 measureUnitValue
= MeasureUnit::getCarat();
1748 measureUnit
.adoptInstead(MeasureUnit::createDalton(status
));
1749 measureUnitValue
= MeasureUnit::getDalton();
1750 measureUnit
.adoptInstead(MeasureUnit::createEarthMass(status
));
1751 measureUnitValue
= MeasureUnit::getEarthMass();
1752 measureUnit
.adoptInstead(MeasureUnit::createGram(status
));
1753 measureUnitValue
= MeasureUnit::getGram();
1754 measureUnit
.adoptInstead(MeasureUnit::createKilogram(status
));
1755 measureUnitValue
= MeasureUnit::getKilogram();
1756 measureUnit
.adoptInstead(MeasureUnit::createMetricTon(status
));
1757 measureUnitValue
= MeasureUnit::getMetricTon();
1758 measureUnit
.adoptInstead(MeasureUnit::createMicrogram(status
));
1759 measureUnitValue
= MeasureUnit::getMicrogram();
1760 measureUnit
.adoptInstead(MeasureUnit::createMilligram(status
));
1761 measureUnitValue
= MeasureUnit::getMilligram();
1762 measureUnit
.adoptInstead(MeasureUnit::createOunce(status
));
1763 measureUnitValue
= MeasureUnit::getOunce();
1764 measureUnit
.adoptInstead(MeasureUnit::createOunceTroy(status
));
1765 measureUnitValue
= MeasureUnit::getOunceTroy();
1766 measureUnit
.adoptInstead(MeasureUnit::createPound(status
));
1767 measureUnitValue
= MeasureUnit::getPound();
1768 measureUnit
.adoptInstead(MeasureUnit::createSolarMass(status
));
1769 measureUnitValue
= MeasureUnit::getSolarMass();
1770 measureUnit
.adoptInstead(MeasureUnit::createStone(status
));
1771 measureUnitValue
= MeasureUnit::getStone();
1772 measureUnit
.adoptInstead(MeasureUnit::createTon(status
));
1773 measureUnitValue
= MeasureUnit::getTon();
1774 measureUnit
.adoptInstead(MeasureUnit::createGigawatt(status
));
1775 measureUnitValue
= MeasureUnit::getGigawatt();
1776 measureUnit
.adoptInstead(MeasureUnit::createHorsepower(status
));
1777 measureUnitValue
= MeasureUnit::getHorsepower();
1778 measureUnit
.adoptInstead(MeasureUnit::createKilowatt(status
));
1779 measureUnitValue
= MeasureUnit::getKilowatt();
1780 measureUnit
.adoptInstead(MeasureUnit::createMegawatt(status
));
1781 measureUnitValue
= MeasureUnit::getMegawatt();
1782 measureUnit
.adoptInstead(MeasureUnit::createMilliwatt(status
));
1783 measureUnitValue
= MeasureUnit::getMilliwatt();
1784 measureUnit
.adoptInstead(MeasureUnit::createWatt(status
));
1785 measureUnitValue
= MeasureUnit::getWatt();
1786 measureUnit
.adoptInstead(MeasureUnit::createAtmosphere(status
));
1787 measureUnitValue
= MeasureUnit::getAtmosphere();
1788 measureUnit
.adoptInstead(MeasureUnit::createBar(status
));
1789 measureUnitValue
= MeasureUnit::getBar();
1790 measureUnit
.adoptInstead(MeasureUnit::createHectopascal(status
));
1791 measureUnitValue
= MeasureUnit::getHectopascal();
1792 measureUnit
.adoptInstead(MeasureUnit::createInchHg(status
));
1793 measureUnitValue
= MeasureUnit::getInchHg();
1794 measureUnit
.adoptInstead(MeasureUnit::createKilopascal(status
));
1795 measureUnitValue
= MeasureUnit::getKilopascal();
1796 measureUnit
.adoptInstead(MeasureUnit::createMegapascal(status
));
1797 measureUnitValue
= MeasureUnit::getMegapascal();
1798 measureUnit
.adoptInstead(MeasureUnit::createMillibar(status
));
1799 measureUnitValue
= MeasureUnit::getMillibar();
1800 measureUnit
.adoptInstead(MeasureUnit::createMillimeterOfMercury(status
));
1801 measureUnitValue
= MeasureUnit::getMillimeterOfMercury();
1802 measureUnit
.adoptInstead(MeasureUnit::createPascal(status
));
1803 measureUnitValue
= MeasureUnit::getPascal();
1804 measureUnit
.adoptInstead(MeasureUnit::createPoundPerSquareInch(status
));
1805 measureUnitValue
= MeasureUnit::getPoundPerSquareInch();
1806 measureUnit
.adoptInstead(MeasureUnit::createKilometerPerHour(status
));
1807 measureUnitValue
= MeasureUnit::getKilometerPerHour();
1808 measureUnit
.adoptInstead(MeasureUnit::createKnot(status
));
1809 measureUnitValue
= MeasureUnit::getKnot();
1810 measureUnit
.adoptInstead(MeasureUnit::createMeterPerSecond(status
));
1811 measureUnitValue
= MeasureUnit::getMeterPerSecond();
1812 measureUnit
.adoptInstead(MeasureUnit::createMilePerHour(status
));
1813 measureUnitValue
= MeasureUnit::getMilePerHour();
1814 measureUnit
.adoptInstead(MeasureUnit::createCelsius(status
));
1815 measureUnitValue
= MeasureUnit::getCelsius();
1816 measureUnit
.adoptInstead(MeasureUnit::createFahrenheit(status
));
1817 measureUnitValue
= MeasureUnit::getFahrenheit();
1818 measureUnit
.adoptInstead(MeasureUnit::createGenericTemperature(status
));
1819 measureUnitValue
= MeasureUnit::getGenericTemperature();
1820 measureUnit
.adoptInstead(MeasureUnit::createKelvin(status
));
1821 measureUnitValue
= MeasureUnit::getKelvin();
1822 measureUnit
.adoptInstead(MeasureUnit::createNewtonMeter(status
));
1823 measureUnitValue
= MeasureUnit::getNewtonMeter();
1824 measureUnit
.adoptInstead(MeasureUnit::createPoundFoot(status
));
1825 measureUnitValue
= MeasureUnit::getPoundFoot();
1826 measureUnit
.adoptInstead(MeasureUnit::createAcreFoot(status
));
1827 measureUnitValue
= MeasureUnit::getAcreFoot();
1828 measureUnit
.adoptInstead(MeasureUnit::createBarrel(status
));
1829 measureUnitValue
= MeasureUnit::getBarrel();
1830 measureUnit
.adoptInstead(MeasureUnit::createBushel(status
));
1831 measureUnitValue
= MeasureUnit::getBushel();
1832 measureUnit
.adoptInstead(MeasureUnit::createCentiliter(status
));
1833 measureUnitValue
= MeasureUnit::getCentiliter();
1834 measureUnit
.adoptInstead(MeasureUnit::createCubicCentimeter(status
));
1835 measureUnitValue
= MeasureUnit::getCubicCentimeter();
1836 measureUnit
.adoptInstead(MeasureUnit::createCubicFoot(status
));
1837 measureUnitValue
= MeasureUnit::getCubicFoot();
1838 measureUnit
.adoptInstead(MeasureUnit::createCubicInch(status
));
1839 measureUnitValue
= MeasureUnit::getCubicInch();
1840 measureUnit
.adoptInstead(MeasureUnit::createCubicKilometer(status
));
1841 measureUnitValue
= MeasureUnit::getCubicKilometer();
1842 measureUnit
.adoptInstead(MeasureUnit::createCubicMeter(status
));
1843 measureUnitValue
= MeasureUnit::getCubicMeter();
1844 measureUnit
.adoptInstead(MeasureUnit::createCubicMile(status
));
1845 measureUnitValue
= MeasureUnit::getCubicMile();
1846 measureUnit
.adoptInstead(MeasureUnit::createCubicYard(status
));
1847 measureUnitValue
= MeasureUnit::getCubicYard();
1848 measureUnit
.adoptInstead(MeasureUnit::createCup(status
));
1849 measureUnitValue
= MeasureUnit::getCup();
1850 measureUnit
.adoptInstead(MeasureUnit::createCupMetric(status
));
1851 measureUnitValue
= MeasureUnit::getCupMetric();
1852 measureUnit
.adoptInstead(MeasureUnit::createDeciliter(status
));
1853 measureUnitValue
= MeasureUnit::getDeciliter();
1854 measureUnit
.adoptInstead(MeasureUnit::createFluidOunce(status
));
1855 measureUnitValue
= MeasureUnit::getFluidOunce();
1856 measureUnit
.adoptInstead(MeasureUnit::createFluidOunceImperial(status
));
1857 measureUnitValue
= MeasureUnit::getFluidOunceImperial();
1858 measureUnit
.adoptInstead(MeasureUnit::createGallon(status
));
1859 measureUnitValue
= MeasureUnit::getGallon();
1860 measureUnit
.adoptInstead(MeasureUnit::createGallonImperial(status
));
1861 measureUnitValue
= MeasureUnit::getGallonImperial();
1862 measureUnit
.adoptInstead(MeasureUnit::createHectoliter(status
));
1863 measureUnitValue
= MeasureUnit::getHectoliter();
1864 measureUnit
.adoptInstead(MeasureUnit::createLiter(status
));
1865 measureUnitValue
= MeasureUnit::getLiter();
1866 measureUnit
.adoptInstead(MeasureUnit::createMegaliter(status
));
1867 measureUnitValue
= MeasureUnit::getMegaliter();
1868 measureUnit
.adoptInstead(MeasureUnit::createMilliliter(status
));
1869 measureUnitValue
= MeasureUnit::getMilliliter();
1870 measureUnit
.adoptInstead(MeasureUnit::createPint(status
));
1871 measureUnitValue
= MeasureUnit::getPint();
1872 measureUnit
.adoptInstead(MeasureUnit::createPintMetric(status
));
1873 measureUnitValue
= MeasureUnit::getPintMetric();
1874 measureUnit
.adoptInstead(MeasureUnit::createQuart(status
));
1875 measureUnitValue
= MeasureUnit::getQuart();
1876 measureUnit
.adoptInstead(MeasureUnit::createTablespoon(status
));
1877 measureUnitValue
= MeasureUnit::getTablespoon();
1878 measureUnit
.adoptInstead(MeasureUnit::createTeaspoon(status
));
1879 measureUnitValue
= MeasureUnit::getTeaspoon();
1880 assertSuccess("", status
);
1883 void MeasureFormatTest::TestBasic() {
1884 UErrorCode status
= U_ZERO_ERROR
;
1885 MeasureUnit
*ptr1
= MeasureUnit::createArcMinute(status
);
1886 MeasureUnit
*ptr2
= MeasureUnit::createArcMinute(status
);
1887 if (!(*ptr1
== *ptr2
)) {
1888 errln("Expect == to work.");
1890 if (*ptr1
!= *ptr2
) {
1891 errln("Expect != to work.");
1893 MeasureUnit
*ptr3
= MeasureUnit::createMeter(status
);
1894 if (*ptr1
== *ptr3
) {
1895 errln("Expect == to work.");
1897 if (!(*ptr1
!= *ptr3
)) {
1898 errln("Expect != to work.");
1900 MeasureUnit
*ptr4
= ptr1
->clone();
1901 if (*ptr1
!= *ptr4
) {
1902 errln("Expect clone to work.");
1906 if (*ptr1
!= stack
) {
1907 errln("Expect assignment to work.");
1916 void MeasureFormatTest::TestGetAvailable() {
1917 MeasureUnit
*units
= NULL
;
1918 UErrorCode status
= U_ZERO_ERROR
;
1919 int32_t totalCount
= MeasureUnit::getAvailable(units
, 0, status
);
1920 while (status
== U_BUFFER_OVERFLOW_ERROR
) {
1921 status
= U_ZERO_ERROR
;
1923 units
= new MeasureUnit
[totalCount
];
1924 totalCount
= MeasureUnit::getAvailable(units
, totalCount
, status
);
1926 if (U_FAILURE(status
)) {
1927 dataerrln("Failure creating format object - %s", u_errorName(status
));
1931 if (totalCount
< 200) {
1932 errln("Expect at least 200 measure units including currencies.");
1935 StringEnumeration
*types
= MeasureUnit::getAvailableTypes(status
);
1936 if (U_FAILURE(status
)) {
1937 dataerrln("Failure getting types - %s", u_errorName(status
));
1941 if (types
->count(status
) < 10) {
1942 errln("Expect at least 10 distinct unit types.");
1945 int32_t unitCapacity
= 0;
1946 int32_t unitCountSum
= 0;
1948 const char* type
= types
->next(NULL
, status
);
1950 type
= types
->next(NULL
, status
)) {
1951 int32_t unitCount
= MeasureUnit::getAvailable(type
, units
, unitCapacity
, status
);
1952 while (status
== U_BUFFER_OVERFLOW_ERROR
) {
1953 status
= U_ZERO_ERROR
;
1955 units
= new MeasureUnit
[unitCount
];
1956 unitCapacity
= unitCount
;
1957 unitCount
= MeasureUnit::getAvailable(type
, units
, unitCapacity
, status
);
1959 if (U_FAILURE(status
)) {
1960 dataerrln("Failure getting units - %s", u_errorName(status
));
1965 if (unitCount
< 1) {
1966 errln("Expect at least one unit count per type.");
1968 unitCountSum
+= unitCount
;
1970 if (unitCountSum
!= totalCount
) {
1971 errln("Expected total unit count to equal sum of unit counts by type.");
1977 void MeasureFormatTest::TestExamplesInDocs() {
1978 UErrorCode status
= U_ZERO_ERROR
;
1979 MeasureFormat
fmtFr(Locale::getFrench(), UMEASFMT_WIDTH_SHORT
, status
);
1980 MeasureFormat
fmtFrFull(
1981 Locale::getFrench(), UMEASFMT_WIDTH_WIDE
, status
);
1982 MeasureFormat
fmtFrNarrow(
1983 Locale::getFrench(), UMEASFMT_WIDTH_NARROW
, status
);
1984 MeasureFormat
fmtEn(Locale::getUS(), UMEASFMT_WIDTH_WIDE
, status
);
1985 if (!assertSuccess("Error creating formatters", status
)) {
1988 Measure
measureC((double)23, MeasureUnit::createCelsius(status
), status
);
1989 Measure
measureF((double)70, MeasureUnit::createFahrenheit(status
), status
);
1990 Measure feetAndInches
[] = {
1991 Measure((double)70, MeasureUnit::createFoot(status
), status
),
1992 Measure((double)5.3, MeasureUnit::createInch(status
), status
)};
1993 Measure footAndInch
[] = {
1994 Measure((double)1, MeasureUnit::createFoot(status
), status
),
1995 Measure((double)1, MeasureUnit::createInch(status
), status
)};
1996 Measure inchAndFeet
[] = {
1997 Measure((double)1, MeasureUnit::createInch(status
), status
),
1998 Measure((double)2, MeasureUnit::createFoot(status
), status
)};
1999 if (!assertSuccess("Error creating measurements.", status
)) {
2007 "23\\u202F\\u00B0C");
2008 verifyFormatWithPrefix(
2014 "Prefix: 23\\u202F\\u00B0C");
2020 "70\\u202F\\u00B0F");
2025 UPRV_LENGTHOF(feetAndInches
),
2026 "70 pieds et 5,3\\u00A0pouces");
2027 verifyFormatWithPrefix(
2032 UPRV_LENGTHOF(feetAndInches
),
2033 "Prefix: 70 pieds et 5,3\\u00A0pouces");
2038 UPRV_LENGTHOF(footAndInch
),
2039 "1\\u00A0pied et 1\\u00A0pouce");
2041 "Foot and inch narrow",
2044 UPRV_LENGTHOF(footAndInch
),
2045 "1\\u2032 1\\u2033");
2050 UPRV_LENGTHOF(inchAndFeet
),
2054 void MeasureFormatTest::TestFormatPeriodEn() {
2055 UErrorCode status
= U_ZERO_ERROR
;
2056 Measure t_1y
[] = {Measure((double)1, MeasureUnit::createYear(status
), status
)};
2057 Measure t_5M
[] = {Measure((double)5, MeasureUnit::createMonth(status
), status
)};
2058 Measure t_4d
[] = {Measure((double)4, MeasureUnit::createDay(status
), status
)};
2059 Measure t_2h
[] = {Measure((double)2, MeasureUnit::createHour(status
), status
)};
2060 Measure t_19m
[] = {Measure((double)19, MeasureUnit::createMinute(status
), status
)};
2061 Measure t_1h_23_5s
[] = {
2062 Measure((double)1.0, MeasureUnit::createHour(status
), status
),
2063 Measure((double)23.5, MeasureUnit::createSecond(status
), status
)
2065 Measure t_1h_23_5m
[] = {
2066 Measure((double)1.0, MeasureUnit::createHour(status
), status
),
2067 Measure((double)23.5, MeasureUnit::createMinute(status
), status
)
2069 Measure t_1h_0m_23s
[] = {
2072 TimeUnit::createInstance(
2073 TimeUnit::UTIMEUNIT_HOUR
, status
),
2077 TimeUnit::createInstance(
2078 TimeUnit::UTIMEUNIT_MINUTE
, status
),
2082 TimeUnit::createInstance(
2083 TimeUnit::UTIMEUNIT_SECOND
, status
),
2086 Measure t_2y_5M_3w_4d
[] = {
2087 Measure(2.0, MeasureUnit::createYear(status
), status
),
2088 Measure(5.0, MeasureUnit::createMonth(status
), status
),
2089 Measure(3.0, MeasureUnit::createWeek(status
), status
),
2090 Measure(4.0, MeasureUnit::createDay(status
), status
)
2092 Measure t_1m_59_9996s
[] = {
2093 Measure(1.0, MeasureUnit::createMinute(status
), status
),
2094 Measure(59.9996, MeasureUnit::createSecond(status
), status
)
2096 Measure t_5h_17m
[] = {
2097 Measure(5.0, MeasureUnit::createHour(status
), status
),
2098 Measure(17.0, MeasureUnit::createMinute(status
), status
)
2100 Measure t_neg5h_17m
[] = {
2101 Measure(-5.0, MeasureUnit::createHour(status
), status
),
2102 Measure(17.0, MeasureUnit::createMinute(status
), status
)
2104 Measure t_19m_28s
[] = {
2105 Measure(19.0, MeasureUnit::createMinute(status
), status
),
2106 Measure(28.0, MeasureUnit::createSecond(status
), status
)
2108 Measure t_0h_0m_9s
[] = {
2109 Measure(0.0, MeasureUnit::createHour(status
), status
),
2110 Measure(0.0, MeasureUnit::createMinute(status
), status
),
2111 Measure(9.0, MeasureUnit::createSecond(status
), status
)
2113 Measure t_0h_0m_17s
[] = {
2114 Measure(0.0, MeasureUnit::createHour(status
), status
),
2115 Measure(0.0, MeasureUnit::createMinute(status
), status
),
2116 Measure(17.0, MeasureUnit::createSecond(status
), status
)
2118 Measure t_6h_56_92m
[] = {
2119 Measure(6.0, MeasureUnit::createHour(status
), status
),
2120 Measure(56.92, MeasureUnit::createMinute(status
), status
)
2122 Measure t_3h_4s_5m
[] = {
2123 Measure(3.0, MeasureUnit::createHour(status
), status
),
2124 Measure(4.0, MeasureUnit::createSecond(status
), status
),
2125 Measure(5.0, MeasureUnit::createMinute(status
), status
)
2127 Measure t_6_7h_56_92m
[] = {
2128 Measure(6.7, MeasureUnit::createHour(status
), status
),
2129 Measure(56.92, MeasureUnit::createMinute(status
), status
)
2132 Measure t_3h_5h
[] = {
2133 Measure(3.0, MeasureUnit::createHour(status
), status
),
2134 Measure(5.0, MeasureUnit::createHour(status
), status
)
2137 if (!assertSuccess("Error creating Measure objects", status
)) {
2141 ExpectedResult fullData
[] = {
2142 {t_1m_59_9996s
, UPRV_LENGTHOF(t_1m_59_9996s
), "1 minute, 59.9996 seconds"},
2143 {t_19m
, UPRV_LENGTHOF(t_19m
), "19 minutes"},
2144 {t_1h_23_5s
, UPRV_LENGTHOF(t_1h_23_5s
), "1 hour, 23.5 seconds"},
2145 {t_1h_23_5m
, UPRV_LENGTHOF(t_1h_23_5m
), "1 hour, 23.5 minutes"},
2146 {t_1h_0m_23s
, UPRV_LENGTHOF(t_1h_0m_23s
), "1 hour, 0 minutes, 23 seconds"},
2147 {t_2y_5M_3w_4d
, UPRV_LENGTHOF(t_2y_5M_3w_4d
), "2 years, 5 months, 3 weeks, 4 days"}};
2149 ExpectedResult abbrevData
[] = {
2150 {t_1m_59_9996s
, UPRV_LENGTHOF(t_1m_59_9996s
), "1 min, 59.9996 sec"},
2151 {t_19m
, UPRV_LENGTHOF(t_19m
), "19 min"},
2152 {t_1h_23_5s
, UPRV_LENGTHOF(t_1h_23_5s
), "1 hr, 23.5 sec"},
2153 {t_1h_23_5m
, UPRV_LENGTHOF(t_1h_23_5m
), "1 hr, 23.5 min"},
2154 {t_1h_0m_23s
, UPRV_LENGTHOF(t_1h_0m_23s
), "1 hr, 0 min, 23 sec"},
2155 {t_2y_5M_3w_4d
, UPRV_LENGTHOF(t_2y_5M_3w_4d
), "2 yrs, 5 mths, 3 wks, 4 days"}};
2157 ExpectedResult narrowData
[] = {
2158 {t_1m_59_9996s
, UPRV_LENGTHOF(t_1m_59_9996s
), "1m 59.9996s"},
2159 {t_19m
, UPRV_LENGTHOF(t_19m
), "19m"},
2160 {t_1h_23_5s
, UPRV_LENGTHOF(t_1h_23_5s
), "1h 23.5s"},
2161 {t_1h_23_5m
, UPRV_LENGTHOF(t_1h_23_5m
), "1h 23.5m"},
2162 {t_1h_0m_23s
, UPRV_LENGTHOF(t_1h_0m_23s
), "1h 0m 23s"},
2163 {t_2y_5M_3w_4d
, UPRV_LENGTHOF(t_2y_5M_3w_4d
), "2y 5mo 3w 4d"}};
2165 ExpectedResult numericData
[] = {
2166 {t_1m_59_9996s
, UPRV_LENGTHOF(t_1m_59_9996s
), "1:59.9996"},
2167 {t_19m
, UPRV_LENGTHOF(t_19m
), "19m"},
2168 {t_1h_23_5s
, UPRV_LENGTHOF(t_1h_23_5s
), "1:00:23.5"},
2169 {t_1h_23_5m
, UPRV_LENGTHOF(t_1h_23_5m
), "1:23.5"},
2170 {t_1h_0m_23s
, UPRV_LENGTHOF(t_1h_0m_23s
), "1:00:23"},
2171 {t_5h_17m
, UPRV_LENGTHOF(t_5h_17m
), "5:17"},
2172 {t_neg5h_17m
, UPRV_LENGTHOF(t_neg5h_17m
), "-5h 17m"},
2173 {t_19m_28s
, UPRV_LENGTHOF(t_19m_28s
), "19:28"},
2174 {t_2y_5M_3w_4d
, UPRV_LENGTHOF(t_2y_5M_3w_4d
), "2y 5mo 3w 4d"},
2175 {t_0h_0m_9s
, UPRV_LENGTHOF(t_0h_0m_9s
), "0:00:09"},
2176 {t_6h_56_92m
, UPRV_LENGTHOF(t_6h_56_92m
), "6:56.92"},
2177 {t_6_7h_56_92m
, UPRV_LENGTHOF(t_6_7h_56_92m
), "6:56.92"},
2178 {t_3h_4s_5m
, UPRV_LENGTHOF(t_3h_4s_5m
), "3h 4s 5m"},
2179 {t_3h_5h
, UPRV_LENGTHOF(t_3h_5h
), "3h 5h"}};
2181 ExpectedResult fullDataDe
[] = {
2182 {t_1m_59_9996s
, UPRV_LENGTHOF(t_1m_59_9996s
), "1 Minute und 59,9996 Sekunden"},
2183 {t_19m
, UPRV_LENGTHOF(t_19m
), "19 Minuten"},
2184 {t_1h_23_5s
, UPRV_LENGTHOF(t_1h_23_5s
), "1 Stunde und 23,5 Sekunden"},
2185 {t_1h_23_5m
, UPRV_LENGTHOF(t_1h_23_5m
), "1 Stunde und 23,5 Minuten"},
2186 {t_1h_0m_23s
, UPRV_LENGTHOF(t_1h_0m_23s
), "1 Stunde, 0 Minuten und 23 Sekunden"},
2187 {t_2y_5M_3w_4d
, UPRV_LENGTHOF(t_2y_5M_3w_4d
), "2 Jahre, 5 Monate, 3 Wochen und 4 Tage"}};
2189 ExpectedResult numericDataDe
[] = {
2190 {t_1m_59_9996s
, UPRV_LENGTHOF(t_1m_59_9996s
), "1:59,9996"},
2191 {t_19m
, UPRV_LENGTHOF(t_19m
), "19min"},
2192 {t_1h_23_5s
, UPRV_LENGTHOF(t_1h_23_5s
), "1:00:23,5"},
2193 {t_1h_23_5m
, UPRV_LENGTHOF(t_1h_23_5m
), "1:23,5"},
2194 {t_1h_0m_23s
, UPRV_LENGTHOF(t_1h_0m_23s
), "1:00:23"},
2195 {t_5h_17m
, UPRV_LENGTHOF(t_5h_17m
), "5:17"},
2196 {t_19m_28s
, UPRV_LENGTHOF(t_19m_28s
), "19:28"},
2197 {t_2y_5M_3w_4d
, UPRV_LENGTHOF(t_2y_5M_3w_4d
), "2J 5M 3W 4d"},
2198 {t_0h_0m_17s
, UPRV_LENGTHOF(t_0h_0m_17s
), "0:00:17"},
2199 {t_6h_56_92m
, UPRV_LENGTHOF(t_6h_56_92m
), "6:56,92"},
2200 {t_3h_5h
, UPRV_LENGTHOF(t_3h_5h
), "3h 5h"}};
2202 ExpectedResult numericDataBn
[] = {
2203 {t_1m_59_9996s
, UPRV_LENGTHOF(t_1m_59_9996s
), "\\u09E7:\\u09EB\\u09EF.\\u09EF\\u09EF\\u09EF\\u09EC"},
2204 {t_19m
, UPRV_LENGTHOF(t_19m
), "\\u09E7\\u09EF \\u09AE\\u09BF\\u0983"},
2205 {t_1h_23_5s
, UPRV_LENGTHOF(t_1h_23_5s
), "\\u09E7:\\u09E6\\u09E6:\\u09E8\\u09E9.\\u09EB"},
2206 {t_1h_0m_23s
, UPRV_LENGTHOF(t_1h_0m_23s
), "\\u09E7:\\u09E6\\u09E6:\\u09E8\\u09E9"},
2207 {t_1h_23_5m
, UPRV_LENGTHOF(t_1h_23_5m
), "\\u09E7:\\u09E8\\u09E9.\\u09EB"},
2208 {t_5h_17m
, UPRV_LENGTHOF(t_5h_17m
), "\\u09EB:\\u09E7\\u09ED"},
2209 {t_19m_28s
, UPRV_LENGTHOF(t_19m_28s
), "\\u09E7\\u09EF:\\u09E8\\u09EE"},
2210 {t_2y_5M_3w_4d
, UPRV_LENGTHOF(t_2y_5M_3w_4d
), "\\u09E8 \\u09AC\\u099B\\u09B0, \\u09EB \\u09AE\\u09BE\\u09B8, \\u09E9 \\u09B8\\u09AA\\u09CD\\u09A4\\u09BE\\u09B9, \\u09EA \\u09A6\\u09BF\\u09A8"},
2211 {t_0h_0m_17s
, UPRV_LENGTHOF(t_0h_0m_17s
), "\\u09E6:\\u09E6\\u09E6:\\u09E7\\u09ED"},
2212 {t_6h_56_92m
, UPRV_LENGTHOF(t_6h_56_92m
), "\\u09EC:\\u09EB\\u09EC.\\u09EF\\u09E8"},
2213 {t_3h_5h
, UPRV_LENGTHOF(t_3h_5h
), "\\u09E9 \\u0998\\u0983, \\u09EB \\u0998\\u0983"}};
2215 ExpectedResult numericDataBnLatn
[] = {
2216 {t_1m_59_9996s
, UPRV_LENGTHOF(t_1m_59_9996s
), "1:59.9996"},
2217 {t_19m
, UPRV_LENGTHOF(t_19m
), "19 \\u09AE\\u09BF\\u0983"},
2218 {t_1h_23_5s
, UPRV_LENGTHOF(t_1h_23_5s
), "1:00:23.5"},
2219 {t_1h_0m_23s
, UPRV_LENGTHOF(t_1h_0m_23s
), "1:00:23"},
2220 {t_1h_23_5m
, UPRV_LENGTHOF(t_1h_23_5m
), "1:23.5"},
2221 {t_5h_17m
, UPRV_LENGTHOF(t_5h_17m
), "5:17"},
2222 {t_19m_28s
, UPRV_LENGTHOF(t_19m_28s
), "19:28"},
2223 {t_2y_5M_3w_4d
, UPRV_LENGTHOF(t_2y_5M_3w_4d
), "2 \\u09AC\\u099B\\u09B0, 5 \\u09AE\\u09BE\\u09B8, 3 \\u09B8\\u09AA\\u09CD\\u09A4\\u09BE\\u09B9, 4 \\u09A6\\u09BF\\u09A8"},
2224 {t_0h_0m_17s
, UPRV_LENGTHOF(t_0h_0m_17s
), "0:00:17"},
2225 {t_6h_56_92m
, UPRV_LENGTHOF(t_6h_56_92m
), "6:56.92"},
2226 {t_3h_5h
, UPRV_LENGTHOF(t_3h_5h
), "3 \\u0998\\u0983, 5 \\u0998\\u0983"}};
2228 ExpectedResult fullDataSpellout
[] = {
2229 {t_1y
, UPRV_LENGTHOF(t_1y
), "one year"},
2230 {t_5M
, UPRV_LENGTHOF(t_5M
), "five months"},
2231 {t_4d
, UPRV_LENGTHOF(t_4d
), "four days"},
2232 {t_2h
, UPRV_LENGTHOF(t_2h
), "two hours"},
2233 {t_19m
, UPRV_LENGTHOF(t_19m
), "nineteen minutes"}};
2235 ExpectedResult fullDataSpelloutFr
[] = {
2236 {t_1y
, UPRV_LENGTHOF(t_1y
), "un\\u00A0an"},
2237 {t_5M
, UPRV_LENGTHOF(t_5M
), "cinq\\u00A0mois"},
2238 {t_4d
, UPRV_LENGTHOF(t_4d
), "quatre\\u00A0jours"},
2239 {t_2h
, UPRV_LENGTHOF(t_2h
), "deux\\u00A0heures"},
2240 {t_19m
, UPRV_LENGTHOF(t_19m
), "dix-neuf minutes"}};
2242 Locale
en(Locale::getEnglish());
2243 LocalPointer
<NumberFormat
> nf(NumberFormat::createInstance(en
, status
));
2244 if (U_FAILURE(status
)) {
2245 dataerrln("Error creating number format en object - %s", u_errorName(status
));
2248 nf
->setMaximumFractionDigits(4);
2249 MeasureFormat
mf(en
, UMEASFMT_WIDTH_WIDE
, nf
->clone(), status
);
2250 if (!assertSuccess("Error creating measure format en WIDE", status
)) {
2253 verifyFormat("en WIDE", mf
, fullData
, UPRV_LENGTHOF(fullData
));
2255 // exercise copy constructor
2257 MeasureFormat
mf2(mf
);
2258 verifyFormat("en WIDE copy", mf2
, fullData
, UPRV_LENGTHOF(fullData
));
2262 MeasureFormat
*mf3
= mf
.clone();
2263 verifyFormat("en WIDE copy", *mf3
, fullData
, UPRV_LENGTHOF(fullData
));
2266 mf
= MeasureFormat(en
, UMEASFMT_WIDTH_SHORT
, nf
->clone(), status
);
2267 if (!assertSuccess("Error creating measure format en SHORT", status
)) {
2270 verifyFormat("en SHORT", mf
, abbrevData
, UPRV_LENGTHOF(abbrevData
));
2271 mf
= MeasureFormat(en
, UMEASFMT_WIDTH_NARROW
, nf
->clone(), status
);
2272 if (!assertSuccess("Error creating measure format en NARROW", status
)) {
2275 verifyFormat("en NARROW", mf
, narrowData
, UPRV_LENGTHOF(narrowData
));
2276 mf
= MeasureFormat(en
, UMEASFMT_WIDTH_NUMERIC
, nf
->clone(), status
);
2277 if (!assertSuccess("Error creating measure format en NUMERIC", status
)) {
2280 verifyFormat("en NUMERIC", mf
, numericData
, UPRV_LENGTHOF(numericData
));
2282 Locale
de(Locale::getGerman());
2283 nf
.adoptInstead(NumberFormat::createInstance(de
, status
));
2284 if (!assertSuccess("Error creating number format de object", status
)) {
2287 nf
->setMaximumFractionDigits(4);
2288 mf
= MeasureFormat(de
, UMEASFMT_WIDTH_WIDE
, nf
->clone(), status
);
2289 if (!assertSuccess("Error creating measure format de WIDE", status
)) {
2292 verifyFormat("de WIDE", mf
, fullDataDe
, UPRV_LENGTHOF(fullDataDe
));
2293 mf
= MeasureFormat(de
, UMEASFMT_WIDTH_NUMERIC
, nf
->clone(), status
);
2294 if (!assertSuccess("Error creating measure format de NUMERIC", status
)) {
2297 verifyFormat("de NUMERIC", mf
, numericDataDe
, UPRV_LENGTHOF(numericDataDe
));
2299 Locale
bengali("bn");
2300 nf
.adoptInstead(NumberFormat::createInstance(bengali
, status
));
2301 if (!assertSuccess("Error creating number format de object", status
)) {
2304 nf
->setMaximumFractionDigits(4);
2305 mf
= MeasureFormat(bengali
, UMEASFMT_WIDTH_NUMERIC
, nf
->clone(), status
);
2306 if (!assertSuccess("Error creating measure format bn NUMERIC", status
)) {
2309 verifyFormat("bn NUMERIC", mf
, numericDataBn
, UPRV_LENGTHOF(numericDataBn
));
2311 Locale
bengaliLatin("bn-u-nu-latn");
2312 nf
.adoptInstead(NumberFormat::createInstance(bengaliLatin
, status
));
2313 if (!assertSuccess("Error creating number format de object", status
)) {
2316 nf
->setMaximumFractionDigits(4);
2317 mf
= MeasureFormat(bengaliLatin
, UMEASFMT_WIDTH_NUMERIC
, nf
->clone(), status
);
2318 if (!assertSuccess("Error creating measure format bn-u-nu-latn NUMERIC", status
)) {
2321 verifyFormat("bn-u-nu-latn NUMERIC", mf
, numericDataBnLatn
, UPRV_LENGTHOF(numericDataBnLatn
));
2323 status
= U_ZERO_ERROR
;
2324 LocalPointer
<RuleBasedNumberFormat
> rbnf(new RuleBasedNumberFormat(URBNF_SPELLOUT
, en
, status
));
2325 if (U_FAILURE(status
)) {
2326 dataerrln("Error creating rbnf en object - %s", u_errorName(status
));
2329 mf
= MeasureFormat(en
, UMEASFMT_WIDTH_WIDE
, rbnf
->clone(), status
);
2330 if (!assertSuccess("Error creating measure format en WIDE with rbnf", status
)) {
2333 verifyFormat("en WIDE rbnf", mf
, fullDataSpellout
, UPRV_LENGTHOF(fullDataSpellout
));
2335 Locale
fr(Locale::getFrench());
2336 LocalPointer
<RuleBasedNumberFormat
> rbnffr(new RuleBasedNumberFormat(URBNF_SPELLOUT
, fr
, status
));
2337 if (U_FAILURE(status
)) {
2338 dataerrln("Error creating rbnf fr object - %s", u_errorName(status
));
2341 mf
= MeasureFormat(fr
, UMEASFMT_WIDTH_WIDE
, rbnffr
->clone(), status
);
2342 if (!assertSuccess("Error creating measure format fr WIDE with rbnf", status
)) {
2345 verifyFormat("fr WIDE rbnf", mf
, fullDataSpelloutFr
, UPRV_LENGTHOF(fullDataSpellout
));
2348 void MeasureFormatTest::Test10219FractionalPlurals() {
2349 Locale
en(Locale::getEnglish());
2350 double values
[] = {1.588, 1.011};
2351 const char *expected
[2][3] = {
2352 {"1 minute", "1.5 minutes", "1.58 minutes"},
2353 {"1 minute", "1.0 minutes", "1.01 minutes"}
2355 UErrorCode status
= U_ZERO_ERROR
;
2356 for (int j
= 0; j
< UPRV_LENGTHOF(values
); j
++) {
2357 for (int i
= 0; i
< UPRV_LENGTHOF(expected
[j
]); i
++) {
2359 (DecimalFormat
*) NumberFormat::createInstance(en
, status
);
2360 if (U_FAILURE(status
)) {
2361 dataerrln("Error creating Number format - %s", u_errorName(status
));
2364 df
->setRoundingMode(DecimalFormat::kRoundDown
);
2365 df
->setMinimumFractionDigits(i
);
2366 df
->setMaximumFractionDigits(i
);
2367 MeasureFormat
mf(en
, UMEASFMT_WIDTH_WIDE
, df
, status
);
2368 if (!assertSuccess("Error creating Measure format", status
)) {
2371 Measure
measure(values
[j
], MeasureUnit::createMinute(status
), status
);
2372 if (!assertSuccess("Error creating Measure unit", status
)) {
2375 verifyFormat("Test10219", mf
, &measure
, 1, expected
[j
][i
]);
2380 static MeasureUnit
toMeasureUnit(MeasureUnit
*adopted
) {
2381 MeasureUnit
result(*adopted
);
2386 void MeasureFormatTest::TestGreek() {
2387 Locale locales
[] = {Locale("el_GR"), Locale("el")};
2388 UErrorCode status
= U_ZERO_ERROR
;
2389 MeasureUnit units
[] = {
2390 toMeasureUnit(MeasureUnit::createSecond(status
)),
2391 toMeasureUnit(MeasureUnit::createMinute(status
)),
2392 toMeasureUnit(MeasureUnit::createHour(status
)),
2393 toMeasureUnit(MeasureUnit::createDay(status
)),
2394 toMeasureUnit(MeasureUnit::createWeek(status
)),
2395 toMeasureUnit(MeasureUnit::createMonth(status
)),
2396 toMeasureUnit(MeasureUnit::createYear(status
))};
2397 if (!assertSuccess("Error creating Measure units", status
)) {
2400 UMeasureFormatWidth styles
[] = {
2401 UMEASFMT_WIDTH_WIDE
,
2402 UMEASFMT_WIDTH_SHORT
};
2403 int32_t numbers
[] = {1, 7};
2404 const char *expected
[] = {
2406 "1 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03BF",
2407 "1 \\u03BB\\u03B5\\u03C0\\u03C4\\u03CC",
2408 "1 \\u03CE\\u03C1\\u03B1",
2409 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
2410 "1 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B1",
2411 "1 \\u03BC\\u03AE\\u03BD\\u03B1\\u03C2",
2412 "1 \\u03AD\\u03C4\\u03BF\\u03C2",
2414 "1 \\u03B4\\u03B5\\u03C5\\u03C4.",
2415 "1 \\u03BB\\u03B5\\u03C0.",
2416 "1 \\u03CE\\u03C1\\u03B1",
2417 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
2418 "1 \\u03B5\\u03B2\\u03B4.",
2419 "1 \\u03BC\\u03AE\\u03BD.",
2420 "1 \\u03AD\\u03C4.", // year (one)
2422 "7 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03B1",
2423 "7 \\u03BB\\u03B5\\u03C0\\u03C4\\u03AC",
2424 "7 \\u03CE\\u03C1\\u03B5\\u03C2",
2425 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
2426 "7 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B5\\u03C2",
2427 "7 \\u03BC\\u03AE\\u03BD\\u03B5\\u03C2",
2428 "7 \\u03AD\\u03C4\\u03B7",
2430 "7 \\u03B4\\u03B5\\u03C5\\u03C4.",
2431 "7 \\u03BB\\u03B5\\u03C0.",
2432 "7 \\u03CE\\u03C1.", // hour (other)
2433 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
2434 "7 \\u03B5\\u03B2\\u03B4.",
2435 "7 \\u03BC\\u03AE\\u03BD.",
2436 "7 \\u03AD\\u03C4.", // year (other)
2439 "1 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03BF",
2440 "1 \\u03BB\\u03B5\\u03C0\\u03C4\\u03CC",
2441 "1 \\u03CE\\u03C1\\u03B1",
2442 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
2443 "1 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B1",
2444 "1 \\u03BC\\u03AE\\u03BD\\u03B1\\u03C2",
2445 "1 \\u03AD\\u03C4\\u03BF\\u03C2",
2447 "1 \\u03B4\\u03B5\\u03C5\\u03C4.",
2448 "1 \\u03BB\\u03B5\\u03C0.",
2449 "1 \\u03CE\\u03C1\\u03B1",
2450 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
2451 "1 \\u03B5\\u03B2\\u03B4.",
2452 "1 \\u03BC\\u03AE\\u03BD.",
2453 "1 \\u03AD\\u03C4.", // year (one)
2455 "7 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03B1",
2456 "7 \\u03BB\\u03B5\\u03C0\\u03C4\\u03AC",
2457 "7 \\u03CE\\u03C1\\u03B5\\u03C2",
2458 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
2459 "7 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B5\\u03C2",
2460 "7 \\u03BC\\u03AE\\u03BD\\u03B5\\u03C2",
2461 "7 \\u03AD\\u03C4\\u03B7",
2463 "7 \\u03B4\\u03B5\\u03C5\\u03C4.",
2464 "7 \\u03BB\\u03B5\\u03C0.",
2465 "7 \\u03CE\\u03C1.", // hour (other)
2466 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
2467 "7 \\u03B5\\u03B2\\u03B4.",
2468 "7 \\u03BC\\u03AE\\u03BD.",
2469 "7 \\u03AD\\u03C4."}; // year (other)
2471 int32_t counter
= 0;
2472 for (int32_t locIndex
= 0; locIndex
< UPRV_LENGTHOF(locales
); ++locIndex
) {
2473 for( int32_t numIndex
= 0; numIndex
< UPRV_LENGTHOF(numbers
); ++numIndex
) {
2474 for ( int32_t styleIndex
= 0; styleIndex
< UPRV_LENGTHOF(styles
); ++styleIndex
) {
2475 for ( int32_t unitIndex
= 0; unitIndex
< UPRV_LENGTHOF(units
); ++unitIndex
) {
2476 Measure
measure(numbers
[numIndex
], new MeasureUnit(units
[unitIndex
]), status
);
2477 if (!assertSuccess("Error creating Measure", status
)) {
2480 MeasureFormat
fmt(locales
[locIndex
], styles
[styleIndex
], status
);
2481 if (!assertSuccess("Error creating Measure format", status
)) {
2484 verifyFormat("TestGreek", fmt
, &measure
, 1, expected
[counter
]);
2492 void MeasureFormatTest::TestFormatSingleArg() {
2493 UErrorCode status
= U_ZERO_ERROR
;
2494 MeasureFormat
fmt("en", UMEASFMT_WIDTH_WIDE
, status
);
2495 if (!assertSuccess("Error creating formatter", status
)) {
2498 UnicodeString buffer
;
2499 FieldPosition
pos(FieldPosition::DONT_CARE
);
2501 new Measure(3.5, MeasureUnit::createFoot(status
), status
),
2505 if (!assertSuccess("Error formatting", status
)) {
2509 "TestFormatSingleArg",
2510 UnicodeString("3.5 feet"),
2514 void MeasureFormatTest::TestFormatMeasuresZeroArg() {
2515 UErrorCode status
= U_ZERO_ERROR
;
2516 MeasureFormat
fmt("en", UMEASFMT_WIDTH_WIDE
, status
);
2517 verifyFormat("TestFormatMeasuresZeroArg", fmt
, NULL
, 0, "");
2520 void MeasureFormatTest::TestSimplePer() {
2522 UErrorCode status
= U_ZERO_ERROR
;
2523 LocalPointer
<MeasureUnit
> second(MeasureUnit::createSecond(status
));
2524 LocalPointer
<MeasureUnit
> minute(MeasureUnit::createMinute(status
));
2525 LocalPointer
<MeasureUnit
> pound(MeasureUnit::createPound(status
));
2526 if (!assertSuccess("", status
)) {
2530 helperTestSimplePer(
2531 en
, UMEASFMT_WIDTH_WIDE
,
2532 1.0, *pound
, *second
, "1 pound per second");
2533 helperTestSimplePer(
2534 en
, UMEASFMT_WIDTH_WIDE
,
2535 2.0, *pound
, *second
, "2 pounds per second");
2536 helperTestSimplePer(
2537 en
, UMEASFMT_WIDTH_WIDE
,
2538 1.0, *pound
, *minute
, "1 pound per minute");
2539 helperTestSimplePer(
2540 en
, UMEASFMT_WIDTH_WIDE
,
2541 2.0, *pound
, *minute
, "2 pounds per minute");
2543 helperTestSimplePer(
2544 en
, UMEASFMT_WIDTH_SHORT
, 1.0, *pound
, *second
, "1 lb/s");
2545 helperTestSimplePer(
2546 en
, UMEASFMT_WIDTH_SHORT
, 2.0, *pound
, *second
, "2 lb/s");
2547 helperTestSimplePer(
2548 en
, UMEASFMT_WIDTH_SHORT
, 1.0, *pound
, *minute
, "1 lb/min");
2549 helperTestSimplePer(
2550 en
, UMEASFMT_WIDTH_SHORT
, 2.0, *pound
, *minute
, "2 lb/min");
2552 helperTestSimplePer(
2553 en
, UMEASFMT_WIDTH_NARROW
, 1.0, *pound
, *second
, "1#/s");
2554 helperTestSimplePer(
2555 en
, UMEASFMT_WIDTH_NARROW
, 2.0, *pound
, *second
, "2#/s");
2556 helperTestSimplePer(
2557 en
, UMEASFMT_WIDTH_NARROW
, 1.0, *pound
, *minute
, "1#/min");
2558 helperTestSimplePer(
2559 en
, UMEASFMT_WIDTH_NARROW
, 2.0, *pound
, *minute
, "2#/min");
2561 helperTestSimplePer(
2562 en
, UMEASFMT_WIDTH_SHORT
,
2563 23.3, *pound
, *second
, "23.3 lb/s",
2564 NumberFormat::kDecimalSeparatorField
,
2567 helperTestSimplePer(
2568 en
, UMEASFMT_WIDTH_SHORT
,
2569 23.3, *pound
, *second
, "23.3 lb/s",
2570 NumberFormat::kIntegerField
,
2573 helperTestSimplePer(
2574 en
, UMEASFMT_WIDTH_SHORT
,
2575 23.3, *pound
, *minute
, "23.3 lb/min",
2576 NumberFormat::kDecimalSeparatorField
,
2579 helperTestSimplePer(
2580 en
, UMEASFMT_WIDTH_SHORT
,
2581 23.3, *pound
, *minute
, "23.3 lb/min",
2582 NumberFormat::kIntegerField
,
2586 void MeasureFormatTest::TestNumeratorPlurals() {
2588 UErrorCode status
= U_ZERO_ERROR
;
2589 LocalPointer
<MeasureUnit
> second(MeasureUnit::createSecond(status
));
2590 LocalPointer
<MeasureUnit
> foot(MeasureUnit::createFoot(status
));
2591 if (!assertSuccess("", status
)) {
2595 helperTestSimplePer(
2597 UMEASFMT_WIDTH_WIDE
,
2598 1.0, *foot
, *second
, "1 stopa na sekund\\u0119");
2599 helperTestSimplePer(
2601 UMEASFMT_WIDTH_WIDE
,
2602 2.0, *foot
, *second
, "2 stopy na sekund\\u0119");
2603 helperTestSimplePer(
2605 UMEASFMT_WIDTH_WIDE
,
2606 5.0, *foot
, *second
, "5 st\\u00f3p na sekund\\u0119");
2607 helperTestSimplePer(
2608 pl
, UMEASFMT_WIDTH_WIDE
,
2609 1.5, *foot
, *second
, "1,5 stopy na sekund\\u0119");
2612 void MeasureFormatTest::helperTestSimplePer(
2613 const Locale
&locale
,
2614 UMeasureFormatWidth width
,
2616 const MeasureUnit
&unit
,
2617 const MeasureUnit
&perUnit
,
2618 const char *expected
) {
2619 helperTestSimplePer(
2626 FieldPosition::DONT_CARE
,
2631 void MeasureFormatTest::helperTestSimplePer(
2632 const Locale
&locale
,
2633 UMeasureFormatWidth width
,
2635 const MeasureUnit
&unit
,
2636 const MeasureUnit
&perUnit
,
2637 const char *expected
,
2639 int32_t expected_start
,
2640 int32_t expected_end
) {
2641 UErrorCode status
= U_ZERO_ERROR
;
2642 FieldPosition
pos(field
);
2643 MeasureFormat
fmt(locale
, width
, status
);
2644 if (!assertSuccess("Error creating format object", status
)) {
2647 Measure
measure(value
, unit
.clone(), status
);
2648 if (!assertSuccess("Error creating measure object", status
)) {
2651 UnicodeString
prefix("prefix: ");
2652 UnicodeString
buffer(prefix
);
2653 fmt
.formatMeasurePerUnit(
2659 if (!assertSuccess("Error formatting measures with per", status
)) {
2662 UnicodeString
uexpected(expected
);
2663 uexpected
= prefix
+ uexpected
;
2666 uexpected
.unescape(),
2668 if (field
!= FieldPosition::DONT_CARE
) {
2670 "Start", expected_start
, pos
.getBeginIndex() - prefix
.length());
2672 "End", expected_end
, pos
.getEndIndex() - prefix
.length());
2676 void MeasureFormatTest::TestMultiples() {
2679 helperTestMultiples(en
, UMEASFMT_WIDTH_WIDE
, "2 miles, 1 foot, 2.3 inches");
2680 helperTestMultiples(en
, UMEASFMT_WIDTH_SHORT
, "2 mi, 1 ft, 2.3 in");
2681 helperTestMultiples(en
, UMEASFMT_WIDTH_NARROW
, "2mi 1\\u2032 2.3\\u2033");
2682 helperTestMultiples(ru
, UMEASFMT_WIDTH_WIDE
, "2 \\u043C\\u0438\\u043B\\u0438, 1 \\u0444\\u0443\\u0442, 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430");
2683 helperTestMultiples(ru
, UMEASFMT_WIDTH_SHORT
, "2 \\u043C\\u0438, 1 \\u0444\\u0442, 2,3 \\u0434\\u044E\\u0439\\u043C.");
2684 helperTestMultiples(ru
, UMEASFMT_WIDTH_NARROW
, "2 \\u043C\\u0438 1\\u2032 2,3\\u2033");
2687 void MeasureFormatTest::helperTestMultiples(
2688 const Locale
&locale
,
2689 UMeasureFormatWidth width
,
2690 const char *expected
) {
2691 UErrorCode status
= U_ZERO_ERROR
;
2692 FieldPosition
pos(FieldPosition::DONT_CARE
);
2693 MeasureFormat
fmt(locale
, width
, status
);
2694 if (!assertSuccess("Error creating format object", status
)) {
2697 Measure measures
[] = {
2698 Measure(2.0, MeasureUnit::createMile(status
), status
),
2699 Measure(1.0, MeasureUnit::createFoot(status
), status
),
2700 Measure(2.3, MeasureUnit::createInch(status
), status
)};
2701 if (!assertSuccess("Error creating measures", status
)) {
2704 UnicodeString buffer
;
2705 fmt
.formatMeasures(measures
, UPRV_LENGTHOF(measures
), buffer
, pos
, status
);
2706 if (!assertSuccess("Error formatting measures", status
)) {
2709 assertEquals("TestMultiples", UnicodeString(expected
).unescape(), buffer
);
2712 void MeasureFormatTest::TestManyLocaleDurations() {
2713 UErrorCode status
= U_ZERO_ERROR
;
2714 Measure measures
[] = {
2715 Measure(5.0, MeasureUnit::createHour(status
), status
),
2716 Measure(37.0, MeasureUnit::createMinute(status
), status
)};
2717 if (!assertSuccess("Error creating measures", status
)) {
2720 helperTestManyLocaleDurations("ca", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5 h 37 min");
2721 helperTestManyLocaleDurations("da", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5 t. 37 m."); // Apple data change
2722 helperTestManyLocaleDurations("da", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5.37");
2723 helperTestManyLocaleDurations("de", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5h 37min"); // Apple data change
2724 helperTestManyLocaleDurations("de", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2725 helperTestManyLocaleDurations("en", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5h 37m");
2726 helperTestManyLocaleDurations("en", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2727 helperTestManyLocaleDurations("en_GB", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5h 37m");
2728 helperTestManyLocaleDurations("en_GB", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2729 helperTestManyLocaleDurations("es", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5 h 37 min");
2730 helperTestManyLocaleDurations("es", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2731 helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5 t 37 min"); // Apple data change
2732 helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5.37");
2733 helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5h 37mn");
2734 helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2735 helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5 klst. og 37 m\\u00EDn.");
2736 helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2737 helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5\\u6642\\u959337\\u5206");
2738 helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2739 helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5 t, 37 m");
2740 helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2741 helperTestManyLocaleDurations("nl", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5 u, 37 m");
2742 helperTestManyLocaleDurations("nl", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2743 helperTestManyLocaleDurations("nn", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5t og 37m");
2744 helperTestManyLocaleDurations("nn", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2745 helperTestManyLocaleDurations("sv", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5h 37m");
2746 helperTestManyLocaleDurations("sv", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2747 helperTestManyLocaleDurations("zh", UMEASFMT_WIDTH_NARROW
, measures
, UPRV_LENGTHOF(measures
), "5\\u5C0F\\u65F637\\u5206\\u949F");
2748 helperTestManyLocaleDurations("zh", UMEASFMT_WIDTH_NUMERIC
, measures
, UPRV_LENGTHOF(measures
), "5:37");
2751 void MeasureFormatTest::helperTestManyLocaleDurations( const char *localeID
,
2752 UMeasureFormatWidth width
,
2753 const Measure
*measures
,
2754 int32_t measureCount
,
2755 const char *expected
) {
2756 UErrorCode status
= U_ZERO_ERROR
;
2757 MeasureFormat
fmt(Locale(localeID
), width
, status
);
2758 if (U_FAILURE(status
)) {
2759 errln("Could not create MeasureFormat for locale %s, width %d, status: %s", localeID
, (int)width
, u_errorName(status
));
2762 UnicodeString buffer
;
2763 FieldPosition
pos(FieldPosition::DONT_CARE
);
2764 fmt
.formatMeasures(measures
, measureCount
, buffer
, pos
, status
);
2765 if (U_FAILURE(status
)) {
2766 errln("MeasureFormat::formatMeasures failed for locale %s, width %d, status: %s", localeID
, (int)width
, u_errorName(status
));
2769 UnicodeString
expStr(UnicodeString(expected
).unescape());
2770 if (buffer
!= expStr
) {
2771 errln("MeasureFormat::formatMeasures for locale " + UnicodeString(localeID
) + ", width " + width
+ ", expected \"" + expStr
+ "\", got \"" + buffer
+ "\"");
2775 void MeasureFormatTest::TestGram() {
2776 UErrorCode status
= U_ZERO_ERROR
;
2777 MeasureFormat
fmt("en", UMEASFMT_WIDTH_SHORT
, status
);
2778 if (!assertSuccess("Error creating format object", status
)) {
2781 Measure
gram((double)1, MeasureUnit::createGram(status
), status
);
2782 Measure
gforce((double)1, MeasureUnit::createGForce(status
), status
);
2783 if (!assertSuccess("Error creating measures", status
)) {
2786 verifyFormat("TestGram", fmt
, &gram
, 1, "1 g");
2787 verifyFormat("TestGram", fmt
, &gforce
, 1, "1 G");
2790 void MeasureFormatTest::TestCurrencies() {
2792 u_uastrcpy(USD
, "USD");
2793 UErrorCode status
= U_ZERO_ERROR
;
2794 CurrencyUnit
USD_unit(USD
, status
);
2795 assertEquals("Currency Unit", USD
, USD_unit
.getISOCurrency());
2796 if (!assertSuccess("Error creating CurrencyUnit", status
)) {
2799 CurrencyAmount
USD_1(1.0, USD
, status
);
2800 assertEquals("Currency Code", USD
, USD_1
.getISOCurrency());
2801 CurrencyAmount
USD_2(2.0, USD
, status
);
2802 CurrencyAmount
USD_NEG_1(-1.0, USD
, status
);
2803 if (!assertSuccess("Error creating currencies", status
)) {
2807 MeasureFormat
fmt(en
, UMEASFMT_WIDTH_WIDE
, status
);
2808 if (!assertSuccess("Error creating format object", status
)) {
2811 verifyFormat("TestCurrenciesWide", fmt
, &USD_NEG_1
, 1, "-1.00 US dollars");
2812 verifyFormat("TestCurrenciesWide", fmt
, &USD_1
, 1, "1.00 US dollars");
2813 verifyFormat("TestCurrenciesWide", fmt
, &USD_2
, 1, "2.00 US dollars");
2814 fmt
= MeasureFormat(en
, UMEASFMT_WIDTH_SHORT
, status
);
2815 if (!assertSuccess("Error creating format object", status
)) {
2818 verifyFormat("TestCurrenciesShort", fmt
, &USD_NEG_1
, 1, "-USD\\u00A01.00");
2819 verifyFormat("TestCurrenciesShort", fmt
, &USD_1
, 1, "USD\\u00A01.00");
2820 verifyFormat("TestCurrenciesShort", fmt
, &USD_2
, 1, "USD\\u00A02.00");
2821 fmt
= MeasureFormat(en
, UMEASFMT_WIDTH_NARROW
, status
);
2822 if (!assertSuccess("Error creating format object", status
)) {
2825 verifyFormat("TestCurrenciesNarrow", fmt
, &USD_NEG_1
, 1, "-$1.00");
2826 verifyFormat("TestCurrenciesNarrow", fmt
, &USD_1
, 1, "$1.00");
2827 verifyFormat("TestCurrenciesNarrow", fmt
, &USD_2
, 1, "$2.00");
2828 fmt
= MeasureFormat(en
, UMEASFMT_WIDTH_NUMERIC
, status
);
2829 if (!assertSuccess("Error creating format object", status
)) {
2832 verifyFormat("TestCurrenciesNumeric", fmt
, &USD_NEG_1
, 1, "-$1.00");
2833 verifyFormat("TestCurrenciesNumeric", fmt
, &USD_1
, 1, "$1.00");
2834 verifyFormat("TestCurrenciesNumeric", fmt
, &USD_2
, 1, "$2.00");
2837 void MeasureFormatTest::TestDisplayNames() {
2838 UErrorCode status
= U_ZERO_ERROR
;
2839 helperTestDisplayName( MeasureUnit::createYear(status
), "en", UMEASFMT_WIDTH_WIDE
, "years" );
2840 helperTestDisplayName( MeasureUnit::createYear(status
), "ja", UMEASFMT_WIDTH_WIDE
, "\\u5E74" );
2841 helperTestDisplayName( MeasureUnit::createYear(status
), "es", UMEASFMT_WIDTH_WIDE
, "a\\u00F1os" );
2842 helperTestDisplayName( MeasureUnit::createYear(status
), "pt", UMEASFMT_WIDTH_WIDE
, "anos" );
2843 helperTestDisplayName( MeasureUnit::createYear(status
), "pt-PT", UMEASFMT_WIDTH_WIDE
, "anos" );
2844 helperTestDisplayName( MeasureUnit::createAmpere(status
), "en", UMEASFMT_WIDTH_WIDE
, "amperes" );
2845 helperTestDisplayName( MeasureUnit::createAmpere(status
), "ja", UMEASFMT_WIDTH_WIDE
, "\\u30A2\\u30F3\\u30DA\\u30A2" );
2846 helperTestDisplayName( MeasureUnit::createAmpere(status
), "es", UMEASFMT_WIDTH_WIDE
, "amperios" );
2847 helperTestDisplayName( MeasureUnit::createAmpere(status
), "pt", UMEASFMT_WIDTH_WIDE
, "amperes" );
2848 helperTestDisplayName( MeasureUnit::createAmpere(status
), "pt-PT", UMEASFMT_WIDTH_WIDE
, "amperes" );
2849 helperTestDisplayName( MeasureUnit::createMeterPerSecondSquared(status
), "pt", UMEASFMT_WIDTH_WIDE
, "metros por segundo ao quadrado" );
2850 helperTestDisplayName( MeasureUnit::createMeterPerSecondSquared(status
), "pt-PT", UMEASFMT_WIDTH_WIDE
, "metros por segundo quadrado" );
2851 helperTestDisplayName( MeasureUnit::createSquareKilometer(status
), "pt", UMEASFMT_WIDTH_NARROW
, "km\\u00B2" );
2852 helperTestDisplayName( MeasureUnit::createSquareKilometer(status
), "pt", UMEASFMT_WIDTH_SHORT
, "km\\u00B2" );
2853 helperTestDisplayName( MeasureUnit::createSquareKilometer(status
), "pt", UMEASFMT_WIDTH_WIDE
, "quil\\u00F4metros quadrados" );
2854 helperTestDisplayName( MeasureUnit::createSecond(status
), "pt-PT", UMEASFMT_WIDTH_NARROW
, "s" );
2855 helperTestDisplayName( MeasureUnit::createSecond(status
), "pt-PT", UMEASFMT_WIDTH_SHORT
, "s" );
2856 helperTestDisplayName( MeasureUnit::createSecond(status
), "pt-PT", UMEASFMT_WIDTH_WIDE
, "segundos" );
2857 helperTestDisplayName( MeasureUnit::createSecond(status
), "pt", UMEASFMT_WIDTH_NARROW
, "seg" );
2858 helperTestDisplayName( MeasureUnit::createSecond(status
), "pt", UMEASFMT_WIDTH_SHORT
, "seg" );
2859 helperTestDisplayName( MeasureUnit::createSecond(status
), "pt", UMEASFMT_WIDTH_WIDE
, "segundos" );
2860 assertSuccess("Error creating measure units", status
);
2863 void MeasureFormatTest::helperTestDisplayName(const MeasureUnit
*unit
,
2864 const char *localeID
,
2865 UMeasureFormatWidth width
,
2866 const char *expected
) {
2867 UErrorCode status
= U_ZERO_ERROR
;
2868 MeasureFormat
fmt(Locale(localeID
), width
, status
);
2869 if (U_FAILURE(status
)) {
2870 errln("Could not create MeasureFormat for locale %s, width %d, status: %s",
2871 localeID
, (int)width
, u_errorName(status
));
2875 UnicodeString dnam
= fmt
.getUnitDisplayName(*unit
, status
);
2876 if (U_FAILURE(status
)) {
2877 errln("MeasureFormat::getUnitDisplayName failed for unit %s-%s, locale %s, width %d, status: %s",
2878 unit
->getType(), unit
->getSubtype(), localeID
, (int)width
, u_errorName(status
));
2882 UnicodeString
expStr(UnicodeString(expected
).unescape());
2883 if (dnam
!= expStr
) {
2884 errln("MeasureFormat::getUnitDisplayName for unit %s-%s, locale %s, width %d: expected \"%s\", got \"%s\"",
2885 unit
->getType(), unit
->getSubtype(), localeID
, (int)width
, CStr(expStr
)(), CStr(dnam
)());
2888 // Delete the measure unit
2892 void MeasureFormatTest::TestFieldPosition() {
2893 UErrorCode status
= U_ZERO_ERROR
;
2894 MeasureFormat
fmt("en", UMEASFMT_WIDTH_SHORT
, status
);
2895 if (!assertSuccess("Error creating format object", status
)) {
2898 Measure
measure(43.5, MeasureUnit::createFoot(status
), status
);
2899 if (!assertSuccess("Error creating measure object 1", status
)) {
2902 UnicodeString
prefix("123456: ");
2903 verifyFieldPosition(
2909 NumberFormat::kDecimalSeparatorField
,
2912 measure
= Measure(43.0, MeasureUnit::createFoot(status
), status
);
2913 if (!assertSuccess("Error creating measure object 2", status
)) {
2916 verifyFieldPosition(
2922 NumberFormat::kDecimalSeparatorField
,
2927 void MeasureFormatTest::TestFieldPositionMultiple() {
2928 UErrorCode status
= U_ZERO_ERROR
;
2929 MeasureFormat
fmt("en", UMEASFMT_WIDTH_SHORT
, status
);
2930 if (!assertSuccess("Error creating format object", status
)) {
2934 Measure((double)354, MeasureUnit::createMeter(status
), status
),
2935 Measure((double)23, MeasureUnit::createCentimeter(status
), status
)};
2936 Measure second
[] = {
2937 Measure((double)354, MeasureUnit::createMeter(status
), status
),
2938 Measure((double)23, MeasureUnit::createCentimeter(status
), status
),
2939 Measure((double)5.4, MeasureUnit::createMillimeter(status
), status
)};
2941 Measure((double)3, MeasureUnit::createMeter(status
), status
),
2942 Measure((double)23, MeasureUnit::createCentimeter(status
), status
),
2943 Measure((double)5, MeasureUnit::createMillimeter(status
), status
)};
2944 if (!assertSuccess("Error creating measure objects", status
)) {
2947 UnicodeString
prefix("123456: ");
2948 verifyFieldPosition(
2953 UPRV_LENGTHOF(first
),
2954 NumberFormat::kIntegerField
,
2957 verifyFieldPosition(
2958 "Decimal separator",
2962 UPRV_LENGTHOF(second
),
2963 NumberFormat::kDecimalSeparatorField
,
2966 verifyFieldPosition(
2967 "no decimal separator",
2971 UPRV_LENGTHOF(third
),
2972 NumberFormat::kDecimalSeparatorField
,
2977 void MeasureFormatTest::TestBadArg() {
2978 UErrorCode status
= U_ZERO_ERROR
;
2979 MeasureFormat
fmt("en", UMEASFMT_WIDTH_SHORT
, status
);
2980 if (!assertSuccess("Error creating format object", status
)) {
2983 FieldPosition
pos(FieldPosition::DONT_CARE
);
2984 UnicodeString buffer
;
2990 if (status
!= U_ILLEGAL_ARGUMENT_ERROR
) {
2991 errln("Expected ILLEGAL_ARGUMENT_ERROR");
2995 void MeasureFormatTest::TestEquality() {
2996 UErrorCode status
= U_ZERO_ERROR
;
2997 NumberFormat
* nfeq
= NumberFormat::createInstance("en", status
);
2998 NumberFormat
* nfne
= NumberFormat::createInstance("fr", status
);
2999 MeasureFormat
fmt("en", UMEASFMT_WIDTH_SHORT
, status
);
3000 MeasureFormat
fmtEq2("en", UMEASFMT_WIDTH_SHORT
, nfeq
, status
);
3001 MeasureFormat
fmtne1("en", UMEASFMT_WIDTH_WIDE
, status
);
3002 MeasureFormat
fmtne2("fr", UMEASFMT_WIDTH_SHORT
, status
);
3003 MeasureFormat
fmtne3("en", UMEASFMT_WIDTH_SHORT
, nfne
, status
);
3004 if (U_FAILURE(status
)) {
3005 dataerrln("Error creating MeasureFormats - %s", u_errorName(status
));
3008 MeasureFormat
fmtEq(fmt
);
3009 assertTrue("Equal", fmt
== fmtEq
);
3010 assertTrue("Equal2", fmt
== fmtEq2
);
3011 assertFalse("Equal Neg", fmt
!= fmtEq
);
3012 assertTrue("Not Equal 1", fmt
!= fmtne1
);
3013 assertFalse("Not Equal Neg 1", fmt
== fmtne1
);
3014 assertTrue("Not Equal 2", fmt
!= fmtne2
);
3015 assertTrue("Not Equal 3", fmt
!= fmtne3
);
3018 void MeasureFormatTest::TestGroupingSeparator() {
3019 UErrorCode status
= U_ZERO_ERROR
;
3021 MeasureFormat
fmt(en
, UMEASFMT_WIDTH_SHORT
, status
);
3022 if (!assertSuccess("Error creating format object", status
)) {
3026 Measure((int32_t)INT32_MAX
, MeasureUnit::createYear(status
), status
),
3027 Measure((int32_t)INT32_MIN
, MeasureUnit::createMonth(status
), status
),
3028 Measure(-987.0, MeasureUnit::createDay(status
), status
),
3029 Measure(1362.0, MeasureUnit::createHour(status
), status
),
3030 Measure(987.0, MeasureUnit::createMinute(status
), status
)};
3031 FieldPosition
pos(NumberFormat::kGroupingSeparatorField
);
3032 UnicodeString appendTo
;
3033 fmt
.formatMeasures(ms
, 5, appendTo
, pos
, status
);
3034 if (!assertSuccess("Error formatting", status
)) {
3038 "grouping separator",
3039 "2,147,483,647 yrs, -2,147,483,648 mths, -987 days, 1,362 hr, 987 min",
3041 assertEquals("begin index", 1, pos
.getBeginIndex());
3042 assertEquals("end index", 2, pos
.getEndIndex());
3045 void MeasureFormatTest::TestDoubleZero() {
3046 UErrorCode status
= U_ZERO_ERROR
;
3047 Measure measures
[] = {
3048 Measure(4.7, MeasureUnit::createHour(status
), status
),
3049 Measure(23.0, MeasureUnit::createMinute(status
), status
),
3050 Measure(16.0, MeasureUnit::createSecond(status
), status
)};
3052 NumberFormat
*nf
= NumberFormat::createInstance(en
, status
);
3053 MeasureFormat
fmt("en", UMEASFMT_WIDTH_WIDE
, nf
, status
);
3054 UnicodeString appendTo
;
3055 FieldPosition
pos(FieldPosition::DONT_CARE
);
3056 if (U_FAILURE(status
)) {
3057 dataerrln("Error creating formatter - %s", u_errorName(status
));
3060 nf
->setMinimumFractionDigits(2);
3061 nf
->setMaximumFractionDigits(2);
3062 fmt
.formatMeasures(measures
, UPRV_LENGTHOF(measures
), appendTo
, pos
, status
);
3063 if (!assertSuccess("Error formatting", status
)) {
3068 UnicodeString("4 hours, 23 minutes, 16.00 seconds"),
3070 measures
[0] = Measure(-4.7, MeasureUnit::createHour(status
), status
);
3072 fmt
.formatMeasures(measures
, UPRV_LENGTHOF(measures
), appendTo
, pos
, status
);
3073 if (!assertSuccess("Error formatting", status
)) {
3078 UnicodeString("-4 hours, 23 minutes, 16.00 seconds"),
3082 void MeasureFormatTest::TestUnitPerUnitResolution() {
3083 UErrorCode status
= U_ZERO_ERROR
;
3085 MeasureFormat
fmt("en", UMEASFMT_WIDTH_SHORT
, status
);
3086 Measure
measure(50.0, MeasureUnit::createPound(status
), status
);
3087 LocalPointer
<MeasureUnit
> sqInch(MeasureUnit::createSquareInch(status
));
3088 if (!assertSuccess("Create of format unit and per unit", status
)) {
3091 FieldPosition
pos(FieldPosition::DONT_CARE
);
3092 UnicodeString actual
;
3093 fmt
.formatMeasurePerUnit(
3099 assertEquals("", "50 psi", actual
);
3102 void MeasureFormatTest::TestIndividualPluralFallback() {
3103 // See ticket #11986 "incomplete fallback in MeasureFormat".
3104 // In CLDR 28, fr_CA temperature-generic/short has only the "one" form,
3105 // and falls back to fr for the "other" form.
3106 IcuTestErrorCode
errorCode(*this, "TestIndividualPluralFallback");
3107 MeasureFormat
mf("fr_CA", UMEASFMT_WIDTH_SHORT
, errorCode
);
3108 LocalPointer
<Measure
> twoDeg(
3109 new Measure(2.0, MeasureUnit::createGenericTemperature(errorCode
), errorCode
), errorCode
);
3110 UnicodeString expected
= UNICODE_STRING_SIMPLE("2\\u00B0").unescape();
3111 UnicodeString actual
;
3112 assertEquals("2 deg temp in fr_CA", expected
, mf
.format(twoDeg
.orphan(), actual
, errorCode
), TRUE
);
3115 void MeasureFormatTest::Test20332_PersonUnits() {
3116 IcuTestErrorCode
status(*this, "Test20332_PersonUnits");
3117 const struct TestCase
{
3119 MeasureUnit
* unitToAdopt
;
3120 UMeasureFormatWidth width
;
3121 const char* expected
;
3123 {"en-us", MeasureUnit::createYearPerson(status
), UMEASFMT_WIDTH_NARROW
, "25y"},
3124 {"en-us", MeasureUnit::createYearPerson(status
), UMEASFMT_WIDTH_SHORT
, "25 yrs"},
3125 {"en-us", MeasureUnit::createYearPerson(status
), UMEASFMT_WIDTH_WIDE
, "25 years"},
3126 {"en-us", MeasureUnit::createMonthPerson(status
), UMEASFMT_WIDTH_NARROW
, "25mo"},
3127 {"en-us", MeasureUnit::createMonthPerson(status
), UMEASFMT_WIDTH_SHORT
, "25 mths"},
3128 {"en-us", MeasureUnit::createMonthPerson(status
), UMEASFMT_WIDTH_WIDE
, "25 months"},
3129 {"en-us", MeasureUnit::createWeekPerson(status
), UMEASFMT_WIDTH_NARROW
, "25w"},
3130 {"en-us", MeasureUnit::createWeekPerson(status
), UMEASFMT_WIDTH_SHORT
, "25 wks"},
3131 {"en-us", MeasureUnit::createWeekPerson(status
), UMEASFMT_WIDTH_WIDE
, "25 weeks"},
3132 {"en-us", MeasureUnit::createDayPerson(status
), UMEASFMT_WIDTH_NARROW
, "25d"},
3133 {"en-us", MeasureUnit::createDayPerson(status
), UMEASFMT_WIDTH_SHORT
, "25 days"},
3134 {"en-us", MeasureUnit::createDayPerson(status
), UMEASFMT_WIDTH_WIDE
, "25 days"}
3136 for (const auto& cas
: cases
) {
3137 MeasureFormat
mf(cas
.locale
, cas
.width
, status
);
3138 if (status
.errIfFailureAndReset()) { return; }
3139 Measure
measure(25, cas
.unitToAdopt
, status
);
3140 if (status
.errIfFailureAndReset()) { return; }
3141 verifyFormat(cas
.locale
, mf
, &measure
, 1, cas
.expected
);
3145 void MeasureFormatTest::TestNumericTime() {
3146 IcuTestErrorCode
status(*this, "TestNumericTime");
3148 MeasureFormat
fmt("en", UMEASFMT_WIDTH_NUMERIC
, status
);
3150 Measure
hours(112, MeasureUnit::createHour(status
), status
);
3151 Measure
minutes(113, MeasureUnit::createMinute(status
), status
);
3152 Measure
seconds(114, MeasureUnit::createSecond(status
), status
);
3153 Measure
fhours(112.8765, MeasureUnit::createHour(status
), status
);
3154 Measure
fminutes(113.8765, MeasureUnit::createMinute(status
), status
);
3155 Measure
fseconds(114.8765, MeasureUnit::createSecond(status
), status
);
3156 if (status
.errDataIfFailureAndReset(WHERE
)) return;
3158 verifyFormat("hours", fmt
, &hours
, 1, "112h");
3159 verifyFormat("minutes", fmt
, &minutes
, 1, "113m");
3160 verifyFormat("seconds", fmt
, &seconds
, 1, "114s");
3162 verifyFormat("fhours", fmt
, &fhours
, 1, "112.876h");
3163 verifyFormat("fminutes", fmt
, &fminutes
, 1, "113.876m");
3164 verifyFormat("fseconds", fmt
, &fseconds
, 1, "114.876s");
3166 Measure hoursMinutes
[2] = {hours
, minutes
};
3167 verifyFormat("hoursMinutes", fmt
, hoursMinutes
, 2, "112:113");
3168 Measure hoursSeconds
[2] = {hours
, seconds
};
3169 verifyFormat("hoursSeconds", fmt
, hoursSeconds
, 2, "112:00:114");
3170 Measure minutesSeconds
[2] = {minutes
, seconds
};
3171 verifyFormat("minutesSeconds", fmt
, minutesSeconds
, 2, "113:114");
3173 Measure hoursFminutes
[2] = {hours
, fminutes
};
3174 verifyFormat("hoursFminutes", fmt
, hoursFminutes
, 2, "112:113.876");
3175 Measure hoursFseconds
[2] = {hours
, fseconds
};
3176 verifyFormat("hoursFseconds", fmt
, hoursFseconds
, 2, "112:00:114.876");
3177 Measure minutesFseconds
[2] = {minutes
, fseconds
};
3178 verifyFormat("hoursMminutesFsecondsinutes", fmt
, minutesFseconds
, 2, "113:114.876");
3180 Measure fhoursMinutes
[2] = {fhours
, minutes
};
3181 verifyFormat("fhoursMinutes", fmt
, fhoursMinutes
, 2, "112:113");
3182 Measure fhoursSeconds
[2] = {fhours
, seconds
};
3183 verifyFormat("fhoursSeconds", fmt
, fhoursSeconds
, 2, "112:00:114");
3184 Measure fminutesSeconds
[2] = {fminutes
, seconds
};
3185 verifyFormat("fminutesSeconds", fmt
, fminutesSeconds
, 2, "113:114");
3187 Measure fhoursFminutes
[2] = {fhours
, fminutes
};
3188 verifyFormat("fhoursFminutes", fmt
, fhoursFminutes
, 2, "112:113.876");
3189 Measure fhoursFseconds
[2] = {fhours
, fseconds
};
3190 verifyFormat("fhoursFseconds", fmt
, fhoursFseconds
, 2, "112:00:114.876");
3191 Measure fminutesFseconds
[2] = {fminutes
, fseconds
};
3192 verifyFormat("fminutesFseconds", fmt
, fminutesFseconds
, 2, "113:114.876");
3194 Measure hoursMinutesSeconds
[3] = {hours
, minutes
, seconds
};
3195 verifyFormat("hoursMinutesSeconds", fmt
, hoursMinutesSeconds
, 3, "112:113:114");
3196 Measure fhoursFminutesFseconds
[3] = {fhours
, fminutes
, fseconds
};
3197 verifyFormat("fhoursFminutesFseconds", fmt
, fhoursFminutesFseconds
, 3, "112:113:114.876");
3200 void MeasureFormatTest::TestNumericTimeSomeSpecialFormats() {
3201 IcuTestErrorCode
status(*this, "TestNumericTimeSomeSpecialFormats");
3203 Measure
fhours(2.8765432, MeasureUnit::createHour(status
), status
);
3204 Measure
fminutes(3.8765432, MeasureUnit::createMinute(status
), status
);
3205 if (status
.errDataIfFailureAndReset(WHERE
)) return;
3207 Measure fhoursFminutes
[2] = {fhours
, fminutes
};
3209 // Latvian is one of the very few locales 0-padding the hour
3210 MeasureFormat
fmtLt("lt", UMEASFMT_WIDTH_NUMERIC
, status
);
3211 if (status
.errDataIfFailureAndReset(WHERE
)) return;
3212 verifyFormat("Latvian fhoursFminutes", fmtLt
, fhoursFminutes
, 2, "02:03,877");
3214 // Danish is one of the very few locales using '.' as separator
3215 MeasureFormat
fmtDa("da", UMEASFMT_WIDTH_NUMERIC
, status
);
3216 verifyFormat("Danish fhoursFminutes", fmtDa
, fhoursFminutes
, 2, "2.03,877");
3220 void MeasureFormatTest::verifyFieldPosition(
3221 const char *description
,
3222 const MeasureFormat
&fmt
,
3223 const UnicodeString
&prefix
,
3224 const Measure
*measures
,
3225 int32_t measureCount
,
3226 NumberFormat::EAlignmentFields field
,
3230 UnicodeString
result(prefix
);
3231 FieldPosition
pos(field
);
3232 UErrorCode status
= U_ZERO_ERROR
;
3234 const char *descPrefix
= ch
.append(description
, status
)
3235 .append(": ", status
).data();
3236 CharString beginIndex
;
3237 beginIndex
.append(descPrefix
, status
).append("beginIndex", status
);
3238 CharString endIndex
;
3239 endIndex
.append(descPrefix
, status
).append("endIndex", status
);
3240 fmt
.formatMeasures(measures
, measureCount
, result
, pos
, status
);
3241 if (!assertSuccess("Error formatting", status
)) {
3244 assertEquals(beginIndex
.data(), start
, pos
.getBeginIndex());
3245 assertEquals(endIndex
.data(), end
, pos
.getEndIndex());
3248 void MeasureFormatTest::verifyFormat(
3249 const char *description
,
3250 const MeasureFormat
&fmt
,
3251 const Measure
*measures
,
3252 int32_t measureCount
,
3253 const char *expected
) {
3254 verifyFormatWithPrefix(
3263 void MeasureFormatTest::verifyFormatWithPrefix(
3264 const char *description
,
3265 const MeasureFormat
&fmt
,
3266 const UnicodeString
&prefix
,
3267 const Measure
*measures
,
3268 int32_t measureCount
,
3269 const char *expected
) {
3270 UnicodeString
result(prefix
);
3271 FieldPosition
pos(FieldPosition::DONT_CARE
);
3272 UErrorCode status
= U_ZERO_ERROR
;
3273 fmt
.formatMeasures(measures
, measureCount
, result
, pos
, status
);
3274 if (!assertSuccess("Error formatting", status
)) {
3277 assertEquals(description
, ctou(expected
), result
);
3280 void MeasureFormatTest::verifyFormat(
3281 const char *description
,
3282 const MeasureFormat
&fmt
,
3283 const ExpectedResult
*expectedResults
,
3285 for (int32_t i
= 0; i
< count
; ++i
) {
3286 verifyFormat(description
, fmt
, expectedResults
[i
].measures
, expectedResults
[i
].count
, expectedResults
[i
].expected
);
3290 extern IntlTest
*createMeasureFormatTest() {
3291 return new MeasureFormatTest();