1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (C) 2014-2016, International Business Machines Corporation and *
6 * others. All Rights Reserved. *
7 *******************************************************************************
8 *
9 * File MEASFMTTEST.CPP
10 *
11 *******************************************************************************
12 */
13 #include <stdio.h>
14 #include <stdlib.h>
15
16 #include "intltest.h"
17
18 #if !UCONFIG_NO_FORMATTING
19
20 #include "charstr.h"
21 #include "cstr.h"
22 #include "cstring.h"
23 #include "measunit_impl.h"
24 #include "unicode/decimfmt.h"
25 #include "unicode/measfmt.h"
26 #include "unicode/measure.h"
27 #include "unicode/measunit.h"
28 #include "unicode/strenum.h"
29 #include "unicode/tmunit.h"
30 #include "unicode/plurrule.h"
31 #include "unicode/ustring.h"
32 #include "unicode/reldatefmt.h"
33 #include "unicode/rbnf.h"
34
35 struct ExpectedResult {
36 const Measure *measures;
37 int32_t count;
38 const char *expected;
39 };
40
41 class MeasureFormatTest : public IntlTest {
42 public:
MeasureFormatTest()43 MeasureFormatTest() {
44 }
45
46 void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=0) override;
47 private:
48 void TestBasic();
49 void TestCompatible53();
50 void TestCompatible54();
51 void TestCompatible55();
52 void TestCompatible56();
53 void TestCompatible57();
54 void TestCompatible58();
55 void TestCompatible59();
56 void TestCompatible63();
57 void TestCompatible64();
58 void TestCompatible65();
59 void TestCompatible68();
60 void TestCompatible69();
61 void TestCompatible70();
62 void TestCompatible72();
63 void TestCompatible73();
64 void TestGetAvailable();
65 void TestExamplesInDocs();
66 void TestFormatPeriodEn();
67 void Test10219FractionalPlurals();
68 void TestGreek();
69 void TestFormatSingleArg();
70 void TestFormatMeasuresZeroArg();
71 void TestSimplePer();
72 void TestNumeratorPlurals();
73 void TestMultiples();
74 void TestManyLocaleDurations();
75 void TestGram();
76 void TestCurrencies();
77 void TestDisplayNames();
78 void TestFieldPosition();
79 void TestFieldPositionMultiple();
80 void TestBadArg();
81 void TestEquality();
82 void TestGroupingSeparator();
83 void TestDoubleZero();
84 void TestUnitPerUnitResolution();
85 void TestIndividualPluralFallback();
86 void Test20332_PersonUnits();
87 void TestNumericTime();
88 void TestNumericTimeSomeSpecialFormats();
89 void TestIdentifiers();
90 void TestInvalidIdentifiers();
91 void TestIdentifierDetails();
92 void TestPrefixes();
93 void TestParseBuiltIns();
94 void TestParseToBuiltIn();
95 void TestKilogramIdentifier();
96 void TestCompoundUnitOperations();
97 void TestDimensionlessBehaviour();
98 void Test21060_AddressSanitizerProblem();
99 void Test21223_FrenchDuration();
100 void TestInternalMeasureUnitImpl();
101
102 void verifyFormat(
103 const char *description,
104 const MeasureFormat &fmt,
105 const Measure *measures,
106 int32_t measureCount,
107 const char *expected);
108 void verifyFormatWithPrefix(
109 const char *description,
110 const MeasureFormat &fmt,
111 const UnicodeString &prefix,
112 const Measure *measures,
113 int32_t measureCount,
114 const char *expected);
115 void verifyFormat(
116 const char *description,
117 const MeasureFormat &fmt,
118 const ExpectedResult *expectedResults,
119 int32_t count);
120 void helperTestSimplePer(
121 const Locale &locale,
122 UMeasureFormatWidth width,
123 double value,
124 const MeasureUnit &unit,
125 const MeasureUnit &perUnit,
126 const char *expected);
127 void helperTestSimplePer(
128 const Locale &locale,
129 UMeasureFormatWidth width,
130 double value,
131 const MeasureUnit &unit,
132 const MeasureUnit &perUnit,
133 const char *expected,
134 int32_t field,
135 int32_t expected_start,
136 int32_t expected_end);
137 void helperTestMultiples(
138 const Locale &locale,
139 UMeasureFormatWidth width,
140 const char *expected);
141 void helperTestManyLocaleDurations(
142 const char *localeID,
143 UMeasureFormatWidth width,
144 const Measure *measures,
145 int32_t measureCount,
146 const char *expected);
147 void helperTestDisplayName(
148 const MeasureUnit *unit,
149 const char *localeID,
150 UMeasureFormatWidth width,
151 const char *expected);
152 void verifyFieldPosition(
153 const char *description,
154 const MeasureFormat &fmt,
155 const UnicodeString &prefix,
156 const Measure *measures,
157 int32_t measureCount,
158 NumberFormat::EAlignmentFields field,
159 int32_t start,
160 int32_t end);
161 void verifySingleUnit(
162 const MeasureUnit& unit,
163 UMeasurePrefix unitPrefix,
164 int8_t power,
165 const char* identifier);
166 void verifyCompoundUnit(
167 const MeasureUnit& unit,
168 const char* identifier,
169 const char** subIdentifiers,
170 int32_t subIdentifierCount);
171 void verifyMixedUnit(
172 const MeasureUnit& unit,
173 const char* identifier,
174 const char** subIdentifiers,
175 int32_t subIdentifierCount);
176 };
177
runIndexedTest(int32_t index,UBool exec,const char * & name,char *)178 void MeasureFormatTest::runIndexedTest(
179 int32_t index, UBool exec, const char *&name, char *) {
180 if (exec) {
181 logln("TestSuite MeasureFormatTest: ");
182 }
183 TESTCASE_AUTO_BEGIN;
184 TESTCASE_AUTO(TestBasic);
185 TESTCASE_AUTO(TestCompatible53);
186 TESTCASE_AUTO(TestCompatible54);
187 TESTCASE_AUTO(TestCompatible55);
188 TESTCASE_AUTO(TestCompatible56);
189 TESTCASE_AUTO(TestCompatible57);
190 TESTCASE_AUTO(TestCompatible58);
191 TESTCASE_AUTO(TestCompatible59);
192 TESTCASE_AUTO(TestCompatible63);
193 TESTCASE_AUTO(TestCompatible64);
194 TESTCASE_AUTO(TestCompatible65);
195 TESTCASE_AUTO(TestCompatible68);
196 TESTCASE_AUTO(TestCompatible69);
197 TESTCASE_AUTO(TestCompatible70);
198 TESTCASE_AUTO(TestCompatible72);
199 TESTCASE_AUTO(TestCompatible73);
200 TESTCASE_AUTO(TestGetAvailable);
201 TESTCASE_AUTO(TestExamplesInDocs);
202 TESTCASE_AUTO(TestFormatPeriodEn);
203 TESTCASE_AUTO(Test10219FractionalPlurals);
204 TESTCASE_AUTO(TestGreek);
205 TESTCASE_AUTO(TestFormatSingleArg);
206 TESTCASE_AUTO(TestFormatMeasuresZeroArg);
207 TESTCASE_AUTO(TestSimplePer);
208 TESTCASE_AUTO(TestNumeratorPlurals);
209 TESTCASE_AUTO(TestMultiples);
210 TESTCASE_AUTO(TestManyLocaleDurations);
211 TESTCASE_AUTO(TestGram);
212 TESTCASE_AUTO(TestCurrencies);
213 TESTCASE_AUTO(TestDisplayNames);
214 TESTCASE_AUTO(TestFieldPosition);
215 TESTCASE_AUTO(TestFieldPositionMultiple);
216 TESTCASE_AUTO(TestBadArg);
217 TESTCASE_AUTO(TestEquality);
218 TESTCASE_AUTO(TestGroupingSeparator);
219 TESTCASE_AUTO(TestDoubleZero);
220 TESTCASE_AUTO(TestUnitPerUnitResolution);
221 TESTCASE_AUTO(TestIndividualPluralFallback);
222 TESTCASE_AUTO(Test20332_PersonUnits);
223 TESTCASE_AUTO(TestNumericTime);
224 TESTCASE_AUTO(TestNumericTimeSomeSpecialFormats);
225 TESTCASE_AUTO(TestIdentifiers);
226 TESTCASE_AUTO(TestInvalidIdentifiers);
227 TESTCASE_AUTO(TestIdentifierDetails);
228 TESTCASE_AUTO(TestPrefixes);
229 TESTCASE_AUTO(TestParseBuiltIns);
230 TESTCASE_AUTO(TestParseToBuiltIn);
231 TESTCASE_AUTO(TestKilogramIdentifier);
232 TESTCASE_AUTO(TestCompoundUnitOperations);
233 TESTCASE_AUTO(TestDimensionlessBehaviour);
234 TESTCASE_AUTO(Test21060_AddressSanitizerProblem);
235 TESTCASE_AUTO(Test21223_FrenchDuration);
236 TESTCASE_AUTO(TestInternalMeasureUnitImpl);
237 TESTCASE_AUTO_END;
238 }
239
TestCompatible53()240 void MeasureFormatTest::TestCompatible53() {
241 UErrorCode status = U_ZERO_ERROR;
242 LocalPointer<MeasureUnit> measureUnit;
243 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
244 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
245 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
246 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
247 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
248 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
249 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
250 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
251 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
252 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
253 measureUnit.adoptInstead(MeasureUnit::createDay(status));
254 measureUnit.adoptInstead(MeasureUnit::createHour(status));
255 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
256 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
257 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
258 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
259 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
260 measureUnit.adoptInstead(MeasureUnit::createYear(status));
261 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
262 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
263 measureUnit.adoptInstead(MeasureUnit::createInch(status));
264 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
265 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
266 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
267 measureUnit.adoptInstead(MeasureUnit::createMile(status));
268 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
269 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
270 measureUnit.adoptInstead(MeasureUnit::createYard(status));
271 measureUnit.adoptInstead(MeasureUnit::createGram(status));
272 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
273 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
274 measureUnit.adoptInstead(MeasureUnit::createPound(status));
275 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
276 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
277 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
278 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
279 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
280 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
281 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
282 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
283 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
284 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
285 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
286 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
287 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
288 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
289 assertSuccess("", status);
290 }
291
TestCompatible54()292 void MeasureFormatTest::TestCompatible54() {
293 UErrorCode status = U_ZERO_ERROR;
294 LocalPointer<MeasureUnit> measureUnit;
295 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
296 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
297 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
298 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
299 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
300 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
301 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
302 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
303 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
304 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
305 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
306 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
307 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
308 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
309 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
310 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
311 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
312 measureUnit.adoptInstead(MeasureUnit::createBit(status));
313 measureUnit.adoptInstead(MeasureUnit::createByte(status));
314 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
315 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
316 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
317 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
318 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
319 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
320 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
321 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
322 measureUnit.adoptInstead(MeasureUnit::createDay(status));
323 measureUnit.adoptInstead(MeasureUnit::createHour(status));
324 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
325 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
326 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
327 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
328 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
329 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
330 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
331 measureUnit.adoptInstead(MeasureUnit::createYear(status));
332 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
333 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
334 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
335 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
336 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
337 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
338 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
339 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
340 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
341 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
342 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
343 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
344 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
345 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
346 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
347 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
348 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
349 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
350 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
351 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
352 measureUnit.adoptInstead(MeasureUnit::createInch(status));
353 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
354 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
355 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
356 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
357 measureUnit.adoptInstead(MeasureUnit::createMile(status));
358 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
359 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
360 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
361 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
362 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
363 measureUnit.adoptInstead(MeasureUnit::createYard(status));
364 measureUnit.adoptInstead(MeasureUnit::createLux(status));
365 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
366 measureUnit.adoptInstead(MeasureUnit::createGram(status));
367 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
368 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
369 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
370 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
371 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
372 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
373 measureUnit.adoptInstead(MeasureUnit::createPound(status));
374 measureUnit.adoptInstead(MeasureUnit::createStone(status));
375 measureUnit.adoptInstead(MeasureUnit::createTon(status));
376 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
377 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
378 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
379 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
380 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
381 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
382 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
383 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
384 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
385 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
386 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
387 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
388 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
389 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
390 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
391 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
392 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
393 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
394 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
395 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
396 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
397 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
398 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
399 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
400 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
401 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
402 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
403 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
404 measureUnit.adoptInstead(MeasureUnit::createCup(status));
405 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
406 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
407 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
408 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
409 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
410 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
411 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
412 measureUnit.adoptInstead(MeasureUnit::createPint(status));
413 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
414 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
415 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
416 assertSuccess("", status);
417 }
418
TestCompatible55()419 void MeasureFormatTest::TestCompatible55() {
420 UErrorCode status = U_ZERO_ERROR;
421 LocalPointer<MeasureUnit> measureUnit;
422 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
423 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
424 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
425 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
426 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
427 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
428 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
429 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
430 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
431 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
432 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
433 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
434 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
435 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
436 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
437 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
438 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
439 measureUnit.adoptInstead(MeasureUnit::createBit(status));
440 measureUnit.adoptInstead(MeasureUnit::createByte(status));
441 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
442 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
443 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
444 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
445 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
446 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
447 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
448 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
449 measureUnit.adoptInstead(MeasureUnit::createDay(status));
450 measureUnit.adoptInstead(MeasureUnit::createHour(status));
451 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
452 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
453 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
454 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
455 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
456 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
457 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
458 measureUnit.adoptInstead(MeasureUnit::createYear(status));
459 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
460 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
461 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
462 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
463 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
464 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
465 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
466 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
467 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
468 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
469 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
470 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
471 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
472 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
473 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
474 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
475 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
476 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
477 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
478 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
479 measureUnit.adoptInstead(MeasureUnit::createInch(status));
480 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
481 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
482 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
483 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
484 measureUnit.adoptInstead(MeasureUnit::createMile(status));
485 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
486 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
487 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
488 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
489 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
490 measureUnit.adoptInstead(MeasureUnit::createYard(status));
491 measureUnit.adoptInstead(MeasureUnit::createLux(status));
492 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
493 measureUnit.adoptInstead(MeasureUnit::createGram(status));
494 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
495 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
496 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
497 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
498 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
499 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
500 measureUnit.adoptInstead(MeasureUnit::createPound(status));
501 measureUnit.adoptInstead(MeasureUnit::createStone(status));
502 measureUnit.adoptInstead(MeasureUnit::createTon(status));
503 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
504 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
505 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
506 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
507 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
508 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
509 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
510 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
511 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
512 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
513 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
514 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
515 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
516 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
517 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
518 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
519 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
520 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
521 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
522 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
523 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
524 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
525 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
526 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
527 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
528 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
529 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
530 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
531 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
532 measureUnit.adoptInstead(MeasureUnit::createCup(status));
533 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
534 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
535 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
536 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
537 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
538 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
539 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
540 measureUnit.adoptInstead(MeasureUnit::createPint(status));
541 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
542 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
543 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
544 assertSuccess("", status);
545 }
546
TestCompatible56()547 void MeasureFormatTest::TestCompatible56() {
548 UErrorCode status = U_ZERO_ERROR;
549 LocalPointer<MeasureUnit> measureUnit;
550 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
551 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
552 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
553 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
554 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
555 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
556 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
557 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
558 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
559 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
560 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
561 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
562 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
563 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
564 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
565 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
566 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
567 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
568 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
569 measureUnit.adoptInstead(MeasureUnit::createBit(status));
570 measureUnit.adoptInstead(MeasureUnit::createByte(status));
571 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
572 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
573 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
574 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
575 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
576 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
577 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
578 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
579 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
580 measureUnit.adoptInstead(MeasureUnit::createDay(status));
581 measureUnit.adoptInstead(MeasureUnit::createHour(status));
582 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
583 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
584 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
585 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
586 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
587 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
588 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
589 measureUnit.adoptInstead(MeasureUnit::createYear(status));
590 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
591 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
592 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
593 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
594 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
595 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
596 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
597 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
598 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
599 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
600 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
601 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
602 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
603 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
604 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
605 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
606 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
607 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
608 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
609 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
610 measureUnit.adoptInstead(MeasureUnit::createInch(status));
611 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
612 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
613 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
614 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
615 measureUnit.adoptInstead(MeasureUnit::createMile(status));
616 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
617 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
618 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
619 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
620 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
621 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
622 measureUnit.adoptInstead(MeasureUnit::createYard(status));
623 measureUnit.adoptInstead(MeasureUnit::createLux(status));
624 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
625 measureUnit.adoptInstead(MeasureUnit::createGram(status));
626 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
627 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
628 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
629 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
630 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
631 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
632 measureUnit.adoptInstead(MeasureUnit::createPound(status));
633 measureUnit.adoptInstead(MeasureUnit::createStone(status));
634 measureUnit.adoptInstead(MeasureUnit::createTon(status));
635 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
636 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
637 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
638 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
639 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
640 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
641 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
642 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
643 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
644 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
645 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
646 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
647 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
648 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
649 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
650 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
651 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
652 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
653 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
654 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
655 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
656 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
657 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
658 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
659 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
660 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
661 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
662 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
663 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
664 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
665 measureUnit.adoptInstead(MeasureUnit::createCup(status));
666 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
667 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
668 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
669 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
670 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
671 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
672 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
673 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
674 measureUnit.adoptInstead(MeasureUnit::createPint(status));
675 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
676 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
677 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
678 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
679 assertSuccess("", status);
680 }
681
TestCompatible57()682 void MeasureFormatTest::TestCompatible57() {
683 UErrorCode status = U_ZERO_ERROR;
684 LocalPointer<MeasureUnit> measureUnit;
685 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
686 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
687 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
688 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
689 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
690 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
691 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
692 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
693 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
694 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
695 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
696 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
697 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
698 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
699 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
700 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
701 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
702 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
703 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
704 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
705 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
706 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
707 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
708 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
709 measureUnit.adoptInstead(MeasureUnit::createBit(status));
710 measureUnit.adoptInstead(MeasureUnit::createByte(status));
711 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
712 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
713 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
714 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
715 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
716 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
717 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
718 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
719 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
720 measureUnit.adoptInstead(MeasureUnit::createDay(status));
721 measureUnit.adoptInstead(MeasureUnit::createHour(status));
722 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
723 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
724 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
725 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
726 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
727 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
728 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
729 measureUnit.adoptInstead(MeasureUnit::createYear(status));
730 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
731 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
732 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
733 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
734 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
735 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
736 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
737 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
738 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
739 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
740 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
741 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
742 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
743 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
744 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
745 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
746 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
747 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
748 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
749 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
750 measureUnit.adoptInstead(MeasureUnit::createInch(status));
751 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
752 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
753 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
754 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
755 measureUnit.adoptInstead(MeasureUnit::createMile(status));
756 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
757 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
758 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
759 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
760 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
761 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
762 measureUnit.adoptInstead(MeasureUnit::createYard(status));
763 measureUnit.adoptInstead(MeasureUnit::createLux(status));
764 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
765 measureUnit.adoptInstead(MeasureUnit::createGram(status));
766 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
767 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
768 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
769 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
770 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
771 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
772 measureUnit.adoptInstead(MeasureUnit::createPound(status));
773 measureUnit.adoptInstead(MeasureUnit::createStone(status));
774 measureUnit.adoptInstead(MeasureUnit::createTon(status));
775 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
776 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
777 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
778 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
779 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
780 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
781 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
782 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
783 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
784 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
785 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
786 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
787 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
788 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
789 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
790 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
791 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
792 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
793 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
794 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
795 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
796 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
797 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
798 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
799 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
800 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
801 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
802 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
803 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
804 measureUnit.adoptInstead(MeasureUnit::createCup(status));
805 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
806 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
807 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
808 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
809 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
810 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
811 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
812 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
813 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
814 measureUnit.adoptInstead(MeasureUnit::createPint(status));
815 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
816 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
817 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
818 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
819 assertSuccess("", status);
820 }
821
TestCompatible58()822 void MeasureFormatTest::TestCompatible58() {
823 UErrorCode status = U_ZERO_ERROR;
824 LocalPointer<MeasureUnit> measureUnit;
825 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
826 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
827 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
828 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
829 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
830 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
831 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
832 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
833 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
834 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
835 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
836 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
837 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
838 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
839 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
840 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
841 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
842 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
843 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
844 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
845 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
846 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
847 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
848 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
849 // measureUnit.adoptInstead(MeasureUnit::createEast(status));
850 // measureUnit.adoptInstead(MeasureUnit::createNorth(status));
851 // measureUnit.adoptInstead(MeasureUnit::createSouth(status));
852 // measureUnit.adoptInstead(MeasureUnit::createWest(status));
853 measureUnit.adoptInstead(MeasureUnit::createBit(status));
854 measureUnit.adoptInstead(MeasureUnit::createByte(status));
855 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
856 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
857 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
858 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
859 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
860 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
861 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
862 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
863 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
864 measureUnit.adoptInstead(MeasureUnit::createDay(status));
865 measureUnit.adoptInstead(MeasureUnit::createHour(status));
866 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
867 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
868 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
869 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
870 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
871 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
872 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
873 measureUnit.adoptInstead(MeasureUnit::createYear(status));
874 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
875 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
876 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
877 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
878 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
879 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
880 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
881 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
882 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
883 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
884 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
885 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
886 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
887 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
888 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
889 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
890 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
891 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
892 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
893 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
894 measureUnit.adoptInstead(MeasureUnit::createInch(status));
895 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
896 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
897 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
898 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
899 measureUnit.adoptInstead(MeasureUnit::createMile(status));
900 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
901 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
902 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
903 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
904 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
905 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
906 measureUnit.adoptInstead(MeasureUnit::createYard(status));
907 measureUnit.adoptInstead(MeasureUnit::createLux(status));
908 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
909 measureUnit.adoptInstead(MeasureUnit::createGram(status));
910 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
911 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
912 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
913 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
914 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
915 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
916 measureUnit.adoptInstead(MeasureUnit::createPound(status));
917 measureUnit.adoptInstead(MeasureUnit::createStone(status));
918 measureUnit.adoptInstead(MeasureUnit::createTon(status));
919 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
920 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
921 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
922 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
923 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
924 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
925 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
926 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
927 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
928 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
929 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
930 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
931 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
932 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
933 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
934 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
935 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
936 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
937 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
938 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
939 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
940 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
941 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
942 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
943 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
944 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
945 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
946 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
947 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
948 measureUnit.adoptInstead(MeasureUnit::createCup(status));
949 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
950 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
951 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
952 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
953 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
954 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
955 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
956 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
957 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
958 measureUnit.adoptInstead(MeasureUnit::createPint(status));
959 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
960 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
961 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
962 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
963 assertSuccess("", status);
964 }
965
TestCompatible59()966 void MeasureFormatTest::TestCompatible59() {
967 UErrorCode status = U_ZERO_ERROR;
968 LocalPointer<MeasureUnit> measureUnit;
969 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
970 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
971 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
972 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
973 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
974 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
975 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
976 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
977 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
978 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
979 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
980 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
981 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
982 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
983 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
984 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
985 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
986 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
987 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
988 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
989 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
990 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
991 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
992 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
993 measureUnit.adoptInstead(MeasureUnit::createBit(status));
994 measureUnit.adoptInstead(MeasureUnit::createByte(status));
995 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
996 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
997 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
998 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
999 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
1000 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
1001 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
1002 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
1003 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
1004 measureUnit.adoptInstead(MeasureUnit::createDay(status));
1005 measureUnit.adoptInstead(MeasureUnit::createHour(status));
1006 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
1007 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
1008 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
1009 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
1010 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
1011 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
1012 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
1013 measureUnit.adoptInstead(MeasureUnit::createYear(status));
1014 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
1015 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
1016 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
1017 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
1018 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
1019 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
1020 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
1021 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
1022 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
1023 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
1024 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
1025 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
1026 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
1027 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
1028 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
1029 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
1030 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
1031 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
1032 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
1033 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
1034 measureUnit.adoptInstead(MeasureUnit::createInch(status));
1035 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
1036 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
1037 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
1038 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
1039 measureUnit.adoptInstead(MeasureUnit::createMile(status));
1040 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
1041 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
1042 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
1043 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
1044 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
1045 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
1046 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
1047 measureUnit.adoptInstead(MeasureUnit::createYard(status));
1048 measureUnit.adoptInstead(MeasureUnit::createLux(status));
1049 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
1050 measureUnit.adoptInstead(MeasureUnit::createGram(status));
1051 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
1052 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
1053 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
1054 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
1055 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
1056 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
1057 measureUnit.adoptInstead(MeasureUnit::createPound(status));
1058 measureUnit.adoptInstead(MeasureUnit::createStone(status));
1059 measureUnit.adoptInstead(MeasureUnit::createTon(status));
1060 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
1061 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
1062 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
1063 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
1064 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
1065 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
1066 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
1067 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
1068 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
1069 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
1070 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
1071 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
1072 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
1073 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
1074 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
1075 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
1076 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
1077 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
1078 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
1079 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
1080 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
1081 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
1082 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
1083 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
1084 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
1085 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
1086 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
1087 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
1088 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
1089 measureUnit.adoptInstead(MeasureUnit::createCup(status));
1090 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
1091 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
1092 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
1093 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
1094 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
1095 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
1096 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
1097 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
1098 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
1099 measureUnit.adoptInstead(MeasureUnit::createPint(status));
1100 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
1101 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
1102 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
1103 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
1104 assertSuccess("", status);
1105 }
1106
1107 // Note that TestCompatible60(), TestCompatible61(), TestCompatible62()
1108 // would be the same as TestCompatible59(), no need to add them.
1109
TestCompatible63()1110 void MeasureFormatTest::TestCompatible63() {
1111 UErrorCode status = U_ZERO_ERROR;
1112 LocalPointer<MeasureUnit> measureUnit;
1113 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
1114 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
1115 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
1116 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
1117 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
1118 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
1119 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
1120 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
1121 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
1122 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
1123 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
1124 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
1125 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
1126 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
1127 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
1128 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
1129 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
1130 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
1131 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
1132 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
1133 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
1134 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
1135 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
1136 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
1137 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
1138 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
1139 measureUnit.adoptInstead(MeasureUnit::createBit(status));
1140 measureUnit.adoptInstead(MeasureUnit::createByte(status));
1141 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
1142 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
1143 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
1144 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
1145 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
1146 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
1147 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
1148 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
1149 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
1150 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
1151 measureUnit.adoptInstead(MeasureUnit::createDay(status));
1152 measureUnit.adoptInstead(MeasureUnit::createHour(status));
1153 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
1154 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
1155 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
1156 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
1157 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
1158 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
1159 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
1160 measureUnit.adoptInstead(MeasureUnit::createYear(status));
1161 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
1162 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
1163 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
1164 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
1165 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
1166 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
1167 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
1168 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
1169 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
1170 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
1171 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
1172 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
1173 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
1174 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
1175 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
1176 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
1177 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
1178 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
1179 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
1180 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
1181 measureUnit.adoptInstead(MeasureUnit::createInch(status));
1182 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
1183 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
1184 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
1185 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
1186 measureUnit.adoptInstead(MeasureUnit::createMile(status));
1187 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
1188 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
1189 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
1190 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
1191 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
1192 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
1193 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
1194 measureUnit.adoptInstead(MeasureUnit::createYard(status));
1195 measureUnit.adoptInstead(MeasureUnit::createLux(status));
1196 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
1197 measureUnit.adoptInstead(MeasureUnit::createGram(status));
1198 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
1199 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
1200 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
1201 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
1202 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
1203 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
1204 measureUnit.adoptInstead(MeasureUnit::createPound(status));
1205 measureUnit.adoptInstead(MeasureUnit::createStone(status));
1206 measureUnit.adoptInstead(MeasureUnit::createTon(status));
1207 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
1208 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
1209 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
1210 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
1211 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
1212 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
1213 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
1214 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
1215 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
1216 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
1217 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
1218 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
1219 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
1220 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
1221 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
1222 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
1223 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
1224 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
1225 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
1226 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
1227 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
1228 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
1229 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
1230 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
1231 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
1232 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
1233 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
1234 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
1235 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
1236 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
1237 measureUnit.adoptInstead(MeasureUnit::createCup(status));
1238 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
1239 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
1240 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
1241 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
1242 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
1243 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
1244 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
1245 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
1246 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
1247 measureUnit.adoptInstead(MeasureUnit::createPint(status));
1248 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
1249 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
1250 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
1251 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
1252 assertSuccess("", status);
1253 }
1254
TestCompatible64()1255 void MeasureFormatTest::TestCompatible64() {
1256 UErrorCode status = U_ZERO_ERROR;
1257 LocalPointer<MeasureUnit> measureUnit;
1258 MeasureUnit measureUnitValue;
1259 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
1260 measureUnitValue = MeasureUnit::getGForce();
1261 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
1262 measureUnitValue = MeasureUnit::getMeterPerSecondSquared();
1263 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
1264 measureUnitValue = MeasureUnit::getArcMinute();
1265 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
1266 measureUnitValue = MeasureUnit::getArcSecond();
1267 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
1268 measureUnitValue = MeasureUnit::getDegree();
1269 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
1270 measureUnitValue = MeasureUnit::getRadian();
1271 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
1272 measureUnitValue = MeasureUnit::getRevolutionAngle();
1273 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
1274 measureUnitValue = MeasureUnit::getAcre();
1275 measureUnit.adoptInstead(MeasureUnit::createDunam(status));
1276 measureUnitValue = MeasureUnit::getDunam();
1277 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
1278 measureUnitValue = MeasureUnit::getHectare();
1279 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
1280 measureUnitValue = MeasureUnit::getSquareCentimeter();
1281 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
1282 measureUnitValue = MeasureUnit::getSquareFoot();
1283 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
1284 measureUnitValue = MeasureUnit::getSquareInch();
1285 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
1286 measureUnitValue = MeasureUnit::getSquareKilometer();
1287 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
1288 measureUnitValue = MeasureUnit::getSquareMeter();
1289 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
1290 measureUnitValue = MeasureUnit::getSquareMile();
1291 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
1292 measureUnitValue = MeasureUnit::getSquareYard();
1293 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
1294 measureUnitValue = MeasureUnit::getKarat();
1295 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
1296 measureUnitValue = MeasureUnit::getMilligramPerDeciliter();
1297 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
1298 measureUnitValue = MeasureUnit::getMillimolePerLiter();
1299 measureUnit.adoptInstead(MeasureUnit::createMole(status));
1300 measureUnitValue = MeasureUnit::getMole();
1301 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
1302 measureUnitValue = MeasureUnit::getPartPerMillion();
1303 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
1304 measureUnitValue = MeasureUnit::getPercent();
1305 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
1306 measureUnitValue = MeasureUnit::getPermille();
1307 measureUnit.adoptInstead(MeasureUnit::createPermyriad(status));
1308 measureUnitValue = MeasureUnit::getPermyriad();
1309 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
1310 measureUnitValue = MeasureUnit::getLiterPer100Kilometers();
1311 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
1312 measureUnitValue = MeasureUnit::getLiterPerKilometer();
1313 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
1314 measureUnitValue = MeasureUnit::getMilePerGallon();
1315 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
1316 measureUnitValue = MeasureUnit::getMilePerGallonImperial();
1317 measureUnit.adoptInstead(MeasureUnit::createBit(status));
1318 measureUnitValue = MeasureUnit::getBit();
1319 measureUnit.adoptInstead(MeasureUnit::createByte(status));
1320 measureUnitValue = MeasureUnit::getByte();
1321 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
1322 measureUnitValue = MeasureUnit::getGigabit();
1323 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
1324 measureUnitValue = MeasureUnit::getGigabyte();
1325 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
1326 measureUnitValue = MeasureUnit::getKilobit();
1327 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
1328 measureUnitValue = MeasureUnit::getKilobyte();
1329 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
1330 measureUnitValue = MeasureUnit::getMegabit();
1331 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
1332 measureUnitValue = MeasureUnit::getMegabyte();
1333 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
1334 measureUnitValue = MeasureUnit::getPetabyte();
1335 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
1336 measureUnitValue = MeasureUnit::getTerabit();
1337 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
1338 measureUnitValue = MeasureUnit::getTerabyte();
1339 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
1340 measureUnitValue = MeasureUnit::getCentury();
1341 measureUnit.adoptInstead(MeasureUnit::createDay(status));
1342 measureUnitValue = MeasureUnit::getDay();
1343 measureUnit.adoptInstead(MeasureUnit::createDayPerson(status));
1344 measureUnitValue = MeasureUnit::getDayPerson();
1345 measureUnit.adoptInstead(MeasureUnit::createHour(status));
1346 measureUnitValue = MeasureUnit::getHour();
1347 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
1348 measureUnitValue = MeasureUnit::getMicrosecond();
1349 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
1350 measureUnitValue = MeasureUnit::getMillisecond();
1351 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
1352 measureUnitValue = MeasureUnit::getMinute();
1353 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
1354 measureUnitValue = MeasureUnit::getMonth();
1355 measureUnit.adoptInstead(MeasureUnit::createMonthPerson(status));
1356 measureUnitValue = MeasureUnit::getMonthPerson();
1357 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
1358 measureUnitValue = MeasureUnit::getNanosecond();
1359 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
1360 measureUnitValue = MeasureUnit::getSecond();
1361 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
1362 measureUnitValue = MeasureUnit::getWeek();
1363 measureUnit.adoptInstead(MeasureUnit::createWeekPerson(status));
1364 measureUnitValue = MeasureUnit::getWeekPerson();
1365 measureUnit.adoptInstead(MeasureUnit::createYear(status));
1366 measureUnitValue = MeasureUnit::getYear();
1367 measureUnit.adoptInstead(MeasureUnit::createYearPerson(status));
1368 measureUnitValue = MeasureUnit::getYearPerson();
1369 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
1370 measureUnitValue = MeasureUnit::getAmpere();
1371 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
1372 measureUnitValue = MeasureUnit::getMilliampere();
1373 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
1374 measureUnitValue = MeasureUnit::getOhm();
1375 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
1376 measureUnitValue = MeasureUnit::getVolt();
1377 measureUnit.adoptInstead(MeasureUnit::createBritishThermalUnit(status));
1378 measureUnitValue = MeasureUnit::getBritishThermalUnit();
1379 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
1380 measureUnitValue = MeasureUnit::getCalorie();
1381 measureUnit.adoptInstead(MeasureUnit::createElectronvolt(status));
1382 measureUnitValue = MeasureUnit::getElectronvolt();
1383 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
1384 measureUnitValue = MeasureUnit::getFoodcalorie();
1385 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
1386 measureUnitValue = MeasureUnit::getJoule();
1387 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
1388 measureUnitValue = MeasureUnit::getKilocalorie();
1389 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
1390 measureUnitValue = MeasureUnit::getKilojoule();
1391 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
1392 measureUnitValue = MeasureUnit::getKilowattHour();
1393 measureUnit.adoptInstead(MeasureUnit::createNewton(status));
1394 measureUnitValue = MeasureUnit::getNewton();
1395 measureUnit.adoptInstead(MeasureUnit::createPoundForce(status));
1396 measureUnitValue = MeasureUnit::getPoundForce();
1397 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
1398 measureUnitValue = MeasureUnit::getGigahertz();
1399 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
1400 measureUnitValue = MeasureUnit::getHertz();
1401 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
1402 measureUnitValue = MeasureUnit::getKilohertz();
1403 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
1404 measureUnitValue = MeasureUnit::getMegahertz();
1405 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
1406 measureUnitValue = MeasureUnit::getAstronomicalUnit();
1407 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
1408 measureUnitValue = MeasureUnit::getCentimeter();
1409 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
1410 measureUnitValue = MeasureUnit::getDecimeter();
1411 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
1412 measureUnitValue = MeasureUnit::getFathom();
1413 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
1414 measureUnitValue = MeasureUnit::getFoot();
1415 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
1416 measureUnitValue = MeasureUnit::getFurlong();
1417 measureUnit.adoptInstead(MeasureUnit::createInch(status));
1418 measureUnitValue = MeasureUnit::getInch();
1419 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
1420 measureUnitValue = MeasureUnit::getKilometer();
1421 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
1422 measureUnitValue = MeasureUnit::getLightYear();
1423 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
1424 measureUnitValue = MeasureUnit::getMeter();
1425 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
1426 measureUnitValue = MeasureUnit::getMicrometer();
1427 measureUnit.adoptInstead(MeasureUnit::createMile(status));
1428 measureUnitValue = MeasureUnit::getMile();
1429 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
1430 measureUnitValue = MeasureUnit::getMileScandinavian();
1431 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
1432 measureUnitValue = MeasureUnit::getMillimeter();
1433 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
1434 measureUnitValue = MeasureUnit::getNanometer();
1435 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
1436 measureUnitValue = MeasureUnit::getNauticalMile();
1437 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
1438 measureUnitValue = MeasureUnit::getParsec();
1439 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
1440 measureUnitValue = MeasureUnit::getPicometer();
1441 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
1442 measureUnitValue = MeasureUnit::getPoint();
1443 measureUnit.adoptInstead(MeasureUnit::createSolarRadius(status));
1444 measureUnitValue = MeasureUnit::getSolarRadius();
1445 measureUnit.adoptInstead(MeasureUnit::createYard(status));
1446 measureUnitValue = MeasureUnit::getYard();
1447 measureUnit.adoptInstead(MeasureUnit::createLux(status));
1448 measureUnitValue = MeasureUnit::getLux();
1449 measureUnit.adoptInstead(MeasureUnit::createSolarLuminosity(status));
1450 measureUnitValue = MeasureUnit::getSolarLuminosity();
1451 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
1452 measureUnitValue = MeasureUnit::getCarat();
1453 measureUnit.adoptInstead(MeasureUnit::createDalton(status));
1454 measureUnitValue = MeasureUnit::getDalton();
1455 measureUnit.adoptInstead(MeasureUnit::createEarthMass(status));
1456 measureUnitValue = MeasureUnit::getEarthMass();
1457 measureUnit.adoptInstead(MeasureUnit::createGram(status));
1458 measureUnitValue = MeasureUnit::getGram();
1459 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
1460 measureUnitValue = MeasureUnit::getKilogram();
1461 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
1462 measureUnitValue = MeasureUnit::getMetricTon();
1463 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
1464 measureUnitValue = MeasureUnit::getMicrogram();
1465 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
1466 measureUnitValue = MeasureUnit::getMilligram();
1467 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
1468 measureUnitValue = MeasureUnit::getOunce();
1469 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
1470 measureUnitValue = MeasureUnit::getOunceTroy();
1471 measureUnit.adoptInstead(MeasureUnit::createPound(status));
1472 measureUnitValue = MeasureUnit::getPound();
1473 measureUnit.adoptInstead(MeasureUnit::createSolarMass(status));
1474 measureUnitValue = MeasureUnit::getSolarMass();
1475 measureUnit.adoptInstead(MeasureUnit::createStone(status));
1476 measureUnitValue = MeasureUnit::getStone();
1477 measureUnit.adoptInstead(MeasureUnit::createTon(status));
1478 measureUnitValue = MeasureUnit::getTon();
1479 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
1480 measureUnitValue = MeasureUnit::getGigawatt();
1481 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
1482 measureUnitValue = MeasureUnit::getHorsepower();
1483 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
1484 measureUnitValue = MeasureUnit::getKilowatt();
1485 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
1486 measureUnitValue = MeasureUnit::getMegawatt();
1487 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
1488 measureUnitValue = MeasureUnit::getMilliwatt();
1489 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
1490 measureUnitValue = MeasureUnit::getWatt();
1491 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
1492 measureUnitValue = MeasureUnit::getAtmosphere();
1493 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
1494 measureUnitValue = MeasureUnit::getHectopascal();
1495 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
1496 measureUnitValue = MeasureUnit::getInchHg();
1497 measureUnit.adoptInstead(MeasureUnit::createKilopascal(status));
1498 measureUnitValue = MeasureUnit::getKilopascal();
1499 measureUnit.adoptInstead(MeasureUnit::createMegapascal(status));
1500 measureUnitValue = MeasureUnit::getMegapascal();
1501 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
1502 measureUnitValue = MeasureUnit::getMillibar();
1503 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
1504 measureUnitValue = MeasureUnit::getMillimeterOfMercury();
1505 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
1506 measureUnitValue = MeasureUnit::getPoundPerSquareInch();
1507 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
1508 measureUnitValue = MeasureUnit::getKilometerPerHour();
1509 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
1510 measureUnitValue = MeasureUnit::getKnot();
1511 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
1512 measureUnitValue = MeasureUnit::getMeterPerSecond();
1513 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
1514 measureUnitValue = MeasureUnit::getMilePerHour();
1515 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
1516 measureUnitValue = MeasureUnit::getCelsius();
1517 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
1518 measureUnitValue = MeasureUnit::getFahrenheit();
1519 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
1520 measureUnitValue = MeasureUnit::getGenericTemperature();
1521 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
1522 measureUnitValue = MeasureUnit::getKelvin();
1523 measureUnit.adoptInstead(MeasureUnit::createNewtonMeter(status));
1524 measureUnitValue = MeasureUnit::getNewtonMeter();
1525 measureUnit.adoptInstead(MeasureUnit::createPoundFoot(status));
1526 measureUnitValue = MeasureUnit::getPoundFoot();
1527 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
1528 measureUnitValue = MeasureUnit::getAcreFoot();
1529 measureUnit.adoptInstead(MeasureUnit::createBarrel(status));
1530 measureUnitValue = MeasureUnit::getBarrel();
1531 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
1532 measureUnitValue = MeasureUnit::getBushel();
1533 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
1534 measureUnitValue = MeasureUnit::getCentiliter();
1535 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
1536 measureUnitValue = MeasureUnit::getCubicCentimeter();
1537 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
1538 measureUnitValue = MeasureUnit::getCubicFoot();
1539 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
1540 measureUnitValue = MeasureUnit::getCubicInch();
1541 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
1542 measureUnitValue = MeasureUnit::getCubicKilometer();
1543 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
1544 measureUnitValue = MeasureUnit::getCubicMeter();
1545 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
1546 measureUnitValue = MeasureUnit::getCubicMile();
1547 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
1548 measureUnitValue = MeasureUnit::getCubicYard();
1549 measureUnit.adoptInstead(MeasureUnit::createCup(status));
1550 measureUnitValue = MeasureUnit::getCup();
1551 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
1552 measureUnitValue = MeasureUnit::getCupMetric();
1553 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
1554 measureUnitValue = MeasureUnit::getDeciliter();
1555 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
1556 measureUnitValue = MeasureUnit::getFluidOunce();
1557 measureUnit.adoptInstead(MeasureUnit::createFluidOunceImperial(status));
1558 measureUnitValue = MeasureUnit::getFluidOunceImperial();
1559 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
1560 measureUnitValue = MeasureUnit::getGallon();
1561 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
1562 measureUnitValue = MeasureUnit::getGallonImperial();
1563 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
1564 measureUnitValue = MeasureUnit::getHectoliter();
1565 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
1566 measureUnitValue = MeasureUnit::getLiter();
1567 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
1568 measureUnitValue = MeasureUnit::getMegaliter();
1569 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
1570 measureUnitValue = MeasureUnit::getMilliliter();
1571 measureUnit.adoptInstead(MeasureUnit::createPint(status));
1572 measureUnitValue = MeasureUnit::getPint();
1573 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
1574 measureUnitValue = MeasureUnit::getPintMetric();
1575 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
1576 measureUnitValue = MeasureUnit::getQuart();
1577 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
1578 measureUnitValue = MeasureUnit::getTablespoon();
1579 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
1580 measureUnitValue = MeasureUnit::getTeaspoon();
1581 assertSuccess("", status);
1582 }
1583
TestCompatible65()1584 void MeasureFormatTest::TestCompatible65() {
1585 UErrorCode status = U_ZERO_ERROR;
1586 LocalPointer<MeasureUnit> measureUnit;
1587 MeasureUnit measureUnitValue;
1588 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
1589 measureUnitValue = MeasureUnit::getGForce();
1590 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
1591 measureUnitValue = MeasureUnit::getMeterPerSecondSquared();
1592 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
1593 measureUnitValue = MeasureUnit::getArcMinute();
1594 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
1595 measureUnitValue = MeasureUnit::getArcSecond();
1596 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
1597 measureUnitValue = MeasureUnit::getDegree();
1598 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
1599 measureUnitValue = MeasureUnit::getRadian();
1600 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
1601 measureUnitValue = MeasureUnit::getRevolutionAngle();
1602 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
1603 measureUnitValue = MeasureUnit::getAcre();
1604 measureUnit.adoptInstead(MeasureUnit::createDunam(status));
1605 measureUnitValue = MeasureUnit::getDunam();
1606 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
1607 measureUnitValue = MeasureUnit::getHectare();
1608 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
1609 measureUnitValue = MeasureUnit::getSquareCentimeter();
1610 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
1611 measureUnitValue = MeasureUnit::getSquareFoot();
1612 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
1613 measureUnitValue = MeasureUnit::getSquareInch();
1614 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
1615 measureUnitValue = MeasureUnit::getSquareKilometer();
1616 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
1617 measureUnitValue = MeasureUnit::getSquareMeter();
1618 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
1619 measureUnitValue = MeasureUnit::getSquareMile();
1620 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
1621 measureUnitValue = MeasureUnit::getSquareYard();
1622 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
1623 measureUnitValue = MeasureUnit::getKarat();
1624 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
1625 measureUnitValue = MeasureUnit::getMilligramPerDeciliter();
1626 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
1627 measureUnitValue = MeasureUnit::getMillimolePerLiter();
1628 measureUnit.adoptInstead(MeasureUnit::createMole(status));
1629 measureUnitValue = MeasureUnit::getMole();
1630 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
1631 measureUnitValue = MeasureUnit::getPartPerMillion();
1632 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
1633 measureUnitValue = MeasureUnit::getPercent();
1634 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
1635 measureUnitValue = MeasureUnit::getPermille();
1636 measureUnit.adoptInstead(MeasureUnit::createPermyriad(status));
1637 measureUnitValue = MeasureUnit::getPermyriad();
1638 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
1639 measureUnitValue = MeasureUnit::getLiterPer100Kilometers();
1640 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
1641 measureUnitValue = MeasureUnit::getLiterPerKilometer();
1642 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
1643 measureUnitValue = MeasureUnit::getMilePerGallon();
1644 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
1645 measureUnitValue = MeasureUnit::getMilePerGallonImperial();
1646 measureUnit.adoptInstead(MeasureUnit::createBit(status));
1647 measureUnitValue = MeasureUnit::getBit();
1648 measureUnit.adoptInstead(MeasureUnit::createByte(status));
1649 measureUnitValue = MeasureUnit::getByte();
1650 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
1651 measureUnitValue = MeasureUnit::getGigabit();
1652 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
1653 measureUnitValue = MeasureUnit::getGigabyte();
1654 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
1655 measureUnitValue = MeasureUnit::getKilobit();
1656 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
1657 measureUnitValue = MeasureUnit::getKilobyte();
1658 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
1659 measureUnitValue = MeasureUnit::getMegabit();
1660 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
1661 measureUnitValue = MeasureUnit::getMegabyte();
1662 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
1663 measureUnitValue = MeasureUnit::getPetabyte();
1664 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
1665 measureUnitValue = MeasureUnit::getTerabit();
1666 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
1667 measureUnitValue = MeasureUnit::getTerabyte();
1668 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
1669 measureUnitValue = MeasureUnit::getCentury();
1670 measureUnit.adoptInstead(MeasureUnit::createDay(status));
1671 measureUnitValue = MeasureUnit::getDay();
1672 measureUnit.adoptInstead(MeasureUnit::createDayPerson(status));
1673 measureUnitValue = MeasureUnit::getDayPerson();
1674 measureUnit.adoptInstead(MeasureUnit::createDecade(status));
1675 measureUnitValue = MeasureUnit::getDecade();
1676 measureUnit.adoptInstead(MeasureUnit::createHour(status));
1677 measureUnitValue = MeasureUnit::getHour();
1678 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
1679 measureUnitValue = MeasureUnit::getMicrosecond();
1680 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
1681 measureUnitValue = MeasureUnit::getMillisecond();
1682 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
1683 measureUnitValue = MeasureUnit::getMinute();
1684 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
1685 measureUnitValue = MeasureUnit::getMonth();
1686 measureUnit.adoptInstead(MeasureUnit::createMonthPerson(status));
1687 measureUnitValue = MeasureUnit::getMonthPerson();
1688 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
1689 measureUnitValue = MeasureUnit::getNanosecond();
1690 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
1691 measureUnitValue = MeasureUnit::getSecond();
1692 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
1693 measureUnitValue = MeasureUnit::getWeek();
1694 measureUnit.adoptInstead(MeasureUnit::createWeekPerson(status));
1695 measureUnitValue = MeasureUnit::getWeekPerson();
1696 measureUnit.adoptInstead(MeasureUnit::createYear(status));
1697 measureUnitValue = MeasureUnit::getYear();
1698 measureUnit.adoptInstead(MeasureUnit::createYearPerson(status));
1699 measureUnitValue = MeasureUnit::getYearPerson();
1700 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
1701 measureUnitValue = MeasureUnit::getAmpere();
1702 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
1703 measureUnitValue = MeasureUnit::getMilliampere();
1704 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
1705 measureUnitValue = MeasureUnit::getOhm();
1706 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
1707 measureUnitValue = MeasureUnit::getVolt();
1708 measureUnit.adoptInstead(MeasureUnit::createBritishThermalUnit(status));
1709 measureUnitValue = MeasureUnit::getBritishThermalUnit();
1710 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
1711 measureUnitValue = MeasureUnit::getCalorie();
1712 measureUnit.adoptInstead(MeasureUnit::createElectronvolt(status));
1713 measureUnitValue = MeasureUnit::getElectronvolt();
1714 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
1715 measureUnitValue = MeasureUnit::getFoodcalorie();
1716 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
1717 measureUnitValue = MeasureUnit::getJoule();
1718 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
1719 measureUnitValue = MeasureUnit::getKilocalorie();
1720 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
1721 measureUnitValue = MeasureUnit::getKilojoule();
1722 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
1723 measureUnitValue = MeasureUnit::getKilowattHour();
1724 measureUnit.adoptInstead(MeasureUnit::createThermUs(status));
1725 measureUnitValue = MeasureUnit::getThermUs();
1726 measureUnit.adoptInstead(MeasureUnit::createNewton(status));
1727 measureUnitValue = MeasureUnit::getNewton();
1728 measureUnit.adoptInstead(MeasureUnit::createPoundForce(status));
1729 measureUnitValue = MeasureUnit::getPoundForce();
1730 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
1731 measureUnitValue = MeasureUnit::getGigahertz();
1732 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
1733 measureUnitValue = MeasureUnit::getHertz();
1734 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
1735 measureUnitValue = MeasureUnit::getKilohertz();
1736 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
1737 measureUnitValue = MeasureUnit::getMegahertz();
1738 measureUnit.adoptInstead(MeasureUnit::createDotPerCentimeter(status));
1739 measureUnitValue = MeasureUnit::getDotPerCentimeter();
1740 measureUnit.adoptInstead(MeasureUnit::createDotPerInch(status));
1741 measureUnitValue = MeasureUnit::getDotPerInch();
1742 measureUnit.adoptInstead(MeasureUnit::createEm(status));
1743 measureUnitValue = MeasureUnit::getEm();
1744 measureUnit.adoptInstead(MeasureUnit::createMegapixel(status));
1745 measureUnitValue = MeasureUnit::getMegapixel();
1746 measureUnit.adoptInstead(MeasureUnit::createPixel(status));
1747 measureUnitValue = MeasureUnit::getPixel();
1748 measureUnit.adoptInstead(MeasureUnit::createPixelPerCentimeter(status));
1749 measureUnitValue = MeasureUnit::getPixelPerCentimeter();
1750 measureUnit.adoptInstead(MeasureUnit::createPixelPerInch(status));
1751 measureUnitValue = MeasureUnit::getPixelPerInch();
1752 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
1753 measureUnitValue = MeasureUnit::getAstronomicalUnit();
1754 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
1755 measureUnitValue = MeasureUnit::getCentimeter();
1756 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
1757 measureUnitValue = MeasureUnit::getDecimeter();
1758 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
1759 measureUnitValue = MeasureUnit::getFathom();
1760 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
1761 measureUnitValue = MeasureUnit::getFoot();
1762 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
1763 measureUnitValue = MeasureUnit::getFurlong();
1764 measureUnit.adoptInstead(MeasureUnit::createInch(status));
1765 measureUnitValue = MeasureUnit::getInch();
1766 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
1767 measureUnitValue = MeasureUnit::getKilometer();
1768 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
1769 measureUnitValue = MeasureUnit::getLightYear();
1770 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
1771 measureUnitValue = MeasureUnit::getMeter();
1772 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
1773 measureUnitValue = MeasureUnit::getMicrometer();
1774 measureUnit.adoptInstead(MeasureUnit::createMile(status));
1775 measureUnitValue = MeasureUnit::getMile();
1776 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
1777 measureUnitValue = MeasureUnit::getMileScandinavian();
1778 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
1779 measureUnitValue = MeasureUnit::getMillimeter();
1780 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
1781 measureUnitValue = MeasureUnit::getNanometer();
1782 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
1783 measureUnitValue = MeasureUnit::getNauticalMile();
1784 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
1785 measureUnitValue = MeasureUnit::getParsec();
1786 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
1787 measureUnitValue = MeasureUnit::getPicometer();
1788 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
1789 measureUnitValue = MeasureUnit::getPoint();
1790 measureUnit.adoptInstead(MeasureUnit::createSolarRadius(status));
1791 measureUnitValue = MeasureUnit::getSolarRadius();
1792 measureUnit.adoptInstead(MeasureUnit::createYard(status));
1793 measureUnitValue = MeasureUnit::getYard();
1794 measureUnit.adoptInstead(MeasureUnit::createLux(status));
1795 measureUnitValue = MeasureUnit::getLux();
1796 measureUnit.adoptInstead(MeasureUnit::createSolarLuminosity(status));
1797 measureUnitValue = MeasureUnit::getSolarLuminosity();
1798 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
1799 measureUnitValue = MeasureUnit::getCarat();
1800 measureUnit.adoptInstead(MeasureUnit::createDalton(status));
1801 measureUnitValue = MeasureUnit::getDalton();
1802 measureUnit.adoptInstead(MeasureUnit::createEarthMass(status));
1803 measureUnitValue = MeasureUnit::getEarthMass();
1804 measureUnit.adoptInstead(MeasureUnit::createGram(status));
1805 measureUnitValue = MeasureUnit::getGram();
1806 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
1807 measureUnitValue = MeasureUnit::getKilogram();
1808 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
1809 measureUnitValue = MeasureUnit::getMetricTon();
1810 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
1811 measureUnitValue = MeasureUnit::getMicrogram();
1812 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
1813 measureUnitValue = MeasureUnit::getMilligram();
1814 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
1815 measureUnitValue = MeasureUnit::getOunce();
1816 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
1817 measureUnitValue = MeasureUnit::getOunceTroy();
1818 measureUnit.adoptInstead(MeasureUnit::createPound(status));
1819 measureUnitValue = MeasureUnit::getPound();
1820 measureUnit.adoptInstead(MeasureUnit::createSolarMass(status));
1821 measureUnitValue = MeasureUnit::getSolarMass();
1822 measureUnit.adoptInstead(MeasureUnit::createStone(status));
1823 measureUnitValue = MeasureUnit::getStone();
1824 measureUnit.adoptInstead(MeasureUnit::createTon(status));
1825 measureUnitValue = MeasureUnit::getTon();
1826 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
1827 measureUnitValue = MeasureUnit::getGigawatt();
1828 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
1829 measureUnitValue = MeasureUnit::getHorsepower();
1830 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
1831 measureUnitValue = MeasureUnit::getKilowatt();
1832 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
1833 measureUnitValue = MeasureUnit::getMegawatt();
1834 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
1835 measureUnitValue = MeasureUnit::getMilliwatt();
1836 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
1837 measureUnitValue = MeasureUnit::getWatt();
1838 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
1839 measureUnitValue = MeasureUnit::getAtmosphere();
1840 measureUnit.adoptInstead(MeasureUnit::createBar(status));
1841 measureUnitValue = MeasureUnit::getBar();
1842 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
1843 measureUnitValue = MeasureUnit::getHectopascal();
1844 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
1845 measureUnitValue = MeasureUnit::getInchHg();
1846 measureUnit.adoptInstead(MeasureUnit::createKilopascal(status));
1847 measureUnitValue = MeasureUnit::getKilopascal();
1848 measureUnit.adoptInstead(MeasureUnit::createMegapascal(status));
1849 measureUnitValue = MeasureUnit::getMegapascal();
1850 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
1851 measureUnitValue = MeasureUnit::getMillibar();
1852 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
1853 measureUnitValue = MeasureUnit::getMillimeterOfMercury();
1854 measureUnit.adoptInstead(MeasureUnit::createPascal(status));
1855 measureUnitValue = MeasureUnit::getPascal();
1856 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
1857 measureUnitValue = MeasureUnit::getPoundPerSquareInch();
1858 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
1859 measureUnitValue = MeasureUnit::getKilometerPerHour();
1860 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
1861 measureUnitValue = MeasureUnit::getKnot();
1862 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
1863 measureUnitValue = MeasureUnit::getMeterPerSecond();
1864 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
1865 measureUnitValue = MeasureUnit::getMilePerHour();
1866 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
1867 measureUnitValue = MeasureUnit::getCelsius();
1868 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
1869 measureUnitValue = MeasureUnit::getFahrenheit();
1870 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
1871 measureUnitValue = MeasureUnit::getGenericTemperature();
1872 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
1873 measureUnitValue = MeasureUnit::getKelvin();
1874 measureUnit.adoptInstead(MeasureUnit::createNewtonMeter(status));
1875 measureUnitValue = MeasureUnit::getNewtonMeter();
1876 measureUnit.adoptInstead(MeasureUnit::createPoundFoot(status));
1877 measureUnitValue = MeasureUnit::getPoundFoot();
1878 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
1879 measureUnitValue = MeasureUnit::getAcreFoot();
1880 measureUnit.adoptInstead(MeasureUnit::createBarrel(status));
1881 measureUnitValue = MeasureUnit::getBarrel();
1882 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
1883 measureUnitValue = MeasureUnit::getBushel();
1884 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
1885 measureUnitValue = MeasureUnit::getCentiliter();
1886 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
1887 measureUnitValue = MeasureUnit::getCubicCentimeter();
1888 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
1889 measureUnitValue = MeasureUnit::getCubicFoot();
1890 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
1891 measureUnitValue = MeasureUnit::getCubicInch();
1892 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
1893 measureUnitValue = MeasureUnit::getCubicKilometer();
1894 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
1895 measureUnitValue = MeasureUnit::getCubicMeter();
1896 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
1897 measureUnitValue = MeasureUnit::getCubicMile();
1898 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
1899 measureUnitValue = MeasureUnit::getCubicYard();
1900 measureUnit.adoptInstead(MeasureUnit::createCup(status));
1901 measureUnitValue = MeasureUnit::getCup();
1902 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
1903 measureUnitValue = MeasureUnit::getCupMetric();
1904 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
1905 measureUnitValue = MeasureUnit::getDeciliter();
1906 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
1907 measureUnitValue = MeasureUnit::getFluidOunce();
1908 measureUnit.adoptInstead(MeasureUnit::createFluidOunceImperial(status));
1909 measureUnitValue = MeasureUnit::getFluidOunceImperial();
1910 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
1911 measureUnitValue = MeasureUnit::getGallon();
1912 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
1913 measureUnitValue = MeasureUnit::getGallonImperial();
1914 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
1915 measureUnitValue = MeasureUnit::getHectoliter();
1916 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
1917 measureUnitValue = MeasureUnit::getLiter();
1918 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
1919 measureUnitValue = MeasureUnit::getMegaliter();
1920 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
1921 measureUnitValue = MeasureUnit::getMilliliter();
1922 measureUnit.adoptInstead(MeasureUnit::createPint(status));
1923 measureUnitValue = MeasureUnit::getPint();
1924 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
1925 measureUnitValue = MeasureUnit::getPintMetric();
1926 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
1927 measureUnitValue = MeasureUnit::getQuart();
1928 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
1929 measureUnitValue = MeasureUnit::getTablespoon();
1930 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
1931 measureUnitValue = MeasureUnit::getTeaspoon();
1932 assertSuccess("", status);
1933 }
1934
1935 // Note that TestCompatible66(), TestCompatible67()
1936 // would be the same as TestCompatible65(), no need to add them.
1937
TestCompatible68()1938 void MeasureFormatTest::TestCompatible68() {
1939 UErrorCode status = U_ZERO_ERROR;
1940 LocalPointer<MeasureUnit> measureUnit;
1941 MeasureUnit measureUnitValue;
1942 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
1943 measureUnitValue = MeasureUnit::getGForce();
1944 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
1945 measureUnitValue = MeasureUnit::getMeterPerSecondSquared();
1946 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
1947 measureUnitValue = MeasureUnit::getArcMinute();
1948 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
1949 measureUnitValue = MeasureUnit::getArcSecond();
1950 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
1951 measureUnitValue = MeasureUnit::getDegree();
1952 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
1953 measureUnitValue = MeasureUnit::getRadian();
1954 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
1955 measureUnitValue = MeasureUnit::getRevolutionAngle();
1956 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
1957 measureUnitValue = MeasureUnit::getAcre();
1958 measureUnit.adoptInstead(MeasureUnit::createDunam(status));
1959 measureUnitValue = MeasureUnit::getDunam();
1960 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
1961 measureUnitValue = MeasureUnit::getHectare();
1962 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
1963 measureUnitValue = MeasureUnit::getSquareCentimeter();
1964 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
1965 measureUnitValue = MeasureUnit::getSquareFoot();
1966 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
1967 measureUnitValue = MeasureUnit::getSquareInch();
1968 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
1969 measureUnitValue = MeasureUnit::getSquareKilometer();
1970 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
1971 measureUnitValue = MeasureUnit::getSquareMeter();
1972 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
1973 measureUnitValue = MeasureUnit::getSquareMile();
1974 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
1975 measureUnitValue = MeasureUnit::getSquareYard();
1976 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
1977 measureUnitValue = MeasureUnit::getKarat();
1978 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
1979 measureUnitValue = MeasureUnit::getMilligramPerDeciliter();
1980 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
1981 measureUnitValue = MeasureUnit::getMillimolePerLiter();
1982 measureUnit.adoptInstead(MeasureUnit::createMole(status));
1983 measureUnitValue = MeasureUnit::getMole();
1984 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
1985 measureUnitValue = MeasureUnit::getPercent();
1986 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
1987 measureUnitValue = MeasureUnit::getPermille();
1988 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
1989 measureUnitValue = MeasureUnit::getPartPerMillion();
1990 measureUnit.adoptInstead(MeasureUnit::createPermyriad(status));
1991 measureUnitValue = MeasureUnit::getPermyriad();
1992 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
1993 measureUnitValue = MeasureUnit::getLiterPer100Kilometers();
1994 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
1995 measureUnitValue = MeasureUnit::getLiterPerKilometer();
1996 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
1997 measureUnitValue = MeasureUnit::getMilePerGallon();
1998 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
1999 measureUnitValue = MeasureUnit::getMilePerGallonImperial();
2000 measureUnit.adoptInstead(MeasureUnit::createBit(status));
2001 measureUnitValue = MeasureUnit::getBit();
2002 measureUnit.adoptInstead(MeasureUnit::createByte(status));
2003 measureUnitValue = MeasureUnit::getByte();
2004 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
2005 measureUnitValue = MeasureUnit::getGigabit();
2006 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
2007 measureUnitValue = MeasureUnit::getGigabyte();
2008 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
2009 measureUnitValue = MeasureUnit::getKilobit();
2010 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
2011 measureUnitValue = MeasureUnit::getKilobyte();
2012 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
2013 measureUnitValue = MeasureUnit::getMegabit();
2014 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
2015 measureUnitValue = MeasureUnit::getMegabyte();
2016 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
2017 measureUnitValue = MeasureUnit::getPetabyte();
2018 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
2019 measureUnitValue = MeasureUnit::getTerabit();
2020 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
2021 measureUnitValue = MeasureUnit::getTerabyte();
2022 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
2023 measureUnitValue = MeasureUnit::getCentury();
2024 measureUnit.adoptInstead(MeasureUnit::createDay(status));
2025 measureUnitValue = MeasureUnit::getDay();
2026 measureUnit.adoptInstead(MeasureUnit::createDayPerson(status));
2027 measureUnitValue = MeasureUnit::getDayPerson();
2028 measureUnit.adoptInstead(MeasureUnit::createDecade(status));
2029 measureUnitValue = MeasureUnit::getDecade();
2030 measureUnit.adoptInstead(MeasureUnit::createHour(status));
2031 measureUnitValue = MeasureUnit::getHour();
2032 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
2033 measureUnitValue = MeasureUnit::getMicrosecond();
2034 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
2035 measureUnitValue = MeasureUnit::getMillisecond();
2036 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
2037 measureUnitValue = MeasureUnit::getMinute();
2038 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
2039 measureUnitValue = MeasureUnit::getMonth();
2040 measureUnit.adoptInstead(MeasureUnit::createMonthPerson(status));
2041 measureUnitValue = MeasureUnit::getMonthPerson();
2042 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
2043 measureUnitValue = MeasureUnit::getNanosecond();
2044 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
2045 measureUnitValue = MeasureUnit::getSecond();
2046 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
2047 measureUnitValue = MeasureUnit::getWeek();
2048 measureUnit.adoptInstead(MeasureUnit::createWeekPerson(status));
2049 measureUnitValue = MeasureUnit::getWeekPerson();
2050 measureUnit.adoptInstead(MeasureUnit::createYear(status));
2051 measureUnitValue = MeasureUnit::getYear();
2052 measureUnit.adoptInstead(MeasureUnit::createYearPerson(status));
2053 measureUnitValue = MeasureUnit::getYearPerson();
2054 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
2055 measureUnitValue = MeasureUnit::getAmpere();
2056 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
2057 measureUnitValue = MeasureUnit::getMilliampere();
2058 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
2059 measureUnitValue = MeasureUnit::getOhm();
2060 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
2061 measureUnitValue = MeasureUnit::getVolt();
2062 measureUnit.adoptInstead(MeasureUnit::createBritishThermalUnit(status));
2063 measureUnitValue = MeasureUnit::getBritishThermalUnit();
2064 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
2065 measureUnitValue = MeasureUnit::getCalorie();
2066 measureUnit.adoptInstead(MeasureUnit::createElectronvolt(status));
2067 measureUnitValue = MeasureUnit::getElectronvolt();
2068 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
2069 measureUnitValue = MeasureUnit::getFoodcalorie();
2070 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
2071 measureUnitValue = MeasureUnit::getJoule();
2072 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
2073 measureUnitValue = MeasureUnit::getKilocalorie();
2074 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
2075 measureUnitValue = MeasureUnit::getKilojoule();
2076 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
2077 measureUnitValue = MeasureUnit::getKilowattHour();
2078 measureUnit.adoptInstead(MeasureUnit::createThermUs(status));
2079 measureUnitValue = MeasureUnit::getThermUs();
2080 measureUnit.adoptInstead(MeasureUnit::createNewton(status));
2081 measureUnitValue = MeasureUnit::getNewton();
2082 measureUnit.adoptInstead(MeasureUnit::createPoundForce(status));
2083 measureUnitValue = MeasureUnit::getPoundForce();
2084 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
2085 measureUnitValue = MeasureUnit::getGigahertz();
2086 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
2087 measureUnitValue = MeasureUnit::getHertz();
2088 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
2089 measureUnitValue = MeasureUnit::getKilohertz();
2090 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
2091 measureUnitValue = MeasureUnit::getMegahertz();
2092 measureUnit.adoptInstead(MeasureUnit::createDot(status));
2093 measureUnitValue = MeasureUnit::getDot();
2094 measureUnit.adoptInstead(MeasureUnit::createDotPerCentimeter(status));
2095 measureUnitValue = MeasureUnit::getDotPerCentimeter();
2096 measureUnit.adoptInstead(MeasureUnit::createDotPerInch(status));
2097 measureUnitValue = MeasureUnit::getDotPerInch();
2098 measureUnit.adoptInstead(MeasureUnit::createEm(status));
2099 measureUnitValue = MeasureUnit::getEm();
2100 measureUnit.adoptInstead(MeasureUnit::createMegapixel(status));
2101 measureUnitValue = MeasureUnit::getMegapixel();
2102 measureUnit.adoptInstead(MeasureUnit::createPixel(status));
2103 measureUnitValue = MeasureUnit::getPixel();
2104 measureUnit.adoptInstead(MeasureUnit::createPixelPerCentimeter(status));
2105 measureUnitValue = MeasureUnit::getPixelPerCentimeter();
2106 measureUnit.adoptInstead(MeasureUnit::createPixelPerInch(status));
2107 measureUnitValue = MeasureUnit::getPixelPerInch();
2108 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
2109 measureUnitValue = MeasureUnit::getAstronomicalUnit();
2110 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
2111 measureUnitValue = MeasureUnit::getCentimeter();
2112 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
2113 measureUnitValue = MeasureUnit::getDecimeter();
2114 measureUnit.adoptInstead(MeasureUnit::createEarthRadius(status));
2115 measureUnitValue = MeasureUnit::getEarthRadius();
2116 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
2117 measureUnitValue = MeasureUnit::getFathom();
2118 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
2119 measureUnitValue = MeasureUnit::getFoot();
2120 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
2121 measureUnitValue = MeasureUnit::getFurlong();
2122 measureUnit.adoptInstead(MeasureUnit::createInch(status));
2123 measureUnitValue = MeasureUnit::getInch();
2124 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
2125 measureUnitValue = MeasureUnit::getKilometer();
2126 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
2127 measureUnitValue = MeasureUnit::getLightYear();
2128 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
2129 measureUnitValue = MeasureUnit::getMeter();
2130 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
2131 measureUnitValue = MeasureUnit::getMicrometer();
2132 measureUnit.adoptInstead(MeasureUnit::createMile(status));
2133 measureUnitValue = MeasureUnit::getMile();
2134 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
2135 measureUnitValue = MeasureUnit::getMileScandinavian();
2136 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
2137 measureUnitValue = MeasureUnit::getMillimeter();
2138 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
2139 measureUnitValue = MeasureUnit::getNanometer();
2140 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
2141 measureUnitValue = MeasureUnit::getNauticalMile();
2142 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
2143 measureUnitValue = MeasureUnit::getParsec();
2144 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
2145 measureUnitValue = MeasureUnit::getPicometer();
2146 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
2147 measureUnitValue = MeasureUnit::getPoint();
2148 measureUnit.adoptInstead(MeasureUnit::createSolarRadius(status));
2149 measureUnitValue = MeasureUnit::getSolarRadius();
2150 measureUnit.adoptInstead(MeasureUnit::createYard(status));
2151 measureUnitValue = MeasureUnit::getYard();
2152 measureUnit.adoptInstead(MeasureUnit::createCandela(status));
2153 measureUnitValue = MeasureUnit::getCandela();
2154 measureUnit.adoptInstead(MeasureUnit::createLumen(status));
2155 measureUnitValue = MeasureUnit::getLumen();
2156 measureUnit.adoptInstead(MeasureUnit::createLux(status));
2157 measureUnitValue = MeasureUnit::getLux();
2158 measureUnit.adoptInstead(MeasureUnit::createSolarLuminosity(status));
2159 measureUnitValue = MeasureUnit::getSolarLuminosity();
2160 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
2161 measureUnitValue = MeasureUnit::getCarat();
2162 measureUnit.adoptInstead(MeasureUnit::createDalton(status));
2163 measureUnitValue = MeasureUnit::getDalton();
2164 measureUnit.adoptInstead(MeasureUnit::createEarthMass(status));
2165 measureUnitValue = MeasureUnit::getEarthMass();
2166 measureUnit.adoptInstead(MeasureUnit::createGrain(status));
2167 measureUnitValue = MeasureUnit::getGrain();
2168 measureUnit.adoptInstead(MeasureUnit::createGram(status));
2169 measureUnitValue = MeasureUnit::getGram();
2170 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
2171 measureUnitValue = MeasureUnit::getKilogram();
2172 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
2173 measureUnitValue = MeasureUnit::getMetricTon();
2174 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
2175 measureUnitValue = MeasureUnit::getMicrogram();
2176 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
2177 measureUnitValue = MeasureUnit::getMilligram();
2178 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
2179 measureUnitValue = MeasureUnit::getOunce();
2180 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
2181 measureUnitValue = MeasureUnit::getOunceTroy();
2182 measureUnit.adoptInstead(MeasureUnit::createPound(status));
2183 measureUnitValue = MeasureUnit::getPound();
2184 measureUnit.adoptInstead(MeasureUnit::createSolarMass(status));
2185 measureUnitValue = MeasureUnit::getSolarMass();
2186 measureUnit.adoptInstead(MeasureUnit::createStone(status));
2187 measureUnitValue = MeasureUnit::getStone();
2188 measureUnit.adoptInstead(MeasureUnit::createTon(status));
2189 measureUnitValue = MeasureUnit::getTon();
2190 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
2191 measureUnitValue = MeasureUnit::getGigawatt();
2192 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
2193 measureUnitValue = MeasureUnit::getHorsepower();
2194 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
2195 measureUnitValue = MeasureUnit::getKilowatt();
2196 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
2197 measureUnitValue = MeasureUnit::getMegawatt();
2198 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
2199 measureUnitValue = MeasureUnit::getMilliwatt();
2200 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
2201 measureUnitValue = MeasureUnit::getWatt();
2202 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
2203 measureUnitValue = MeasureUnit::getAtmosphere();
2204 measureUnit.adoptInstead(MeasureUnit::createBar(status));
2205 measureUnitValue = MeasureUnit::getBar();
2206 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
2207 measureUnitValue = MeasureUnit::getHectopascal();
2208 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
2209 measureUnitValue = MeasureUnit::getInchHg();
2210 measureUnit.adoptInstead(MeasureUnit::createKilopascal(status));
2211 measureUnitValue = MeasureUnit::getKilopascal();
2212 measureUnit.adoptInstead(MeasureUnit::createMegapascal(status));
2213 measureUnitValue = MeasureUnit::getMegapascal();
2214 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
2215 measureUnitValue = MeasureUnit::getMillibar();
2216 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
2217 measureUnitValue = MeasureUnit::getMillimeterOfMercury();
2218 measureUnit.adoptInstead(MeasureUnit::createPascal(status));
2219 measureUnitValue = MeasureUnit::getPascal();
2220 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
2221 measureUnitValue = MeasureUnit::getPoundPerSquareInch();
2222 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
2223 measureUnitValue = MeasureUnit::getKilometerPerHour();
2224 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
2225 measureUnitValue = MeasureUnit::getKnot();
2226 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
2227 measureUnitValue = MeasureUnit::getMeterPerSecond();
2228 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
2229 measureUnitValue = MeasureUnit::getMilePerHour();
2230 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
2231 measureUnitValue = MeasureUnit::getCelsius();
2232 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
2233 measureUnitValue = MeasureUnit::getFahrenheit();
2234 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
2235 measureUnitValue = MeasureUnit::getGenericTemperature();
2236 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
2237 measureUnitValue = MeasureUnit::getKelvin();
2238 measureUnit.adoptInstead(MeasureUnit::createNewtonMeter(status));
2239 measureUnitValue = MeasureUnit::getNewtonMeter();
2240 measureUnit.adoptInstead(MeasureUnit::createPoundFoot(status));
2241 measureUnitValue = MeasureUnit::getPoundFoot();
2242 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
2243 measureUnitValue = MeasureUnit::getAcreFoot();
2244 measureUnit.adoptInstead(MeasureUnit::createBarrel(status));
2245 measureUnitValue = MeasureUnit::getBarrel();
2246 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
2247 measureUnitValue = MeasureUnit::getBushel();
2248 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
2249 measureUnitValue = MeasureUnit::getCentiliter();
2250 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
2251 measureUnitValue = MeasureUnit::getCubicCentimeter();
2252 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
2253 measureUnitValue = MeasureUnit::getCubicFoot();
2254 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
2255 measureUnitValue = MeasureUnit::getCubicInch();
2256 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
2257 measureUnitValue = MeasureUnit::getCubicKilometer();
2258 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
2259 measureUnitValue = MeasureUnit::getCubicMeter();
2260 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
2261 measureUnitValue = MeasureUnit::getCubicMile();
2262 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
2263 measureUnitValue = MeasureUnit::getCubicYard();
2264 measureUnit.adoptInstead(MeasureUnit::createCup(status));
2265 measureUnitValue = MeasureUnit::getCup();
2266 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
2267 measureUnitValue = MeasureUnit::getCupMetric();
2268 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
2269 measureUnitValue = MeasureUnit::getDeciliter();
2270 measureUnit.adoptInstead(MeasureUnit::createDessertSpoon(status));
2271 measureUnitValue = MeasureUnit::getDessertSpoon();
2272 measureUnit.adoptInstead(MeasureUnit::createDessertSpoonImperial(status));
2273 measureUnitValue = MeasureUnit::getDessertSpoonImperial();
2274 measureUnit.adoptInstead(MeasureUnit::createDram(status));
2275 measureUnitValue = MeasureUnit::getDram();
2276 measureUnit.adoptInstead(MeasureUnit::createDrop(status));
2277 measureUnitValue = MeasureUnit::getDrop();
2278 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
2279 measureUnitValue = MeasureUnit::getFluidOunce();
2280 measureUnit.adoptInstead(MeasureUnit::createFluidOunceImperial(status));
2281 measureUnitValue = MeasureUnit::getFluidOunceImperial();
2282 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
2283 measureUnitValue = MeasureUnit::getGallon();
2284 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
2285 measureUnitValue = MeasureUnit::getGallonImperial();
2286 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
2287 measureUnitValue = MeasureUnit::getHectoliter();
2288 measureUnit.adoptInstead(MeasureUnit::createJigger(status));
2289 measureUnitValue = MeasureUnit::getJigger();
2290 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
2291 measureUnitValue = MeasureUnit::getLiter();
2292 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
2293 measureUnitValue = MeasureUnit::getMegaliter();
2294 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
2295 measureUnitValue = MeasureUnit::getMilliliter();
2296 measureUnit.adoptInstead(MeasureUnit::createPinch(status));
2297 measureUnitValue = MeasureUnit::getPinch();
2298 measureUnit.adoptInstead(MeasureUnit::createPint(status));
2299 measureUnitValue = MeasureUnit::getPint();
2300 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
2301 measureUnitValue = MeasureUnit::getPintMetric();
2302 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
2303 measureUnitValue = MeasureUnit::getQuart();
2304 measureUnit.adoptInstead(MeasureUnit::createQuartImperial(status));
2305 measureUnitValue = MeasureUnit::getQuartImperial();
2306 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
2307 measureUnitValue = MeasureUnit::getTablespoon();
2308 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
2309 measureUnitValue = MeasureUnit::getTeaspoon();
2310 assertSuccess("", status);
2311 }
2312
TestCompatible69()2313 void MeasureFormatTest::TestCompatible69() {
2314 UErrorCode status = U_ZERO_ERROR;
2315 LocalPointer<MeasureUnit> measureUnit;
2316 MeasureUnit measureUnitValue;
2317 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
2318 measureUnitValue = MeasureUnit::getGForce();
2319 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
2320 measureUnitValue = MeasureUnit::getMeterPerSecondSquared();
2321 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
2322 measureUnitValue = MeasureUnit::getArcMinute();
2323 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
2324 measureUnitValue = MeasureUnit::getArcSecond();
2325 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
2326 measureUnitValue = MeasureUnit::getDegree();
2327 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
2328 measureUnitValue = MeasureUnit::getRadian();
2329 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
2330 measureUnitValue = MeasureUnit::getRevolutionAngle();
2331 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
2332 measureUnitValue = MeasureUnit::getAcre();
2333 measureUnit.adoptInstead(MeasureUnit::createDunam(status));
2334 measureUnitValue = MeasureUnit::getDunam();
2335 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
2336 measureUnitValue = MeasureUnit::getHectare();
2337 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
2338 measureUnitValue = MeasureUnit::getSquareCentimeter();
2339 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
2340 measureUnitValue = MeasureUnit::getSquareFoot();
2341 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
2342 measureUnitValue = MeasureUnit::getSquareInch();
2343 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
2344 measureUnitValue = MeasureUnit::getSquareKilometer();
2345 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
2346 measureUnitValue = MeasureUnit::getSquareMeter();
2347 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
2348 measureUnitValue = MeasureUnit::getSquareMile();
2349 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
2350 measureUnitValue = MeasureUnit::getSquareYard();
2351 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
2352 measureUnitValue = MeasureUnit::getKarat();
2353 measureUnit.adoptInstead(MeasureUnit::createMilligramOfglucosePerDeciliter(status));
2354 measureUnitValue = MeasureUnit::getMilligramOfglucosePerDeciliter();
2355 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
2356 measureUnitValue = MeasureUnit::getMilligramPerDeciliter();
2357 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
2358 measureUnitValue = MeasureUnit::getMillimolePerLiter();
2359 measureUnit.adoptInstead(MeasureUnit::createMole(status));
2360 measureUnitValue = MeasureUnit::getMole();
2361 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
2362 measureUnitValue = MeasureUnit::getPercent();
2363 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
2364 measureUnitValue = MeasureUnit::getPermille();
2365 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
2366 measureUnitValue = MeasureUnit::getPartPerMillion();
2367 measureUnit.adoptInstead(MeasureUnit::createPermyriad(status));
2368 measureUnitValue = MeasureUnit::getPermyriad();
2369 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
2370 measureUnitValue = MeasureUnit::getLiterPer100Kilometers();
2371 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
2372 measureUnitValue = MeasureUnit::getLiterPerKilometer();
2373 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
2374 measureUnitValue = MeasureUnit::getMilePerGallon();
2375 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
2376 measureUnitValue = MeasureUnit::getMilePerGallonImperial();
2377 measureUnit.adoptInstead(MeasureUnit::createBit(status));
2378 measureUnitValue = MeasureUnit::getBit();
2379 measureUnit.adoptInstead(MeasureUnit::createByte(status));
2380 measureUnitValue = MeasureUnit::getByte();
2381 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
2382 measureUnitValue = MeasureUnit::getGigabit();
2383 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
2384 measureUnitValue = MeasureUnit::getGigabyte();
2385 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
2386 measureUnitValue = MeasureUnit::getKilobit();
2387 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
2388 measureUnitValue = MeasureUnit::getKilobyte();
2389 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
2390 measureUnitValue = MeasureUnit::getMegabit();
2391 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
2392 measureUnitValue = MeasureUnit::getMegabyte();
2393 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
2394 measureUnitValue = MeasureUnit::getPetabyte();
2395 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
2396 measureUnitValue = MeasureUnit::getTerabit();
2397 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
2398 measureUnitValue = MeasureUnit::getTerabyte();
2399 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
2400 measureUnitValue = MeasureUnit::getCentury();
2401 measureUnit.adoptInstead(MeasureUnit::createDay(status));
2402 measureUnitValue = MeasureUnit::getDay();
2403 measureUnit.adoptInstead(MeasureUnit::createDayPerson(status));
2404 measureUnitValue = MeasureUnit::getDayPerson();
2405 measureUnit.adoptInstead(MeasureUnit::createDecade(status));
2406 measureUnitValue = MeasureUnit::getDecade();
2407 measureUnit.adoptInstead(MeasureUnit::createHour(status));
2408 measureUnitValue = MeasureUnit::getHour();
2409 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
2410 measureUnitValue = MeasureUnit::getMicrosecond();
2411 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
2412 measureUnitValue = MeasureUnit::getMillisecond();
2413 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
2414 measureUnitValue = MeasureUnit::getMinute();
2415 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
2416 measureUnitValue = MeasureUnit::getMonth();
2417 measureUnit.adoptInstead(MeasureUnit::createMonthPerson(status));
2418 measureUnitValue = MeasureUnit::getMonthPerson();
2419 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
2420 measureUnitValue = MeasureUnit::getNanosecond();
2421 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
2422 measureUnitValue = MeasureUnit::getSecond();
2423 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
2424 measureUnitValue = MeasureUnit::getWeek();
2425 measureUnit.adoptInstead(MeasureUnit::createWeekPerson(status));
2426 measureUnitValue = MeasureUnit::getWeekPerson();
2427 measureUnit.adoptInstead(MeasureUnit::createYear(status));
2428 measureUnitValue = MeasureUnit::getYear();
2429 measureUnit.adoptInstead(MeasureUnit::createYearPerson(status));
2430 measureUnitValue = MeasureUnit::getYearPerson();
2431 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
2432 measureUnitValue = MeasureUnit::getAmpere();
2433 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
2434 measureUnitValue = MeasureUnit::getMilliampere();
2435 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
2436 measureUnitValue = MeasureUnit::getOhm();
2437 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
2438 measureUnitValue = MeasureUnit::getVolt();
2439 measureUnit.adoptInstead(MeasureUnit::createBritishThermalUnit(status));
2440 measureUnitValue = MeasureUnit::getBritishThermalUnit();
2441 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
2442 measureUnitValue = MeasureUnit::getCalorie();
2443 measureUnit.adoptInstead(MeasureUnit::createElectronvolt(status));
2444 measureUnitValue = MeasureUnit::getElectronvolt();
2445 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
2446 measureUnitValue = MeasureUnit::getFoodcalorie();
2447 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
2448 measureUnitValue = MeasureUnit::getJoule();
2449 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
2450 measureUnitValue = MeasureUnit::getKilocalorie();
2451 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
2452 measureUnitValue = MeasureUnit::getKilojoule();
2453 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
2454 measureUnitValue = MeasureUnit::getKilowattHour();
2455 measureUnit.adoptInstead(MeasureUnit::createThermUs(status));
2456 measureUnitValue = MeasureUnit::getThermUs();
2457 measureUnit.adoptInstead(MeasureUnit::createNewton(status));
2458 measureUnitValue = MeasureUnit::getNewton();
2459 measureUnit.adoptInstead(MeasureUnit::createPoundForce(status));
2460 measureUnitValue = MeasureUnit::getPoundForce();
2461 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
2462 measureUnitValue = MeasureUnit::getGigahertz();
2463 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
2464 measureUnitValue = MeasureUnit::getHertz();
2465 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
2466 measureUnitValue = MeasureUnit::getKilohertz();
2467 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
2468 measureUnitValue = MeasureUnit::getMegahertz();
2469 measureUnit.adoptInstead(MeasureUnit::createDot(status));
2470 measureUnitValue = MeasureUnit::getDot();
2471 measureUnit.adoptInstead(MeasureUnit::createDotPerCentimeter(status));
2472 measureUnitValue = MeasureUnit::getDotPerCentimeter();
2473 measureUnit.adoptInstead(MeasureUnit::createDotPerInch(status));
2474 measureUnitValue = MeasureUnit::getDotPerInch();
2475 measureUnit.adoptInstead(MeasureUnit::createEm(status));
2476 measureUnitValue = MeasureUnit::getEm();
2477 measureUnit.adoptInstead(MeasureUnit::createMegapixel(status));
2478 measureUnitValue = MeasureUnit::getMegapixel();
2479 measureUnit.adoptInstead(MeasureUnit::createPixel(status));
2480 measureUnitValue = MeasureUnit::getPixel();
2481 measureUnit.adoptInstead(MeasureUnit::createPixelPerCentimeter(status));
2482 measureUnitValue = MeasureUnit::getPixelPerCentimeter();
2483 measureUnit.adoptInstead(MeasureUnit::createPixelPerInch(status));
2484 measureUnitValue = MeasureUnit::getPixelPerInch();
2485 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
2486 measureUnitValue = MeasureUnit::getAstronomicalUnit();
2487 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
2488 measureUnitValue = MeasureUnit::getCentimeter();
2489 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
2490 measureUnitValue = MeasureUnit::getDecimeter();
2491 measureUnit.adoptInstead(MeasureUnit::createEarthRadius(status));
2492 measureUnitValue = MeasureUnit::getEarthRadius();
2493 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
2494 measureUnitValue = MeasureUnit::getFathom();
2495 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
2496 measureUnitValue = MeasureUnit::getFoot();
2497 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
2498 measureUnitValue = MeasureUnit::getFurlong();
2499 measureUnit.adoptInstead(MeasureUnit::createInch(status));
2500 measureUnitValue = MeasureUnit::getInch();
2501 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
2502 measureUnitValue = MeasureUnit::getKilometer();
2503 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
2504 measureUnitValue = MeasureUnit::getLightYear();
2505 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
2506 measureUnitValue = MeasureUnit::getMeter();
2507 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
2508 measureUnitValue = MeasureUnit::getMicrometer();
2509 measureUnit.adoptInstead(MeasureUnit::createMile(status));
2510 measureUnitValue = MeasureUnit::getMile();
2511 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
2512 measureUnitValue = MeasureUnit::getMileScandinavian();
2513 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
2514 measureUnitValue = MeasureUnit::getMillimeter();
2515 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
2516 measureUnitValue = MeasureUnit::getNanometer();
2517 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
2518 measureUnitValue = MeasureUnit::getNauticalMile();
2519 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
2520 measureUnitValue = MeasureUnit::getParsec();
2521 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
2522 measureUnitValue = MeasureUnit::getPicometer();
2523 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
2524 measureUnitValue = MeasureUnit::getPoint();
2525 measureUnit.adoptInstead(MeasureUnit::createSolarRadius(status));
2526 measureUnitValue = MeasureUnit::getSolarRadius();
2527 measureUnit.adoptInstead(MeasureUnit::createYard(status));
2528 measureUnitValue = MeasureUnit::getYard();
2529 measureUnit.adoptInstead(MeasureUnit::createCandela(status));
2530 measureUnitValue = MeasureUnit::getCandela();
2531 measureUnit.adoptInstead(MeasureUnit::createLumen(status));
2532 measureUnitValue = MeasureUnit::getLumen();
2533 measureUnit.adoptInstead(MeasureUnit::createLux(status));
2534 measureUnitValue = MeasureUnit::getLux();
2535 measureUnit.adoptInstead(MeasureUnit::createSolarLuminosity(status));
2536 measureUnitValue = MeasureUnit::getSolarLuminosity();
2537 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
2538 measureUnitValue = MeasureUnit::getCarat();
2539 measureUnit.adoptInstead(MeasureUnit::createDalton(status));
2540 measureUnitValue = MeasureUnit::getDalton();
2541 measureUnit.adoptInstead(MeasureUnit::createEarthMass(status));
2542 measureUnitValue = MeasureUnit::getEarthMass();
2543 measureUnit.adoptInstead(MeasureUnit::createGrain(status));
2544 measureUnitValue = MeasureUnit::getGrain();
2545 measureUnit.adoptInstead(MeasureUnit::createGram(status));
2546 measureUnitValue = MeasureUnit::getGram();
2547 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
2548 measureUnitValue = MeasureUnit::getKilogram();
2549 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
2550 measureUnitValue = MeasureUnit::getMetricTon();
2551 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
2552 measureUnitValue = MeasureUnit::getMicrogram();
2553 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
2554 measureUnitValue = MeasureUnit::getMilligram();
2555 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
2556 measureUnitValue = MeasureUnit::getOunce();
2557 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
2558 measureUnitValue = MeasureUnit::getOunceTroy();
2559 measureUnit.adoptInstead(MeasureUnit::createPound(status));
2560 measureUnitValue = MeasureUnit::getPound();
2561 measureUnit.adoptInstead(MeasureUnit::createSolarMass(status));
2562 measureUnitValue = MeasureUnit::getSolarMass();
2563 measureUnit.adoptInstead(MeasureUnit::createStone(status));
2564 measureUnitValue = MeasureUnit::getStone();
2565 measureUnit.adoptInstead(MeasureUnit::createTon(status));
2566 measureUnitValue = MeasureUnit::getTon();
2567 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
2568 measureUnitValue = MeasureUnit::getGigawatt();
2569 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
2570 measureUnitValue = MeasureUnit::getHorsepower();
2571 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
2572 measureUnitValue = MeasureUnit::getKilowatt();
2573 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
2574 measureUnitValue = MeasureUnit::getMegawatt();
2575 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
2576 measureUnitValue = MeasureUnit::getMilliwatt();
2577 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
2578 measureUnitValue = MeasureUnit::getWatt();
2579 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
2580 measureUnitValue = MeasureUnit::getAtmosphere();
2581 measureUnit.adoptInstead(MeasureUnit::createBar(status));
2582 measureUnitValue = MeasureUnit::getBar();
2583 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
2584 measureUnitValue = MeasureUnit::getHectopascal();
2585 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
2586 measureUnitValue = MeasureUnit::getInchHg();
2587 measureUnit.adoptInstead(MeasureUnit::createKilopascal(status));
2588 measureUnitValue = MeasureUnit::getKilopascal();
2589 measureUnit.adoptInstead(MeasureUnit::createMegapascal(status));
2590 measureUnitValue = MeasureUnit::getMegapascal();
2591 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
2592 measureUnitValue = MeasureUnit::getMillibar();
2593 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
2594 measureUnitValue = MeasureUnit::getMillimeterOfMercury();
2595 measureUnit.adoptInstead(MeasureUnit::createPascal(status));
2596 measureUnitValue = MeasureUnit::getPascal();
2597 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
2598 measureUnitValue = MeasureUnit::getPoundPerSquareInch();
2599 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
2600 measureUnitValue = MeasureUnit::getKilometerPerHour();
2601 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
2602 measureUnitValue = MeasureUnit::getKnot();
2603 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
2604 measureUnitValue = MeasureUnit::getMeterPerSecond();
2605 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
2606 measureUnitValue = MeasureUnit::getMilePerHour();
2607 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
2608 measureUnitValue = MeasureUnit::getCelsius();
2609 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
2610 measureUnitValue = MeasureUnit::getFahrenheit();
2611 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
2612 measureUnitValue = MeasureUnit::getGenericTemperature();
2613 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
2614 measureUnitValue = MeasureUnit::getKelvin();
2615 measureUnit.adoptInstead(MeasureUnit::createNewtonMeter(status));
2616 measureUnitValue = MeasureUnit::getNewtonMeter();
2617 measureUnit.adoptInstead(MeasureUnit::createPoundFoot(status));
2618 measureUnitValue = MeasureUnit::getPoundFoot();
2619 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
2620 measureUnitValue = MeasureUnit::getAcreFoot();
2621 measureUnit.adoptInstead(MeasureUnit::createBarrel(status));
2622 measureUnitValue = MeasureUnit::getBarrel();
2623 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
2624 measureUnitValue = MeasureUnit::getBushel();
2625 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
2626 measureUnitValue = MeasureUnit::getCentiliter();
2627 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
2628 measureUnitValue = MeasureUnit::getCubicCentimeter();
2629 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
2630 measureUnitValue = MeasureUnit::getCubicFoot();
2631 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
2632 measureUnitValue = MeasureUnit::getCubicInch();
2633 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
2634 measureUnitValue = MeasureUnit::getCubicKilometer();
2635 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
2636 measureUnitValue = MeasureUnit::getCubicMeter();
2637 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
2638 measureUnitValue = MeasureUnit::getCubicMile();
2639 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
2640 measureUnitValue = MeasureUnit::getCubicYard();
2641 measureUnit.adoptInstead(MeasureUnit::createCup(status));
2642 measureUnitValue = MeasureUnit::getCup();
2643 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
2644 measureUnitValue = MeasureUnit::getCupMetric();
2645 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
2646 measureUnitValue = MeasureUnit::getDeciliter();
2647 measureUnit.adoptInstead(MeasureUnit::createDessertSpoon(status));
2648 measureUnitValue = MeasureUnit::getDessertSpoon();
2649 measureUnit.adoptInstead(MeasureUnit::createDessertSpoonImperial(status));
2650 measureUnitValue = MeasureUnit::getDessertSpoonImperial();
2651 measureUnit.adoptInstead(MeasureUnit::createDram(status));
2652 measureUnitValue = MeasureUnit::getDram();
2653 measureUnit.adoptInstead(MeasureUnit::createDrop(status));
2654 measureUnitValue = MeasureUnit::getDrop();
2655 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
2656 measureUnitValue = MeasureUnit::getFluidOunce();
2657 measureUnit.adoptInstead(MeasureUnit::createFluidOunceImperial(status));
2658 measureUnitValue = MeasureUnit::getFluidOunceImperial();
2659 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
2660 measureUnitValue = MeasureUnit::getGallon();
2661 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
2662 measureUnitValue = MeasureUnit::getGallonImperial();
2663 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
2664 measureUnitValue = MeasureUnit::getHectoliter();
2665 measureUnit.adoptInstead(MeasureUnit::createJigger(status));
2666 measureUnitValue = MeasureUnit::getJigger();
2667 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
2668 measureUnitValue = MeasureUnit::getLiter();
2669 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
2670 measureUnitValue = MeasureUnit::getMegaliter();
2671 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
2672 measureUnitValue = MeasureUnit::getMilliliter();
2673 measureUnit.adoptInstead(MeasureUnit::createPinch(status));
2674 measureUnitValue = MeasureUnit::getPinch();
2675 measureUnit.adoptInstead(MeasureUnit::createPint(status));
2676 measureUnitValue = MeasureUnit::getPint();
2677 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
2678 measureUnitValue = MeasureUnit::getPintMetric();
2679 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
2680 measureUnitValue = MeasureUnit::getQuart();
2681 measureUnit.adoptInstead(MeasureUnit::createQuartImperial(status));
2682 measureUnitValue = MeasureUnit::getQuartImperial();
2683 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
2684 measureUnitValue = MeasureUnit::getTablespoon();
2685 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
2686 measureUnitValue = MeasureUnit::getTeaspoon();
2687 assertSuccess("", status);
2688 }
2689
TestCompatible70()2690 void MeasureFormatTest::TestCompatible70() { // TestCompatible71 would be identical
2691 UErrorCode status = U_ZERO_ERROR;
2692 LocalPointer<MeasureUnit> measureUnit;
2693 MeasureUnit measureUnitValue;
2694 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
2695 measureUnitValue = MeasureUnit::getGForce();
2696 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
2697 measureUnitValue = MeasureUnit::getMeterPerSecondSquared();
2698 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
2699 measureUnitValue = MeasureUnit::getArcMinute();
2700 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
2701 measureUnitValue = MeasureUnit::getArcSecond();
2702 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
2703 measureUnitValue = MeasureUnit::getDegree();
2704 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
2705 measureUnitValue = MeasureUnit::getRadian();
2706 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
2707 measureUnitValue = MeasureUnit::getRevolutionAngle();
2708 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
2709 measureUnitValue = MeasureUnit::getAcre();
2710 measureUnit.adoptInstead(MeasureUnit::createDunam(status));
2711 measureUnitValue = MeasureUnit::getDunam();
2712 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
2713 measureUnitValue = MeasureUnit::getHectare();
2714 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
2715 measureUnitValue = MeasureUnit::getSquareCentimeter();
2716 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
2717 measureUnitValue = MeasureUnit::getSquareFoot();
2718 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
2719 measureUnitValue = MeasureUnit::getSquareInch();
2720 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
2721 measureUnitValue = MeasureUnit::getSquareKilometer();
2722 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
2723 measureUnitValue = MeasureUnit::getSquareMeter();
2724 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
2725 measureUnitValue = MeasureUnit::getSquareMile();
2726 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
2727 measureUnitValue = MeasureUnit::getSquareYard();
2728 measureUnit.adoptInstead(MeasureUnit::createItem(status));
2729 measureUnitValue = MeasureUnit::getItem();
2730 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
2731 measureUnitValue = MeasureUnit::getKarat();
2732 measureUnit.adoptInstead(MeasureUnit::createMilligramOfglucosePerDeciliter(status));
2733 measureUnitValue = MeasureUnit::getMilligramOfglucosePerDeciliter();
2734 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
2735 measureUnitValue = MeasureUnit::getMilligramPerDeciliter();
2736 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
2737 measureUnitValue = MeasureUnit::getMillimolePerLiter();
2738 measureUnit.adoptInstead(MeasureUnit::createMole(status));
2739 measureUnitValue = MeasureUnit::getMole();
2740 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
2741 measureUnitValue = MeasureUnit::getPercent();
2742 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
2743 measureUnitValue = MeasureUnit::getPermille();
2744 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
2745 measureUnitValue = MeasureUnit::getPartPerMillion();
2746 measureUnit.adoptInstead(MeasureUnit::createPermyriad(status));
2747 measureUnitValue = MeasureUnit::getPermyriad();
2748 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
2749 measureUnitValue = MeasureUnit::getLiterPer100Kilometers();
2750 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
2751 measureUnitValue = MeasureUnit::getLiterPerKilometer();
2752 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
2753 measureUnitValue = MeasureUnit::getMilePerGallon();
2754 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
2755 measureUnitValue = MeasureUnit::getMilePerGallonImperial();
2756 measureUnit.adoptInstead(MeasureUnit::createBit(status));
2757 measureUnitValue = MeasureUnit::getBit();
2758 measureUnit.adoptInstead(MeasureUnit::createByte(status));
2759 measureUnitValue = MeasureUnit::getByte();
2760 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
2761 measureUnitValue = MeasureUnit::getGigabit();
2762 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
2763 measureUnitValue = MeasureUnit::getGigabyte();
2764 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
2765 measureUnitValue = MeasureUnit::getKilobit();
2766 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
2767 measureUnitValue = MeasureUnit::getKilobyte();
2768 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
2769 measureUnitValue = MeasureUnit::getMegabit();
2770 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
2771 measureUnitValue = MeasureUnit::getMegabyte();
2772 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
2773 measureUnitValue = MeasureUnit::getPetabyte();
2774 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
2775 measureUnitValue = MeasureUnit::getTerabit();
2776 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
2777 measureUnitValue = MeasureUnit::getTerabyte();
2778 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
2779 measureUnitValue = MeasureUnit::getCentury();
2780 measureUnit.adoptInstead(MeasureUnit::createDay(status));
2781 measureUnitValue = MeasureUnit::getDay();
2782 measureUnit.adoptInstead(MeasureUnit::createDayPerson(status));
2783 measureUnitValue = MeasureUnit::getDayPerson();
2784 measureUnit.adoptInstead(MeasureUnit::createDecade(status));
2785 measureUnitValue = MeasureUnit::getDecade();
2786 measureUnit.adoptInstead(MeasureUnit::createHour(status));
2787 measureUnitValue = MeasureUnit::getHour();
2788 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
2789 measureUnitValue = MeasureUnit::getMicrosecond();
2790 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
2791 measureUnitValue = MeasureUnit::getMillisecond();
2792 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
2793 measureUnitValue = MeasureUnit::getMinute();
2794 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
2795 measureUnitValue = MeasureUnit::getMonth();
2796 measureUnit.adoptInstead(MeasureUnit::createMonthPerson(status));
2797 measureUnitValue = MeasureUnit::getMonthPerson();
2798 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
2799 measureUnitValue = MeasureUnit::getNanosecond();
2800 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
2801 measureUnitValue = MeasureUnit::getSecond();
2802 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
2803 measureUnitValue = MeasureUnit::getWeek();
2804 measureUnit.adoptInstead(MeasureUnit::createWeekPerson(status));
2805 measureUnitValue = MeasureUnit::getWeekPerson();
2806 measureUnit.adoptInstead(MeasureUnit::createYear(status));
2807 measureUnitValue = MeasureUnit::getYear();
2808 measureUnit.adoptInstead(MeasureUnit::createYearPerson(status));
2809 measureUnitValue = MeasureUnit::getYearPerson();
2810 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
2811 measureUnitValue = MeasureUnit::getAmpere();
2812 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
2813 measureUnitValue = MeasureUnit::getMilliampere();
2814 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
2815 measureUnitValue = MeasureUnit::getOhm();
2816 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
2817 measureUnitValue = MeasureUnit::getVolt();
2818 measureUnit.adoptInstead(MeasureUnit::createBritishThermalUnit(status));
2819 measureUnitValue = MeasureUnit::getBritishThermalUnit();
2820 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
2821 measureUnitValue = MeasureUnit::getCalorie();
2822 measureUnit.adoptInstead(MeasureUnit::createElectronvolt(status));
2823 measureUnitValue = MeasureUnit::getElectronvolt();
2824 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
2825 measureUnitValue = MeasureUnit::getFoodcalorie();
2826 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
2827 measureUnitValue = MeasureUnit::getJoule();
2828 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
2829 measureUnitValue = MeasureUnit::getKilocalorie();
2830 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
2831 measureUnitValue = MeasureUnit::getKilojoule();
2832 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
2833 measureUnitValue = MeasureUnit::getKilowattHour();
2834 measureUnit.adoptInstead(MeasureUnit::createThermUs(status));
2835 measureUnitValue = MeasureUnit::getThermUs();
2836 measureUnit.adoptInstead(MeasureUnit::createKilowattHourPer100Kilometer(status));
2837 measureUnitValue = MeasureUnit::getKilowattHourPer100Kilometer();
2838 measureUnit.adoptInstead(MeasureUnit::createNewton(status));
2839 measureUnitValue = MeasureUnit::getNewton();
2840 measureUnit.adoptInstead(MeasureUnit::createPoundForce(status));
2841 measureUnitValue = MeasureUnit::getPoundForce();
2842 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
2843 measureUnitValue = MeasureUnit::getGigahertz();
2844 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
2845 measureUnitValue = MeasureUnit::getHertz();
2846 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
2847 measureUnitValue = MeasureUnit::getKilohertz();
2848 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
2849 measureUnitValue = MeasureUnit::getMegahertz();
2850 measureUnit.adoptInstead(MeasureUnit::createDot(status));
2851 measureUnitValue = MeasureUnit::getDot();
2852 measureUnit.adoptInstead(MeasureUnit::createDotPerCentimeter(status));
2853 measureUnitValue = MeasureUnit::getDotPerCentimeter();
2854 measureUnit.adoptInstead(MeasureUnit::createDotPerInch(status));
2855 measureUnitValue = MeasureUnit::getDotPerInch();
2856 measureUnit.adoptInstead(MeasureUnit::createEm(status));
2857 measureUnitValue = MeasureUnit::getEm();
2858 measureUnit.adoptInstead(MeasureUnit::createMegapixel(status));
2859 measureUnitValue = MeasureUnit::getMegapixel();
2860 measureUnit.adoptInstead(MeasureUnit::createPixel(status));
2861 measureUnitValue = MeasureUnit::getPixel();
2862 measureUnit.adoptInstead(MeasureUnit::createPixelPerCentimeter(status));
2863 measureUnitValue = MeasureUnit::getPixelPerCentimeter();
2864 measureUnit.adoptInstead(MeasureUnit::createPixelPerInch(status));
2865 measureUnitValue = MeasureUnit::getPixelPerInch();
2866 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
2867 measureUnitValue = MeasureUnit::getAstronomicalUnit();
2868 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
2869 measureUnitValue = MeasureUnit::getCentimeter();
2870 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
2871 measureUnitValue = MeasureUnit::getDecimeter();
2872 measureUnit.adoptInstead(MeasureUnit::createEarthRadius(status));
2873 measureUnitValue = MeasureUnit::getEarthRadius();
2874 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
2875 measureUnitValue = MeasureUnit::getFathom();
2876 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
2877 measureUnitValue = MeasureUnit::getFoot();
2878 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
2879 measureUnitValue = MeasureUnit::getFurlong();
2880 measureUnit.adoptInstead(MeasureUnit::createInch(status));
2881 measureUnitValue = MeasureUnit::getInch();
2882 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
2883 measureUnitValue = MeasureUnit::getKilometer();
2884 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
2885 measureUnitValue = MeasureUnit::getLightYear();
2886 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
2887 measureUnitValue = MeasureUnit::getMeter();
2888 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
2889 measureUnitValue = MeasureUnit::getMicrometer();
2890 measureUnit.adoptInstead(MeasureUnit::createMile(status));
2891 measureUnitValue = MeasureUnit::getMile();
2892 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
2893 measureUnitValue = MeasureUnit::getMileScandinavian();
2894 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
2895 measureUnitValue = MeasureUnit::getMillimeter();
2896 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
2897 measureUnitValue = MeasureUnit::getNanometer();
2898 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
2899 measureUnitValue = MeasureUnit::getNauticalMile();
2900 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
2901 measureUnitValue = MeasureUnit::getParsec();
2902 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
2903 measureUnitValue = MeasureUnit::getPicometer();
2904 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
2905 measureUnitValue = MeasureUnit::getPoint();
2906 measureUnit.adoptInstead(MeasureUnit::createSolarRadius(status));
2907 measureUnitValue = MeasureUnit::getSolarRadius();
2908 measureUnit.adoptInstead(MeasureUnit::createYard(status));
2909 measureUnitValue = MeasureUnit::getYard();
2910 measureUnit.adoptInstead(MeasureUnit::createCandela(status));
2911 measureUnitValue = MeasureUnit::getCandela();
2912 measureUnit.adoptInstead(MeasureUnit::createLumen(status));
2913 measureUnitValue = MeasureUnit::getLumen();
2914 measureUnit.adoptInstead(MeasureUnit::createLux(status));
2915 measureUnitValue = MeasureUnit::getLux();
2916 measureUnit.adoptInstead(MeasureUnit::createSolarLuminosity(status));
2917 measureUnitValue = MeasureUnit::getSolarLuminosity();
2918 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
2919 measureUnitValue = MeasureUnit::getCarat();
2920 measureUnit.adoptInstead(MeasureUnit::createDalton(status));
2921 measureUnitValue = MeasureUnit::getDalton();
2922 measureUnit.adoptInstead(MeasureUnit::createEarthMass(status));
2923 measureUnitValue = MeasureUnit::getEarthMass();
2924 measureUnit.adoptInstead(MeasureUnit::createGrain(status));
2925 measureUnitValue = MeasureUnit::getGrain();
2926 measureUnit.adoptInstead(MeasureUnit::createGram(status));
2927 measureUnitValue = MeasureUnit::getGram();
2928 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
2929 measureUnitValue = MeasureUnit::getKilogram();
2930 measureUnit.adoptInstead(MeasureUnit::createMetricTon(status));
2931 measureUnitValue = MeasureUnit::getMetricTon();
2932 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
2933 measureUnitValue = MeasureUnit::getMicrogram();
2934 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
2935 measureUnitValue = MeasureUnit::getMilligram();
2936 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
2937 measureUnitValue = MeasureUnit::getOunce();
2938 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
2939 measureUnitValue = MeasureUnit::getOunceTroy();
2940 measureUnit.adoptInstead(MeasureUnit::createPound(status));
2941 measureUnitValue = MeasureUnit::getPound();
2942 measureUnit.adoptInstead(MeasureUnit::createSolarMass(status));
2943 measureUnitValue = MeasureUnit::getSolarMass();
2944 measureUnit.adoptInstead(MeasureUnit::createStone(status));
2945 measureUnitValue = MeasureUnit::getStone();
2946 measureUnit.adoptInstead(MeasureUnit::createTon(status));
2947 measureUnitValue = MeasureUnit::getTon();
2948 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
2949 measureUnitValue = MeasureUnit::getGigawatt();
2950 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
2951 measureUnitValue = MeasureUnit::getHorsepower();
2952 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
2953 measureUnitValue = MeasureUnit::getKilowatt();
2954 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
2955 measureUnitValue = MeasureUnit::getMegawatt();
2956 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
2957 measureUnitValue = MeasureUnit::getMilliwatt();
2958 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
2959 measureUnitValue = MeasureUnit::getWatt();
2960 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
2961 measureUnitValue = MeasureUnit::getAtmosphere();
2962 measureUnit.adoptInstead(MeasureUnit::createBar(status));
2963 measureUnitValue = MeasureUnit::getBar();
2964 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
2965 measureUnitValue = MeasureUnit::getHectopascal();
2966 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
2967 measureUnitValue = MeasureUnit::getInchHg();
2968 measureUnit.adoptInstead(MeasureUnit::createKilopascal(status));
2969 measureUnitValue = MeasureUnit::getKilopascal();
2970 measureUnit.adoptInstead(MeasureUnit::createMegapascal(status));
2971 measureUnitValue = MeasureUnit::getMegapascal();
2972 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
2973 measureUnitValue = MeasureUnit::getMillibar();
2974 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
2975 measureUnitValue = MeasureUnit::getMillimeterOfMercury();
2976 measureUnit.adoptInstead(MeasureUnit::createPascal(status));
2977 measureUnitValue = MeasureUnit::getPascal();
2978 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
2979 measureUnitValue = MeasureUnit::getPoundPerSquareInch();
2980 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
2981 measureUnitValue = MeasureUnit::getKilometerPerHour();
2982 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
2983 measureUnitValue = MeasureUnit::getKnot();
2984 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
2985 measureUnitValue = MeasureUnit::getMeterPerSecond();
2986 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
2987 measureUnitValue = MeasureUnit::getMilePerHour();
2988 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
2989 measureUnitValue = MeasureUnit::getCelsius();
2990 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
2991 measureUnitValue = MeasureUnit::getFahrenheit();
2992 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
2993 measureUnitValue = MeasureUnit::getGenericTemperature();
2994 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
2995 measureUnitValue = MeasureUnit::getKelvin();
2996 measureUnit.adoptInstead(MeasureUnit::createNewtonMeter(status));
2997 measureUnitValue = MeasureUnit::getNewtonMeter();
2998 measureUnit.adoptInstead(MeasureUnit::createPoundFoot(status));
2999 measureUnitValue = MeasureUnit::getPoundFoot();
3000 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
3001 measureUnitValue = MeasureUnit::getAcreFoot();
3002 measureUnit.adoptInstead(MeasureUnit::createBarrel(status));
3003 measureUnitValue = MeasureUnit::getBarrel();
3004 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
3005 measureUnitValue = MeasureUnit::getBushel();
3006 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
3007 measureUnitValue = MeasureUnit::getCentiliter();
3008 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
3009 measureUnitValue = MeasureUnit::getCubicCentimeter();
3010 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
3011 measureUnitValue = MeasureUnit::getCubicFoot();
3012 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
3013 measureUnitValue = MeasureUnit::getCubicInch();
3014 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
3015 measureUnitValue = MeasureUnit::getCubicKilometer();
3016 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
3017 measureUnitValue = MeasureUnit::getCubicMeter();
3018 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
3019 measureUnitValue = MeasureUnit::getCubicMile();
3020 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
3021 measureUnitValue = MeasureUnit::getCubicYard();
3022 measureUnit.adoptInstead(MeasureUnit::createCup(status));
3023 measureUnitValue = MeasureUnit::getCup();
3024 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
3025 measureUnitValue = MeasureUnit::getCupMetric();
3026 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
3027 measureUnitValue = MeasureUnit::getDeciliter();
3028 measureUnit.adoptInstead(MeasureUnit::createDessertSpoon(status));
3029 measureUnitValue = MeasureUnit::getDessertSpoon();
3030 measureUnit.adoptInstead(MeasureUnit::createDessertSpoonImperial(status));
3031 measureUnitValue = MeasureUnit::getDessertSpoonImperial();
3032 measureUnit.adoptInstead(MeasureUnit::createDram(status));
3033 measureUnitValue = MeasureUnit::getDram();
3034 measureUnit.adoptInstead(MeasureUnit::createDrop(status));
3035 measureUnitValue = MeasureUnit::getDrop();
3036 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
3037 measureUnitValue = MeasureUnit::getFluidOunce();
3038 measureUnit.adoptInstead(MeasureUnit::createFluidOunceImperial(status));
3039 measureUnitValue = MeasureUnit::getFluidOunceImperial();
3040 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
3041 measureUnitValue = MeasureUnit::getGallon();
3042 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
3043 measureUnitValue = MeasureUnit::getGallonImperial();
3044 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
3045 measureUnitValue = MeasureUnit::getHectoliter();
3046 measureUnit.adoptInstead(MeasureUnit::createJigger(status));
3047 measureUnitValue = MeasureUnit::getJigger();
3048 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
3049 measureUnitValue = MeasureUnit::getLiter();
3050 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
3051 measureUnitValue = MeasureUnit::getMegaliter();
3052 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
3053 measureUnitValue = MeasureUnit::getMilliliter();
3054 measureUnit.adoptInstead(MeasureUnit::createPinch(status));
3055 measureUnitValue = MeasureUnit::getPinch();
3056 measureUnit.adoptInstead(MeasureUnit::createPint(status));
3057 measureUnitValue = MeasureUnit::getPint();
3058 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
3059 measureUnitValue = MeasureUnit::getPintMetric();
3060 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
3061 measureUnitValue = MeasureUnit::getQuart();
3062 measureUnit.adoptInstead(MeasureUnit::createQuartImperial(status));
3063 measureUnitValue = MeasureUnit::getQuartImperial();
3064 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
3065 measureUnitValue = MeasureUnit::getTablespoon();
3066 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
3067 measureUnitValue = MeasureUnit::getTeaspoon();
3068 assertSuccess("", status);
3069 }
3070
3071 // TestCompatible71 would be identical to TestCompatible70,
3072 // no need to add it
3073
TestCompatible72()3074 void MeasureFormatTest::TestCompatible72() {
3075 UErrorCode status = U_ZERO_ERROR;
3076 LocalPointer<MeasureUnit> measureUnit;
3077 MeasureUnit measureUnitValue;
3078 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
3079 measureUnitValue = MeasureUnit::getGForce();
3080 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
3081 measureUnitValue = MeasureUnit::getMeterPerSecondSquared();
3082 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
3083 measureUnitValue = MeasureUnit::getArcMinute();
3084 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
3085 measureUnitValue = MeasureUnit::getArcSecond();
3086 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
3087 measureUnitValue = MeasureUnit::getDegree();
3088 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
3089 measureUnitValue = MeasureUnit::getRadian();
3090 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
3091 measureUnitValue = MeasureUnit::getRevolutionAngle();
3092 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
3093 measureUnitValue = MeasureUnit::getAcre();
3094 measureUnit.adoptInstead(MeasureUnit::createDunam(status));
3095 measureUnitValue = MeasureUnit::getDunam();
3096 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
3097 measureUnitValue = MeasureUnit::getHectare();
3098 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
3099 measureUnitValue = MeasureUnit::getSquareCentimeter();
3100 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
3101 measureUnitValue = MeasureUnit::getSquareFoot();
3102 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
3103 measureUnitValue = MeasureUnit::getSquareInch();
3104 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
3105 measureUnitValue = MeasureUnit::getSquareKilometer();
3106 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
3107 measureUnitValue = MeasureUnit::getSquareMeter();
3108 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
3109 measureUnitValue = MeasureUnit::getSquareMile();
3110 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
3111 measureUnitValue = MeasureUnit::getSquareYard();
3112 measureUnit.adoptInstead(MeasureUnit::createItem(status));
3113 measureUnitValue = MeasureUnit::getItem();
3114 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
3115 measureUnitValue = MeasureUnit::getKarat();
3116 measureUnit.adoptInstead(MeasureUnit::createMilligramOfglucosePerDeciliter(status));
3117 measureUnitValue = MeasureUnit::getMilligramOfglucosePerDeciliter();
3118 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
3119 measureUnitValue = MeasureUnit::getMilligramPerDeciliter();
3120 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
3121 measureUnitValue = MeasureUnit::getMillimolePerLiter();
3122 measureUnit.adoptInstead(MeasureUnit::createMole(status));
3123 measureUnitValue = MeasureUnit::getMole();
3124 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
3125 measureUnitValue = MeasureUnit::getPercent();
3126 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
3127 measureUnitValue = MeasureUnit::getPermille();
3128 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
3129 measureUnitValue = MeasureUnit::getPartPerMillion();
3130 measureUnit.adoptInstead(MeasureUnit::createPermyriad(status));
3131 measureUnitValue = MeasureUnit::getPermyriad();
3132 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
3133 measureUnitValue = MeasureUnit::getLiterPer100Kilometers();
3134 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
3135 measureUnitValue = MeasureUnit::getLiterPerKilometer();
3136 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
3137 measureUnitValue = MeasureUnit::getMilePerGallon();
3138 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
3139 measureUnitValue = MeasureUnit::getMilePerGallonImperial();
3140 measureUnit.adoptInstead(MeasureUnit::createBit(status));
3141 measureUnitValue = MeasureUnit::getBit();
3142 measureUnit.adoptInstead(MeasureUnit::createByte(status));
3143 measureUnitValue = MeasureUnit::getByte();
3144 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
3145 measureUnitValue = MeasureUnit::getGigabit();
3146 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
3147 measureUnitValue = MeasureUnit::getGigabyte();
3148 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
3149 measureUnitValue = MeasureUnit::getKilobit();
3150 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
3151 measureUnitValue = MeasureUnit::getKilobyte();
3152 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
3153 measureUnitValue = MeasureUnit::getMegabit();
3154 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
3155 measureUnitValue = MeasureUnit::getMegabyte();
3156 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
3157 measureUnitValue = MeasureUnit::getPetabyte();
3158 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
3159 measureUnitValue = MeasureUnit::getTerabit();
3160 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
3161 measureUnitValue = MeasureUnit::getTerabyte();
3162 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
3163 measureUnitValue = MeasureUnit::getCentury();
3164 measureUnit.adoptInstead(MeasureUnit::createDay(status));
3165 measureUnitValue = MeasureUnit::getDay();
3166 measureUnit.adoptInstead(MeasureUnit::createDayPerson(status));
3167 measureUnitValue = MeasureUnit::getDayPerson();
3168 measureUnit.adoptInstead(MeasureUnit::createDecade(status));
3169 measureUnitValue = MeasureUnit::getDecade();
3170 measureUnit.adoptInstead(MeasureUnit::createHour(status));
3171 measureUnitValue = MeasureUnit::getHour();
3172 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
3173 measureUnitValue = MeasureUnit::getMicrosecond();
3174 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
3175 measureUnitValue = MeasureUnit::getMillisecond();
3176 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
3177 measureUnitValue = MeasureUnit::getMinute();
3178 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
3179 measureUnitValue = MeasureUnit::getMonth();
3180 measureUnit.adoptInstead(MeasureUnit::createMonthPerson(status));
3181 measureUnitValue = MeasureUnit::getMonthPerson();
3182 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
3183 measureUnitValue = MeasureUnit::getNanosecond();
3184 measureUnit.adoptInstead(MeasureUnit::createQuarter(status));
3185 measureUnitValue = MeasureUnit::getQuarter();
3186 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
3187 measureUnitValue = MeasureUnit::getSecond();
3188 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
3189 measureUnitValue = MeasureUnit::getWeek();
3190 measureUnit.adoptInstead(MeasureUnit::createWeekPerson(status));
3191 measureUnitValue = MeasureUnit::getWeekPerson();
3192 measureUnit.adoptInstead(MeasureUnit::createYear(status));
3193 measureUnitValue = MeasureUnit::getYear();
3194 measureUnit.adoptInstead(MeasureUnit::createYearPerson(status));
3195 measureUnitValue = MeasureUnit::getYearPerson();
3196 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
3197 measureUnitValue = MeasureUnit::getAmpere();
3198 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
3199 measureUnitValue = MeasureUnit::getMilliampere();
3200 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
3201 measureUnitValue = MeasureUnit::getOhm();
3202 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
3203 measureUnitValue = MeasureUnit::getVolt();
3204 measureUnit.adoptInstead(MeasureUnit::createBritishThermalUnit(status));
3205 measureUnitValue = MeasureUnit::getBritishThermalUnit();
3206 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
3207 measureUnitValue = MeasureUnit::getCalorie();
3208 measureUnit.adoptInstead(MeasureUnit::createElectronvolt(status));
3209 measureUnitValue = MeasureUnit::getElectronvolt();
3210 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
3211 measureUnitValue = MeasureUnit::getFoodcalorie();
3212 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
3213 measureUnitValue = MeasureUnit::getJoule();
3214 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
3215 measureUnitValue = MeasureUnit::getKilocalorie();
3216 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
3217 measureUnitValue = MeasureUnit::getKilojoule();
3218 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
3219 measureUnitValue = MeasureUnit::getKilowattHour();
3220 measureUnit.adoptInstead(MeasureUnit::createThermUs(status));
3221 measureUnitValue = MeasureUnit::getThermUs();
3222 measureUnit.adoptInstead(MeasureUnit::createKilowattHourPer100Kilometer(status));
3223 measureUnitValue = MeasureUnit::getKilowattHourPer100Kilometer();
3224 measureUnit.adoptInstead(MeasureUnit::createNewton(status));
3225 measureUnitValue = MeasureUnit::getNewton();
3226 measureUnit.adoptInstead(MeasureUnit::createPoundForce(status));
3227 measureUnitValue = MeasureUnit::getPoundForce();
3228 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
3229 measureUnitValue = MeasureUnit::getGigahertz();
3230 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
3231 measureUnitValue = MeasureUnit::getHertz();
3232 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
3233 measureUnitValue = MeasureUnit::getKilohertz();
3234 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
3235 measureUnitValue = MeasureUnit::getMegahertz();
3236 measureUnit.adoptInstead(MeasureUnit::createDot(status));
3237 measureUnitValue = MeasureUnit::getDot();
3238 measureUnit.adoptInstead(MeasureUnit::createDotPerCentimeter(status));
3239 measureUnitValue = MeasureUnit::getDotPerCentimeter();
3240 measureUnit.adoptInstead(MeasureUnit::createDotPerInch(status));
3241 measureUnitValue = MeasureUnit::getDotPerInch();
3242 measureUnit.adoptInstead(MeasureUnit::createEm(status));
3243 measureUnitValue = MeasureUnit::getEm();
3244 measureUnit.adoptInstead(MeasureUnit::createMegapixel(status));
3245 measureUnitValue = MeasureUnit::getMegapixel();
3246 measureUnit.adoptInstead(MeasureUnit::createPixel(status));
3247 measureUnitValue = MeasureUnit::getPixel();
3248 measureUnit.adoptInstead(MeasureUnit::createPixelPerCentimeter(status));
3249 measureUnitValue = MeasureUnit::getPixelPerCentimeter();
3250 measureUnit.adoptInstead(MeasureUnit::createPixelPerInch(status));
3251 measureUnitValue = MeasureUnit::getPixelPerInch();
3252 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
3253 measureUnitValue = MeasureUnit::getAstronomicalUnit();
3254 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
3255 measureUnitValue = MeasureUnit::getCentimeter();
3256 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
3257 measureUnitValue = MeasureUnit::getDecimeter();
3258 measureUnit.adoptInstead(MeasureUnit::createEarthRadius(status));
3259 measureUnitValue = MeasureUnit::getEarthRadius();
3260 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
3261 measureUnitValue = MeasureUnit::getFathom();
3262 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
3263 measureUnitValue = MeasureUnit::getFoot();
3264 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
3265 measureUnitValue = MeasureUnit::getFurlong();
3266 measureUnit.adoptInstead(MeasureUnit::createInch(status));
3267 measureUnitValue = MeasureUnit::getInch();
3268 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
3269 measureUnitValue = MeasureUnit::getKilometer();
3270 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
3271 measureUnitValue = MeasureUnit::getLightYear();
3272 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
3273 measureUnitValue = MeasureUnit::getMeter();
3274 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
3275 measureUnitValue = MeasureUnit::getMicrometer();
3276 measureUnit.adoptInstead(MeasureUnit::createMile(status));
3277 measureUnitValue = MeasureUnit::getMile();
3278 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
3279 measureUnitValue = MeasureUnit::getMileScandinavian();
3280 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
3281 measureUnitValue = MeasureUnit::getMillimeter();
3282 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
3283 measureUnitValue = MeasureUnit::getNanometer();
3284 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
3285 measureUnitValue = MeasureUnit::getNauticalMile();
3286 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
3287 measureUnitValue = MeasureUnit::getParsec();
3288 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
3289 measureUnitValue = MeasureUnit::getPicometer();
3290 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
3291 measureUnitValue = MeasureUnit::getPoint();
3292 measureUnit.adoptInstead(MeasureUnit::createSolarRadius(status));
3293 measureUnitValue = MeasureUnit::getSolarRadius();
3294 measureUnit.adoptInstead(MeasureUnit::createYard(status));
3295 measureUnitValue = MeasureUnit::getYard();
3296 measureUnit.adoptInstead(MeasureUnit::createCandela(status));
3297 measureUnitValue = MeasureUnit::getCandela();
3298 measureUnit.adoptInstead(MeasureUnit::createLumen(status));
3299 measureUnitValue = MeasureUnit::getLumen();
3300 measureUnit.adoptInstead(MeasureUnit::createLux(status));
3301 measureUnitValue = MeasureUnit::getLux();
3302 measureUnit.adoptInstead(MeasureUnit::createSolarLuminosity(status));
3303 measureUnitValue = MeasureUnit::getSolarLuminosity();
3304 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
3305 measureUnitValue = MeasureUnit::getCarat();
3306 measureUnit.adoptInstead(MeasureUnit::createDalton(status));
3307 measureUnitValue = MeasureUnit::getDalton();
3308 measureUnit.adoptInstead(MeasureUnit::createEarthMass(status));
3309 measureUnitValue = MeasureUnit::getEarthMass();
3310 measureUnit.adoptInstead(MeasureUnit::createGrain(status));
3311 measureUnitValue = MeasureUnit::getGrain();
3312 measureUnit.adoptInstead(MeasureUnit::createGram(status));
3313 measureUnitValue = MeasureUnit::getGram();
3314 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
3315 measureUnitValue = MeasureUnit::getKilogram();
3316 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
3317 measureUnitValue = MeasureUnit::getMicrogram();
3318 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
3319 measureUnitValue = MeasureUnit::getMilligram();
3320 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
3321 measureUnitValue = MeasureUnit::getOunce();
3322 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
3323 measureUnitValue = MeasureUnit::getOunceTroy();
3324 measureUnit.adoptInstead(MeasureUnit::createPound(status));
3325 measureUnitValue = MeasureUnit::getPound();
3326 measureUnit.adoptInstead(MeasureUnit::createSolarMass(status));
3327 measureUnitValue = MeasureUnit::getSolarMass();
3328 measureUnit.adoptInstead(MeasureUnit::createStone(status));
3329 measureUnitValue = MeasureUnit::getStone();
3330 measureUnit.adoptInstead(MeasureUnit::createTon(status));
3331 measureUnitValue = MeasureUnit::getTon();
3332 measureUnit.adoptInstead(MeasureUnit::createTonne(status));
3333 measureUnitValue = MeasureUnit::getTonne();
3334 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
3335 measureUnitValue = MeasureUnit::getGigawatt();
3336 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
3337 measureUnitValue = MeasureUnit::getHorsepower();
3338 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
3339 measureUnitValue = MeasureUnit::getKilowatt();
3340 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
3341 measureUnitValue = MeasureUnit::getMegawatt();
3342 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
3343 measureUnitValue = MeasureUnit::getMilliwatt();
3344 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
3345 measureUnitValue = MeasureUnit::getWatt();
3346 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
3347 measureUnitValue = MeasureUnit::getAtmosphere();
3348 measureUnit.adoptInstead(MeasureUnit::createBar(status));
3349 measureUnitValue = MeasureUnit::getBar();
3350 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
3351 measureUnitValue = MeasureUnit::getHectopascal();
3352 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
3353 measureUnitValue = MeasureUnit::getInchHg();
3354 measureUnit.adoptInstead(MeasureUnit::createKilopascal(status));
3355 measureUnitValue = MeasureUnit::getKilopascal();
3356 measureUnit.adoptInstead(MeasureUnit::createMegapascal(status));
3357 measureUnitValue = MeasureUnit::getMegapascal();
3358 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
3359 measureUnitValue = MeasureUnit::getMillibar();
3360 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
3361 measureUnitValue = MeasureUnit::getMillimeterOfMercury();
3362 measureUnit.adoptInstead(MeasureUnit::createPascal(status));
3363 measureUnitValue = MeasureUnit::getPascal();
3364 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
3365 measureUnitValue = MeasureUnit::getPoundPerSquareInch();
3366 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
3367 measureUnitValue = MeasureUnit::getKilometerPerHour();
3368 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
3369 measureUnitValue = MeasureUnit::getKnot();
3370 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
3371 measureUnitValue = MeasureUnit::getMeterPerSecond();
3372 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
3373 measureUnitValue = MeasureUnit::getMilePerHour();
3374 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
3375 measureUnitValue = MeasureUnit::getCelsius();
3376 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
3377 measureUnitValue = MeasureUnit::getFahrenheit();
3378 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
3379 measureUnitValue = MeasureUnit::getGenericTemperature();
3380 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
3381 measureUnitValue = MeasureUnit::getKelvin();
3382 measureUnit.adoptInstead(MeasureUnit::createNewtonMeter(status));
3383 measureUnitValue = MeasureUnit::getNewtonMeter();
3384 measureUnit.adoptInstead(MeasureUnit::createPoundFoot(status));
3385 measureUnitValue = MeasureUnit::getPoundFoot();
3386 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
3387 measureUnitValue = MeasureUnit::getAcreFoot();
3388 measureUnit.adoptInstead(MeasureUnit::createBarrel(status));
3389 measureUnitValue = MeasureUnit::getBarrel();
3390 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
3391 measureUnitValue = MeasureUnit::getBushel();
3392 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
3393 measureUnitValue = MeasureUnit::getCentiliter();
3394 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
3395 measureUnitValue = MeasureUnit::getCubicCentimeter();
3396 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
3397 measureUnitValue = MeasureUnit::getCubicFoot();
3398 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
3399 measureUnitValue = MeasureUnit::getCubicInch();
3400 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
3401 measureUnitValue = MeasureUnit::getCubicKilometer();
3402 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
3403 measureUnitValue = MeasureUnit::getCubicMeter();
3404 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
3405 measureUnitValue = MeasureUnit::getCubicMile();
3406 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
3407 measureUnitValue = MeasureUnit::getCubicYard();
3408 measureUnit.adoptInstead(MeasureUnit::createCup(status));
3409 measureUnitValue = MeasureUnit::getCup();
3410 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
3411 measureUnitValue = MeasureUnit::getCupMetric();
3412 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
3413 measureUnitValue = MeasureUnit::getDeciliter();
3414 measureUnit.adoptInstead(MeasureUnit::createDessertSpoon(status));
3415 measureUnitValue = MeasureUnit::getDessertSpoon();
3416 measureUnit.adoptInstead(MeasureUnit::createDessertSpoonImperial(status));
3417 measureUnitValue = MeasureUnit::getDessertSpoonImperial();
3418 measureUnit.adoptInstead(MeasureUnit::createDram(status));
3419 measureUnitValue = MeasureUnit::getDram();
3420 measureUnit.adoptInstead(MeasureUnit::createDrop(status));
3421 measureUnitValue = MeasureUnit::getDrop();
3422 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
3423 measureUnitValue = MeasureUnit::getFluidOunce();
3424 measureUnit.adoptInstead(MeasureUnit::createFluidOunceImperial(status));
3425 measureUnitValue = MeasureUnit::getFluidOunceImperial();
3426 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
3427 measureUnitValue = MeasureUnit::getGallon();
3428 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
3429 measureUnitValue = MeasureUnit::getGallonImperial();
3430 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
3431 measureUnitValue = MeasureUnit::getHectoliter();
3432 measureUnit.adoptInstead(MeasureUnit::createJigger(status));
3433 measureUnitValue = MeasureUnit::getJigger();
3434 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
3435 measureUnitValue = MeasureUnit::getLiter();
3436 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
3437 measureUnitValue = MeasureUnit::getMegaliter();
3438 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
3439 measureUnitValue = MeasureUnit::getMilliliter();
3440 measureUnit.adoptInstead(MeasureUnit::createPinch(status));
3441 measureUnitValue = MeasureUnit::getPinch();
3442 measureUnit.adoptInstead(MeasureUnit::createPint(status));
3443 measureUnitValue = MeasureUnit::getPint();
3444 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
3445 measureUnitValue = MeasureUnit::getPintMetric();
3446 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
3447 measureUnitValue = MeasureUnit::getQuart();
3448 measureUnit.adoptInstead(MeasureUnit::createQuartImperial(status));
3449 measureUnitValue = MeasureUnit::getQuartImperial();
3450 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
3451 measureUnitValue = MeasureUnit::getTablespoon();
3452 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
3453 measureUnitValue = MeasureUnit::getTeaspoon();
3454 assertSuccess("", status);
3455 }
3456
TestCompatible73()3457 void MeasureFormatTest::TestCompatible73() {
3458 UErrorCode status = U_ZERO_ERROR;
3459 LocalPointer<MeasureUnit> measureUnit;
3460 MeasureUnit measureUnitValue;
3461 measureUnit.adoptInstead(MeasureUnit::createGForce(status));
3462 measureUnitValue = MeasureUnit::getGForce();
3463 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecondSquared(status));
3464 measureUnitValue = MeasureUnit::getMeterPerSecondSquared();
3465 measureUnit.adoptInstead(MeasureUnit::createArcMinute(status));
3466 measureUnitValue = MeasureUnit::getArcMinute();
3467 measureUnit.adoptInstead(MeasureUnit::createArcSecond(status));
3468 measureUnitValue = MeasureUnit::getArcSecond();
3469 measureUnit.adoptInstead(MeasureUnit::createDegree(status));
3470 measureUnitValue = MeasureUnit::getDegree();
3471 measureUnit.adoptInstead(MeasureUnit::createRadian(status));
3472 measureUnitValue = MeasureUnit::getRadian();
3473 measureUnit.adoptInstead(MeasureUnit::createRevolutionAngle(status));
3474 measureUnitValue = MeasureUnit::getRevolutionAngle();
3475 measureUnit.adoptInstead(MeasureUnit::createAcre(status));
3476 measureUnitValue = MeasureUnit::getAcre();
3477 measureUnit.adoptInstead(MeasureUnit::createDunam(status));
3478 measureUnitValue = MeasureUnit::getDunam();
3479 measureUnit.adoptInstead(MeasureUnit::createHectare(status));
3480 measureUnitValue = MeasureUnit::getHectare();
3481 measureUnit.adoptInstead(MeasureUnit::createSquareCentimeter(status));
3482 measureUnitValue = MeasureUnit::getSquareCentimeter();
3483 measureUnit.adoptInstead(MeasureUnit::createSquareFoot(status));
3484 measureUnitValue = MeasureUnit::getSquareFoot();
3485 measureUnit.adoptInstead(MeasureUnit::createSquareInch(status));
3486 measureUnitValue = MeasureUnit::getSquareInch();
3487 measureUnit.adoptInstead(MeasureUnit::createSquareKilometer(status));
3488 measureUnitValue = MeasureUnit::getSquareKilometer();
3489 measureUnit.adoptInstead(MeasureUnit::createSquareMeter(status));
3490 measureUnitValue = MeasureUnit::getSquareMeter();
3491 measureUnit.adoptInstead(MeasureUnit::createSquareMile(status));
3492 measureUnitValue = MeasureUnit::getSquareMile();
3493 measureUnit.adoptInstead(MeasureUnit::createSquareYard(status));
3494 measureUnitValue = MeasureUnit::getSquareYard();
3495 measureUnit.adoptInstead(MeasureUnit::createItem(status));
3496 measureUnitValue = MeasureUnit::getItem();
3497 measureUnit.adoptInstead(MeasureUnit::createKarat(status));
3498 measureUnitValue = MeasureUnit::getKarat();
3499 measureUnit.adoptInstead(MeasureUnit::createMilligramOfglucosePerDeciliter(status));
3500 measureUnitValue = MeasureUnit::getMilligramOfglucosePerDeciliter();
3501 measureUnit.adoptInstead(MeasureUnit::createMilligramPerDeciliter(status));
3502 measureUnitValue = MeasureUnit::getMilligramPerDeciliter();
3503 measureUnit.adoptInstead(MeasureUnit::createMillimolePerLiter(status));
3504 measureUnitValue = MeasureUnit::getMillimolePerLiter();
3505 measureUnit.adoptInstead(MeasureUnit::createMole(status));
3506 measureUnitValue = MeasureUnit::getMole();
3507 measureUnit.adoptInstead(MeasureUnit::createPercent(status));
3508 measureUnitValue = MeasureUnit::getPercent();
3509 measureUnit.adoptInstead(MeasureUnit::createPermille(status));
3510 measureUnitValue = MeasureUnit::getPermille();
3511 measureUnit.adoptInstead(MeasureUnit::createPartPerMillion(status));
3512 measureUnitValue = MeasureUnit::getPartPerMillion();
3513 measureUnit.adoptInstead(MeasureUnit::createPermyriad(status));
3514 measureUnitValue = MeasureUnit::getPermyriad();
3515 measureUnit.adoptInstead(MeasureUnit::createLiterPer100Kilometers(status));
3516 measureUnitValue = MeasureUnit::getLiterPer100Kilometers();
3517 measureUnit.adoptInstead(MeasureUnit::createLiterPerKilometer(status));
3518 measureUnitValue = MeasureUnit::getLiterPerKilometer();
3519 measureUnit.adoptInstead(MeasureUnit::createMilePerGallon(status));
3520 measureUnitValue = MeasureUnit::getMilePerGallon();
3521 measureUnit.adoptInstead(MeasureUnit::createMilePerGallonImperial(status));
3522 measureUnitValue = MeasureUnit::getMilePerGallonImperial();
3523 measureUnit.adoptInstead(MeasureUnit::createBit(status));
3524 measureUnitValue = MeasureUnit::getBit();
3525 measureUnit.adoptInstead(MeasureUnit::createByte(status));
3526 measureUnitValue = MeasureUnit::getByte();
3527 measureUnit.adoptInstead(MeasureUnit::createGigabit(status));
3528 measureUnitValue = MeasureUnit::getGigabit();
3529 measureUnit.adoptInstead(MeasureUnit::createGigabyte(status));
3530 measureUnitValue = MeasureUnit::getGigabyte();
3531 measureUnit.adoptInstead(MeasureUnit::createKilobit(status));
3532 measureUnitValue = MeasureUnit::getKilobit();
3533 measureUnit.adoptInstead(MeasureUnit::createKilobyte(status));
3534 measureUnitValue = MeasureUnit::getKilobyte();
3535 measureUnit.adoptInstead(MeasureUnit::createMegabit(status));
3536 measureUnitValue = MeasureUnit::getMegabit();
3537 measureUnit.adoptInstead(MeasureUnit::createMegabyte(status));
3538 measureUnitValue = MeasureUnit::getMegabyte();
3539 measureUnit.adoptInstead(MeasureUnit::createPetabyte(status));
3540 measureUnitValue = MeasureUnit::getPetabyte();
3541 measureUnit.adoptInstead(MeasureUnit::createTerabit(status));
3542 measureUnitValue = MeasureUnit::getTerabit();
3543 measureUnit.adoptInstead(MeasureUnit::createTerabyte(status));
3544 measureUnitValue = MeasureUnit::getTerabyte();
3545 measureUnit.adoptInstead(MeasureUnit::createCentury(status));
3546 measureUnitValue = MeasureUnit::getCentury();
3547 measureUnit.adoptInstead(MeasureUnit::createDay(status));
3548 measureUnitValue = MeasureUnit::getDay();
3549 measureUnit.adoptInstead(MeasureUnit::createDayPerson(status));
3550 measureUnitValue = MeasureUnit::getDayPerson();
3551 measureUnit.adoptInstead(MeasureUnit::createDecade(status));
3552 measureUnitValue = MeasureUnit::getDecade();
3553 measureUnit.adoptInstead(MeasureUnit::createHour(status));
3554 measureUnitValue = MeasureUnit::getHour();
3555 measureUnit.adoptInstead(MeasureUnit::createMicrosecond(status));
3556 measureUnitValue = MeasureUnit::getMicrosecond();
3557 measureUnit.adoptInstead(MeasureUnit::createMillisecond(status));
3558 measureUnitValue = MeasureUnit::getMillisecond();
3559 measureUnit.adoptInstead(MeasureUnit::createMinute(status));
3560 measureUnitValue = MeasureUnit::getMinute();
3561 measureUnit.adoptInstead(MeasureUnit::createMonth(status));
3562 measureUnitValue = MeasureUnit::getMonth();
3563 measureUnit.adoptInstead(MeasureUnit::createMonthPerson(status));
3564 measureUnitValue = MeasureUnit::getMonthPerson();
3565 measureUnit.adoptInstead(MeasureUnit::createNanosecond(status));
3566 measureUnitValue = MeasureUnit::getNanosecond();
3567 measureUnit.adoptInstead(MeasureUnit::createQuarter(status));
3568 measureUnitValue = MeasureUnit::getQuarter();
3569 measureUnit.adoptInstead(MeasureUnit::createSecond(status));
3570 measureUnitValue = MeasureUnit::getSecond();
3571 measureUnit.adoptInstead(MeasureUnit::createWeek(status));
3572 measureUnitValue = MeasureUnit::getWeek();
3573 measureUnit.adoptInstead(MeasureUnit::createWeekPerson(status));
3574 measureUnitValue = MeasureUnit::getWeekPerson();
3575 measureUnit.adoptInstead(MeasureUnit::createYear(status));
3576 measureUnitValue = MeasureUnit::getYear();
3577 measureUnit.adoptInstead(MeasureUnit::createYearPerson(status));
3578 measureUnitValue = MeasureUnit::getYearPerson();
3579 measureUnit.adoptInstead(MeasureUnit::createAmpere(status));
3580 measureUnitValue = MeasureUnit::getAmpere();
3581 measureUnit.adoptInstead(MeasureUnit::createMilliampere(status));
3582 measureUnitValue = MeasureUnit::getMilliampere();
3583 measureUnit.adoptInstead(MeasureUnit::createOhm(status));
3584 measureUnitValue = MeasureUnit::getOhm();
3585 measureUnit.adoptInstead(MeasureUnit::createVolt(status));
3586 measureUnitValue = MeasureUnit::getVolt();
3587 measureUnit.adoptInstead(MeasureUnit::createBritishThermalUnit(status));
3588 measureUnitValue = MeasureUnit::getBritishThermalUnit();
3589 measureUnit.adoptInstead(MeasureUnit::createCalorie(status));
3590 measureUnitValue = MeasureUnit::getCalorie();
3591 measureUnit.adoptInstead(MeasureUnit::createElectronvolt(status));
3592 measureUnitValue = MeasureUnit::getElectronvolt();
3593 measureUnit.adoptInstead(MeasureUnit::createFoodcalorie(status));
3594 measureUnitValue = MeasureUnit::getFoodcalorie();
3595 measureUnit.adoptInstead(MeasureUnit::createJoule(status));
3596 measureUnitValue = MeasureUnit::getJoule();
3597 measureUnit.adoptInstead(MeasureUnit::createKilocalorie(status));
3598 measureUnitValue = MeasureUnit::getKilocalorie();
3599 measureUnit.adoptInstead(MeasureUnit::createKilojoule(status));
3600 measureUnitValue = MeasureUnit::getKilojoule();
3601 measureUnit.adoptInstead(MeasureUnit::createKilowattHour(status));
3602 measureUnitValue = MeasureUnit::getKilowattHour();
3603 measureUnit.adoptInstead(MeasureUnit::createThermUs(status));
3604 measureUnitValue = MeasureUnit::getThermUs();
3605 measureUnit.adoptInstead(MeasureUnit::createKilowattHourPer100Kilometer(status));
3606 measureUnitValue = MeasureUnit::getKilowattHourPer100Kilometer();
3607 measureUnit.adoptInstead(MeasureUnit::createNewton(status));
3608 measureUnitValue = MeasureUnit::getNewton();
3609 measureUnit.adoptInstead(MeasureUnit::createPoundForce(status));
3610 measureUnitValue = MeasureUnit::getPoundForce();
3611 measureUnit.adoptInstead(MeasureUnit::createGigahertz(status));
3612 measureUnitValue = MeasureUnit::getGigahertz();
3613 measureUnit.adoptInstead(MeasureUnit::createHertz(status));
3614 measureUnitValue = MeasureUnit::getHertz();
3615 measureUnit.adoptInstead(MeasureUnit::createKilohertz(status));
3616 measureUnitValue = MeasureUnit::getKilohertz();
3617 measureUnit.adoptInstead(MeasureUnit::createMegahertz(status));
3618 measureUnitValue = MeasureUnit::getMegahertz();
3619 measureUnit.adoptInstead(MeasureUnit::createDot(status));
3620 measureUnitValue = MeasureUnit::getDot();
3621 measureUnit.adoptInstead(MeasureUnit::createDotPerCentimeter(status));
3622 measureUnitValue = MeasureUnit::getDotPerCentimeter();
3623 measureUnit.adoptInstead(MeasureUnit::createDotPerInch(status));
3624 measureUnitValue = MeasureUnit::getDotPerInch();
3625 measureUnit.adoptInstead(MeasureUnit::createEm(status));
3626 measureUnitValue = MeasureUnit::getEm();
3627 measureUnit.adoptInstead(MeasureUnit::createMegapixel(status));
3628 measureUnitValue = MeasureUnit::getMegapixel();
3629 measureUnit.adoptInstead(MeasureUnit::createPixel(status));
3630 measureUnitValue = MeasureUnit::getPixel();
3631 measureUnit.adoptInstead(MeasureUnit::createPixelPerCentimeter(status));
3632 measureUnitValue = MeasureUnit::getPixelPerCentimeter();
3633 measureUnit.adoptInstead(MeasureUnit::createPixelPerInch(status));
3634 measureUnitValue = MeasureUnit::getPixelPerInch();
3635 measureUnit.adoptInstead(MeasureUnit::createAstronomicalUnit(status));
3636 measureUnitValue = MeasureUnit::getAstronomicalUnit();
3637 measureUnit.adoptInstead(MeasureUnit::createCentimeter(status));
3638 measureUnitValue = MeasureUnit::getCentimeter();
3639 measureUnit.adoptInstead(MeasureUnit::createDecimeter(status));
3640 measureUnitValue = MeasureUnit::getDecimeter();
3641 measureUnit.adoptInstead(MeasureUnit::createEarthRadius(status));
3642 measureUnitValue = MeasureUnit::getEarthRadius();
3643 measureUnit.adoptInstead(MeasureUnit::createFathom(status));
3644 measureUnitValue = MeasureUnit::getFathom();
3645 measureUnit.adoptInstead(MeasureUnit::createFoot(status));
3646 measureUnitValue = MeasureUnit::getFoot();
3647 measureUnit.adoptInstead(MeasureUnit::createFurlong(status));
3648 measureUnitValue = MeasureUnit::getFurlong();
3649 measureUnit.adoptInstead(MeasureUnit::createInch(status));
3650 measureUnitValue = MeasureUnit::getInch();
3651 measureUnit.adoptInstead(MeasureUnit::createKilometer(status));
3652 measureUnitValue = MeasureUnit::getKilometer();
3653 measureUnit.adoptInstead(MeasureUnit::createLightYear(status));
3654 measureUnitValue = MeasureUnit::getLightYear();
3655 measureUnit.adoptInstead(MeasureUnit::createMeter(status));
3656 measureUnitValue = MeasureUnit::getMeter();
3657 measureUnit.adoptInstead(MeasureUnit::createMicrometer(status));
3658 measureUnitValue = MeasureUnit::getMicrometer();
3659 measureUnit.adoptInstead(MeasureUnit::createMile(status));
3660 measureUnitValue = MeasureUnit::getMile();
3661 measureUnit.adoptInstead(MeasureUnit::createMileScandinavian(status));
3662 measureUnitValue = MeasureUnit::getMileScandinavian();
3663 measureUnit.adoptInstead(MeasureUnit::createMillimeter(status));
3664 measureUnitValue = MeasureUnit::getMillimeter();
3665 measureUnit.adoptInstead(MeasureUnit::createNanometer(status));
3666 measureUnitValue = MeasureUnit::getNanometer();
3667 measureUnit.adoptInstead(MeasureUnit::createNauticalMile(status));
3668 measureUnitValue = MeasureUnit::getNauticalMile();
3669 measureUnit.adoptInstead(MeasureUnit::createParsec(status));
3670 measureUnitValue = MeasureUnit::getParsec();
3671 measureUnit.adoptInstead(MeasureUnit::createPicometer(status));
3672 measureUnitValue = MeasureUnit::getPicometer();
3673 measureUnit.adoptInstead(MeasureUnit::createPoint(status));
3674 measureUnitValue = MeasureUnit::getPoint();
3675 measureUnit.adoptInstead(MeasureUnit::createSolarRadius(status));
3676 measureUnitValue = MeasureUnit::getSolarRadius();
3677 measureUnit.adoptInstead(MeasureUnit::createYard(status));
3678 measureUnitValue = MeasureUnit::getYard();
3679 measureUnit.adoptInstead(MeasureUnit::createCandela(status));
3680 measureUnitValue = MeasureUnit::getCandela();
3681 measureUnit.adoptInstead(MeasureUnit::createLumen(status));
3682 measureUnitValue = MeasureUnit::getLumen();
3683 measureUnit.adoptInstead(MeasureUnit::createLux(status));
3684 measureUnitValue = MeasureUnit::getLux();
3685 measureUnit.adoptInstead(MeasureUnit::createSolarLuminosity(status));
3686 measureUnitValue = MeasureUnit::getSolarLuminosity();
3687 measureUnit.adoptInstead(MeasureUnit::createCarat(status));
3688 measureUnitValue = MeasureUnit::getCarat();
3689 measureUnit.adoptInstead(MeasureUnit::createDalton(status));
3690 measureUnitValue = MeasureUnit::getDalton();
3691 measureUnit.adoptInstead(MeasureUnit::createEarthMass(status));
3692 measureUnitValue = MeasureUnit::getEarthMass();
3693 measureUnit.adoptInstead(MeasureUnit::createGrain(status));
3694 measureUnitValue = MeasureUnit::getGrain();
3695 measureUnit.adoptInstead(MeasureUnit::createGram(status));
3696 measureUnitValue = MeasureUnit::getGram();
3697 measureUnit.adoptInstead(MeasureUnit::createKilogram(status));
3698 measureUnitValue = MeasureUnit::getKilogram();
3699 measureUnit.adoptInstead(MeasureUnit::createMicrogram(status));
3700 measureUnitValue = MeasureUnit::getMicrogram();
3701 measureUnit.adoptInstead(MeasureUnit::createMilligram(status));
3702 measureUnitValue = MeasureUnit::getMilligram();
3703 measureUnit.adoptInstead(MeasureUnit::createOunce(status));
3704 measureUnitValue = MeasureUnit::getOunce();
3705 measureUnit.adoptInstead(MeasureUnit::createOunceTroy(status));
3706 measureUnitValue = MeasureUnit::getOunceTroy();
3707 measureUnit.adoptInstead(MeasureUnit::createPound(status));
3708 measureUnitValue = MeasureUnit::getPound();
3709 measureUnit.adoptInstead(MeasureUnit::createSolarMass(status));
3710 measureUnitValue = MeasureUnit::getSolarMass();
3711 measureUnit.adoptInstead(MeasureUnit::createStone(status));
3712 measureUnitValue = MeasureUnit::getStone();
3713 measureUnit.adoptInstead(MeasureUnit::createTon(status));
3714 measureUnitValue = MeasureUnit::getTon();
3715 measureUnit.adoptInstead(MeasureUnit::createTonne(status));
3716 measureUnitValue = MeasureUnit::getTonne();
3717 measureUnit.adoptInstead(MeasureUnit::createGigawatt(status));
3718 measureUnitValue = MeasureUnit::getGigawatt();
3719 measureUnit.adoptInstead(MeasureUnit::createHorsepower(status));
3720 measureUnitValue = MeasureUnit::getHorsepower();
3721 measureUnit.adoptInstead(MeasureUnit::createKilowatt(status));
3722 measureUnitValue = MeasureUnit::getKilowatt();
3723 measureUnit.adoptInstead(MeasureUnit::createMegawatt(status));
3724 measureUnitValue = MeasureUnit::getMegawatt();
3725 measureUnit.adoptInstead(MeasureUnit::createMilliwatt(status));
3726 measureUnitValue = MeasureUnit::getMilliwatt();
3727 measureUnit.adoptInstead(MeasureUnit::createWatt(status));
3728 measureUnitValue = MeasureUnit::getWatt();
3729 measureUnit.adoptInstead(MeasureUnit::createAtmosphere(status));
3730 measureUnitValue = MeasureUnit::getAtmosphere();
3731 measureUnit.adoptInstead(MeasureUnit::createBar(status));
3732 measureUnitValue = MeasureUnit::getBar();
3733 measureUnit.adoptInstead(MeasureUnit::createHectopascal(status));
3734 measureUnitValue = MeasureUnit::getHectopascal();
3735 measureUnit.adoptInstead(MeasureUnit::createInchHg(status));
3736 measureUnitValue = MeasureUnit::getInchHg();
3737 measureUnit.adoptInstead(MeasureUnit::createKilopascal(status));
3738 measureUnitValue = MeasureUnit::getKilopascal();
3739 measureUnit.adoptInstead(MeasureUnit::createMegapascal(status));
3740 measureUnitValue = MeasureUnit::getMegapascal();
3741 measureUnit.adoptInstead(MeasureUnit::createMillibar(status));
3742 measureUnitValue = MeasureUnit::getMillibar();
3743 measureUnit.adoptInstead(MeasureUnit::createMillimeterOfMercury(status));
3744 measureUnitValue = MeasureUnit::getMillimeterOfMercury();
3745 measureUnit.adoptInstead(MeasureUnit::createPascal(status));
3746 measureUnitValue = MeasureUnit::getPascal();
3747 measureUnit.adoptInstead(MeasureUnit::createPoundPerSquareInch(status));
3748 measureUnitValue = MeasureUnit::getPoundPerSquareInch();
3749 measureUnit.adoptInstead(MeasureUnit::createBeaufort(status));
3750 measureUnitValue = MeasureUnit::getBeaufort();
3751 measureUnit.adoptInstead(MeasureUnit::createKilometerPerHour(status));
3752 measureUnitValue = MeasureUnit::getKilometerPerHour();
3753 measureUnit.adoptInstead(MeasureUnit::createKnot(status));
3754 measureUnitValue = MeasureUnit::getKnot();
3755 measureUnit.adoptInstead(MeasureUnit::createMeterPerSecond(status));
3756 measureUnitValue = MeasureUnit::getMeterPerSecond();
3757 measureUnit.adoptInstead(MeasureUnit::createMilePerHour(status));
3758 measureUnitValue = MeasureUnit::getMilePerHour();
3759 measureUnit.adoptInstead(MeasureUnit::createCelsius(status));
3760 measureUnitValue = MeasureUnit::getCelsius();
3761 measureUnit.adoptInstead(MeasureUnit::createFahrenheit(status));
3762 measureUnitValue = MeasureUnit::getFahrenheit();
3763 measureUnit.adoptInstead(MeasureUnit::createGenericTemperature(status));
3764 measureUnitValue = MeasureUnit::getGenericTemperature();
3765 measureUnit.adoptInstead(MeasureUnit::createKelvin(status));
3766 measureUnitValue = MeasureUnit::getKelvin();
3767 measureUnit.adoptInstead(MeasureUnit::createNewtonMeter(status));
3768 measureUnitValue = MeasureUnit::getNewtonMeter();
3769 measureUnit.adoptInstead(MeasureUnit::createPoundFoot(status));
3770 measureUnitValue = MeasureUnit::getPoundFoot();
3771 measureUnit.adoptInstead(MeasureUnit::createAcreFoot(status));
3772 measureUnitValue = MeasureUnit::getAcreFoot();
3773 measureUnit.adoptInstead(MeasureUnit::createBarrel(status));
3774 measureUnitValue = MeasureUnit::getBarrel();
3775 measureUnit.adoptInstead(MeasureUnit::createBushel(status));
3776 measureUnitValue = MeasureUnit::getBushel();
3777 measureUnit.adoptInstead(MeasureUnit::createCentiliter(status));
3778 measureUnitValue = MeasureUnit::getCentiliter();
3779 measureUnit.adoptInstead(MeasureUnit::createCubicCentimeter(status));
3780 measureUnitValue = MeasureUnit::getCubicCentimeter();
3781 measureUnit.adoptInstead(MeasureUnit::createCubicFoot(status));
3782 measureUnitValue = MeasureUnit::getCubicFoot();
3783 measureUnit.adoptInstead(MeasureUnit::createCubicInch(status));
3784 measureUnitValue = MeasureUnit::getCubicInch();
3785 measureUnit.adoptInstead(MeasureUnit::createCubicKilometer(status));
3786 measureUnitValue = MeasureUnit::getCubicKilometer();
3787 measureUnit.adoptInstead(MeasureUnit::createCubicMeter(status));
3788 measureUnitValue = MeasureUnit::getCubicMeter();
3789 measureUnit.adoptInstead(MeasureUnit::createCubicMile(status));
3790 measureUnitValue = MeasureUnit::getCubicMile();
3791 measureUnit.adoptInstead(MeasureUnit::createCubicYard(status));
3792 measureUnitValue = MeasureUnit::getCubicYard();
3793 measureUnit.adoptInstead(MeasureUnit::createCup(status));
3794 measureUnitValue = MeasureUnit::getCup();
3795 measureUnit.adoptInstead(MeasureUnit::createCupMetric(status));
3796 measureUnitValue = MeasureUnit::getCupMetric();
3797 measureUnit.adoptInstead(MeasureUnit::createDeciliter(status));
3798 measureUnitValue = MeasureUnit::getDeciliter();
3799 measureUnit.adoptInstead(MeasureUnit::createDessertSpoon(status));
3800 measureUnitValue = MeasureUnit::getDessertSpoon();
3801 measureUnit.adoptInstead(MeasureUnit::createDessertSpoonImperial(status));
3802 measureUnitValue = MeasureUnit::getDessertSpoonImperial();
3803 measureUnit.adoptInstead(MeasureUnit::createDram(status));
3804 measureUnitValue = MeasureUnit::getDram();
3805 measureUnit.adoptInstead(MeasureUnit::createDrop(status));
3806 measureUnitValue = MeasureUnit::getDrop();
3807 measureUnit.adoptInstead(MeasureUnit::createFluidOunce(status));
3808 measureUnitValue = MeasureUnit::getFluidOunce();
3809 measureUnit.adoptInstead(MeasureUnit::createFluidOunceImperial(status));
3810 measureUnitValue = MeasureUnit::getFluidOunceImperial();
3811 measureUnit.adoptInstead(MeasureUnit::createGallon(status));
3812 measureUnitValue = MeasureUnit::getGallon();
3813 measureUnit.adoptInstead(MeasureUnit::createGallonImperial(status));
3814 measureUnitValue = MeasureUnit::getGallonImperial();
3815 measureUnit.adoptInstead(MeasureUnit::createHectoliter(status));
3816 measureUnitValue = MeasureUnit::getHectoliter();
3817 measureUnit.adoptInstead(MeasureUnit::createJigger(status));
3818 measureUnitValue = MeasureUnit::getJigger();
3819 measureUnit.adoptInstead(MeasureUnit::createLiter(status));
3820 measureUnitValue = MeasureUnit::getLiter();
3821 measureUnit.adoptInstead(MeasureUnit::createMegaliter(status));
3822 measureUnitValue = MeasureUnit::getMegaliter();
3823 measureUnit.adoptInstead(MeasureUnit::createMilliliter(status));
3824 measureUnitValue = MeasureUnit::getMilliliter();
3825 measureUnit.adoptInstead(MeasureUnit::createPinch(status));
3826 measureUnitValue = MeasureUnit::getPinch();
3827 measureUnit.adoptInstead(MeasureUnit::createPint(status));
3828 measureUnitValue = MeasureUnit::getPint();
3829 measureUnit.adoptInstead(MeasureUnit::createPintMetric(status));
3830 measureUnitValue = MeasureUnit::getPintMetric();
3831 measureUnit.adoptInstead(MeasureUnit::createQuart(status));
3832 measureUnitValue = MeasureUnit::getQuart();
3833 measureUnit.adoptInstead(MeasureUnit::createQuartImperial(status));
3834 measureUnitValue = MeasureUnit::getQuartImperial();
3835 measureUnit.adoptInstead(MeasureUnit::createTablespoon(status));
3836 measureUnitValue = MeasureUnit::getTablespoon();
3837 measureUnit.adoptInstead(MeasureUnit::createTeaspoon(status));
3838 measureUnitValue = MeasureUnit::getTeaspoon();
3839 assertSuccess("", status);
3840 }
3841
TestBasic()3842 void MeasureFormatTest::TestBasic() {
3843 UErrorCode status = U_ZERO_ERROR;
3844 MeasureUnit *ptr1 = MeasureUnit::createArcMinute(status);
3845 MeasureUnit *ptr2 = MeasureUnit::createArcMinute(status);
3846 if (!(*ptr1 == *ptr2)) {
3847 errln("Expect == to work.");
3848 }
3849 if (*ptr1 != *ptr2) {
3850 errln("Expect != to work.");
3851 }
3852 MeasureUnit *ptr3 = MeasureUnit::createMeter(status);
3853 if (*ptr1 == *ptr3) {
3854 errln("Expect == to work.");
3855 }
3856 if (!(*ptr1 != *ptr3)) {
3857 errln("Expect != to work.");
3858 }
3859 MeasureUnit *ptr4 = ptr1->clone();
3860 if (*ptr1 != *ptr4) {
3861 errln("Expect clone to work.");
3862 }
3863 MeasureUnit stack;
3864 stack = *ptr1;
3865 if (*ptr1 != stack) {
3866 errln("Expect assignment to work.");
3867 }
3868
3869 delete ptr1;
3870 delete ptr2;
3871 delete ptr3;
3872 delete ptr4;
3873 }
3874
TestGetAvailable()3875 void MeasureFormatTest::TestGetAvailable() {
3876 MeasureUnit *units = nullptr;
3877 UErrorCode status = U_ZERO_ERROR;
3878 int32_t totalCount = MeasureUnit::getAvailable(units, 0, status);
3879 while (status == U_BUFFER_OVERFLOW_ERROR) {
3880 status = U_ZERO_ERROR;
3881 delete [] units;
3882 units = new MeasureUnit[totalCount];
3883 totalCount = MeasureUnit::getAvailable(units, totalCount, status);
3884 }
3885 if (U_FAILURE(status)) {
3886 dataerrln("Failure creating format object - %s", u_errorName(status));
3887 delete [] units;
3888 return;
3889 }
3890 if (totalCount < 200) {
3891 errln("Expect at least 200 measure units including currencies.");
3892 }
3893 delete [] units;
3894 StringEnumeration *types = MeasureUnit::getAvailableTypes(status);
3895 if (U_FAILURE(status)) {
3896 dataerrln("Failure getting types - %s", u_errorName(status));
3897 delete types;
3898 return;
3899 }
3900 if (types->count(status) < 10) {
3901 errln("Expect at least 10 distinct unit types.");
3902 }
3903 units = nullptr;
3904 int32_t unitCapacity = 0;
3905 int32_t unitCountSum = 0;
3906 for (
3907 const char* type = types->next(nullptr, status);
3908 type != nullptr;
3909 type = types->next(nullptr, status)) {
3910 int32_t unitCount = MeasureUnit::getAvailable(type, units, unitCapacity, status);
3911 while (status == U_BUFFER_OVERFLOW_ERROR) {
3912 status = U_ZERO_ERROR;
3913 delete [] units;
3914 units = new MeasureUnit[unitCount];
3915 unitCapacity = unitCount;
3916 unitCount = MeasureUnit::getAvailable(type, units, unitCapacity, status);
3917 }
3918 if (U_FAILURE(status)) {
3919 dataerrln("Failure getting units - %s", u_errorName(status));
3920 delete [] units;
3921 delete types;
3922 return;
3923 }
3924 if (unitCount < 1) {
3925 errln("Expect at least one unit count per type.");
3926 }
3927 unitCountSum += unitCount;
3928 }
3929 if (unitCountSum != totalCount) {
3930 errln("Expected total unit count to equal sum of unit counts by type.");
3931 }
3932 delete [] units;
3933 delete types;
3934 }
3935
TestExamplesInDocs()3936 void MeasureFormatTest::TestExamplesInDocs() {
3937 UErrorCode status = U_ZERO_ERROR;
3938 MeasureFormat fmtFr(Locale::getFrench(), UMEASFMT_WIDTH_SHORT, status);
3939 MeasureFormat fmtFrFull(
3940 Locale::getFrench(), UMEASFMT_WIDTH_WIDE, status);
3941 MeasureFormat fmtFrNarrow(
3942 Locale::getFrench(), UMEASFMT_WIDTH_NARROW, status);
3943 MeasureFormat fmtEn(Locale::getUS(), UMEASFMT_WIDTH_WIDE, status);
3944 if (!assertSuccess("Error creating formatters", status)) {
3945 return;
3946 }
3947 Measure measureC((double)23, MeasureUnit::createCelsius(status), status);
3948 Measure measureF((double)70, MeasureUnit::createFahrenheit(status), status);
3949 Measure feetAndInches[] = {
3950 Measure((double)70, MeasureUnit::createFoot(status), status),
3951 Measure((double)5.3, MeasureUnit::createInch(status), status)};
3952 Measure footAndInch[] = {
3953 Measure((double)1, MeasureUnit::createFoot(status), status),
3954 Measure((double)1, MeasureUnit::createInch(status), status)};
3955 Measure inchAndFeet[] = {
3956 Measure((double)1, MeasureUnit::createInch(status), status),
3957 Measure((double)2, MeasureUnit::createFoot(status), status)};
3958 if (!assertSuccess("Error creating measurements.", status)) {
3959 return;
3960 }
3961 verifyFormat(
3962 "Celsius",
3963 fmtFr,
3964 &measureC,
3965 1,
3966 "23\\u202F\\u00B0C");
3967 verifyFormatWithPrefix(
3968 "Celsius",
3969 fmtFr,
3970 "Prefix: ",
3971 &measureC,
3972 1,
3973 "Prefix: 23\\u202F\\u00B0C");
3974 verifyFormat(
3975 "Fahrenheit",
3976 fmtFr,
3977 &measureF,
3978 1,
3979 "70\\u202F\\u00B0F");
3980 verifyFormat(
3981 "Feet and inches",
3982 fmtFrFull,
3983 feetAndInches,
3984 UPRV_LENGTHOF(feetAndInches),
3985 "70 pieds et 5,3\\u00A0pouces");
3986 verifyFormatWithPrefix(
3987 "Feet and inches",
3988 fmtFrFull,
3989 "Prefix: ",
3990 feetAndInches,
3991 UPRV_LENGTHOF(feetAndInches),
3992 "Prefix: 70 pieds et 5,3\\u00A0pouces");
3993 verifyFormat(
3994 "Foot and inch",
3995 fmtFrFull,
3996 footAndInch,
3997 UPRV_LENGTHOF(footAndInch),
3998 "1\\u00A0pied et 1\\u00A0pouce");
3999 verifyFormat(
4000 "Foot and inch narrow",
4001 fmtFrNarrow,
4002 footAndInch,
4003 UPRV_LENGTHOF(footAndInch),
4004 "1\\u2032 1\\u2033");
4005 verifyFormat(
4006 "Inch and feet",
4007 fmtEn,
4008 inchAndFeet,
4009 UPRV_LENGTHOF(inchAndFeet),
4010 "1 inch, 2 feet");
4011 }
4012
TestFormatPeriodEn()4013 void MeasureFormatTest::TestFormatPeriodEn() {
4014 UErrorCode status = U_ZERO_ERROR;
4015 Measure t_1y[] = {Measure((double)1, MeasureUnit::createYear(status), status)};
4016 Measure t_5M[] = {Measure((double)5, MeasureUnit::createMonth(status), status)};
4017 Measure t_4d[] = {Measure((double)4, MeasureUnit::createDay(status), status)};
4018 Measure t_2h[] = {Measure((double)2, MeasureUnit::createHour(status), status)};
4019 Measure t_19m[] = {Measure((double)19, MeasureUnit::createMinute(status), status)};
4020 Measure t_1h_23_5s[] = {
4021 Measure((double)1.0, MeasureUnit::createHour(status), status),
4022 Measure((double)23.5, MeasureUnit::createSecond(status), status)
4023 };
4024 Measure t_1h_23_5m[] = {
4025 Measure((double)1.0, MeasureUnit::createHour(status), status),
4026 Measure((double)23.5, MeasureUnit::createMinute(status), status)
4027 };
4028 Measure t_1h_0m_23s[] = {
4029 Measure(
4030 (double)1.0,
4031 TimeUnit::createInstance(
4032 TimeUnit::UTIMEUNIT_HOUR, status),
4033 status),
4034 Measure(
4035 (double)0.0,
4036 TimeUnit::createInstance(
4037 TimeUnit::UTIMEUNIT_MINUTE, status),
4038 status),
4039 Measure(
4040 (double)23.0,
4041 TimeUnit::createInstance(
4042 TimeUnit::UTIMEUNIT_SECOND, status),
4043 status)
4044 };
4045 Measure t_2y_5M_3w_4d[] = {
4046 Measure(2.0, MeasureUnit::createYear(status), status),
4047 Measure(5.0, MeasureUnit::createMonth(status), status),
4048 Measure(3.0, MeasureUnit::createWeek(status), status),
4049 Measure(4.0, MeasureUnit::createDay(status), status)
4050 };
4051 Measure t_1m_59_9996s[] = {
4052 Measure(1.0, MeasureUnit::createMinute(status), status),
4053 Measure(59.9996, MeasureUnit::createSecond(status), status)
4054 };
4055 Measure t_5h_17m[] = {
4056 Measure(5.0, MeasureUnit::createHour(status), status),
4057 Measure(17.0, MeasureUnit::createMinute(status), status)
4058 };
4059 Measure t_neg5h_17m[] = {
4060 Measure(-5.0, MeasureUnit::createHour(status), status),
4061 Measure(17.0, MeasureUnit::createMinute(status), status)
4062 };
4063 Measure t_19m_28s[] = {
4064 Measure(19.0, MeasureUnit::createMinute(status), status),
4065 Measure(28.0, MeasureUnit::createSecond(status), status)
4066 };
4067 Measure t_0h_0m_9s[] = {
4068 Measure(0.0, MeasureUnit::createHour(status), status),
4069 Measure(0.0, MeasureUnit::createMinute(status), status),
4070 Measure(9.0, MeasureUnit::createSecond(status), status)
4071 };
4072 Measure t_0h_0m_17s[] = {
4073 Measure(0.0, MeasureUnit::createHour(status), status),
4074 Measure(0.0, MeasureUnit::createMinute(status), status),
4075 Measure(17.0, MeasureUnit::createSecond(status), status)
4076 };
4077 Measure t_6h_56_92m[] = {
4078 Measure(6.0, MeasureUnit::createHour(status), status),
4079 Measure(56.92, MeasureUnit::createMinute(status), status)
4080 };
4081 Measure t_3h_4s_5m[] = {
4082 Measure(3.0, MeasureUnit::createHour(status), status),
4083 Measure(4.0, MeasureUnit::createSecond(status), status),
4084 Measure(5.0, MeasureUnit::createMinute(status), status)
4085 };
4086 Measure t_6_7h_56_92m[] = {
4087 Measure(6.7, MeasureUnit::createHour(status), status),
4088 Measure(56.92, MeasureUnit::createMinute(status), status)
4089 };
4090
4091 Measure t_3h_5h[] = {
4092 Measure(3.0, MeasureUnit::createHour(status), status),
4093 Measure(5.0, MeasureUnit::createHour(status), status)
4094 };
4095
4096 if (!assertSuccess("Error creating Measure objects", status)) {
4097 return;
4098 }
4099
4100 ExpectedResult fullData[] = {
4101 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 minute, 59.9996 seconds"},
4102 {t_19m, UPRV_LENGTHOF(t_19m), "19 minutes"},
4103 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hour, 23.5 seconds"},
4104 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hour, 23.5 minutes"},
4105 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hour, 0 minutes, 23 seconds"},
4106 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 years, 5 months, 3 weeks, 4 days"}};
4107
4108 ExpectedResult abbrevData[] = {
4109 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 min, 59.9996 sec"},
4110 {t_19m, UPRV_LENGTHOF(t_19m), "19 min"},
4111 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 hr, 23.5 sec"},
4112 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 hr, 23.5 min"},
4113 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 hr, 0 min, 23 sec"},
4114 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 yrs, 5 mths, 3 wks, 4 days"}};
4115
4116 ExpectedResult narrowData[] = {
4117 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1m 59.9996s"},
4118 {t_19m, UPRV_LENGTHOF(t_19m), "19m"},
4119 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1h 23.5s"},
4120 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1h 23.5m"},
4121 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1h 0m 23s"},
4122 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2y 5m 3w 4d"}};
4123
4124 ExpectedResult numericData[] = {
4125 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1:59.9996"},
4126 {t_19m, UPRV_LENGTHOF(t_19m), "19m"},
4127 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1:00:23.5"},
4128 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1:23.5"},
4129 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1:00:23"},
4130 {t_5h_17m, UPRV_LENGTHOF(t_5h_17m), "5:17"},
4131 {t_neg5h_17m, UPRV_LENGTHOF(t_neg5h_17m), "-5h 17m"},
4132 {t_19m_28s, UPRV_LENGTHOF(t_19m_28s), "19:28"},
4133 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2y 5m 3w 4d"},
4134 {t_0h_0m_9s, UPRV_LENGTHOF(t_0h_0m_9s), "0:00:09"},
4135 {t_6h_56_92m, UPRV_LENGTHOF(t_6h_56_92m), "6:56.92"},
4136 {t_6_7h_56_92m, UPRV_LENGTHOF(t_6_7h_56_92m), "6:56.92"},
4137 {t_3h_4s_5m, UPRV_LENGTHOF(t_3h_4s_5m), "3h 4s 5m"},
4138 {t_3h_5h, UPRV_LENGTHOF(t_3h_5h), "3h 5h"}};
4139
4140 ExpectedResult fullDataDe[] = {
4141 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1 Minute, 59,9996 Sekunden"},
4142 {t_19m, UPRV_LENGTHOF(t_19m), "19 Minuten"},
4143 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1 Stunde, 23,5 Sekunden"},
4144 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1 Stunde, 23,5 Minuten"},
4145 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1 Stunde, 0 Minuten und 23 Sekunden"},
4146 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 Jahre, 5 Monate, 3 Wochen und 4 Tage"}};
4147
4148 ExpectedResult numericDataDe[] = {
4149 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1:59,9996"},
4150 {t_19m, UPRV_LENGTHOF(t_19m), "19 Min."},
4151 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1:00:23,5"},
4152 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1:23,5"},
4153 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1:00:23"},
4154 {t_5h_17m, UPRV_LENGTHOF(t_5h_17m), "5:17"},
4155 {t_19m_28s, UPRV_LENGTHOF(t_19m_28s), "19:28"},
4156 {t_2y_5M_3w_4d, UPRV_LENGTHOF(t_2y_5M_3w_4d), "2 J, 5 M, 3 W und 4 T"},
4157 {t_0h_0m_17s, UPRV_LENGTHOF(t_0h_0m_17s), "0:00:17"},
4158 {t_6h_56_92m, UPRV_LENGTHOF(t_6h_56_92m), "6:56,92"},
4159 {t_3h_5h, UPRV_LENGTHOF(t_3h_5h), "3 Std., 5 Std."}};
4160
4161 ExpectedResult numericDataBn[] = {
4162 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "\\u09E7:\\u09EB\\u09EF.\\u09EF\\u09EF\\u09EF\\u09EC"},
4163 {t_19m, UPRV_LENGTHOF(t_19m), "\\u09E7\\u09EF \\u09AE\\u09BF\\u0983"},
4164 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "\\u09E7:\\u09E6\\u09E6:\\u09E8\\u09E9.\\u09EB"},
4165 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "\\u09E7:\\u09E6\\u09E6:\\u09E8\\u09E9"},
4166 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "\\u09E7:\\u09E8\\u09E9.\\u09EB"},
4167 {t_5h_17m, UPRV_LENGTHOF(t_5h_17m), "\\u09EB:\\u09E7\\u09ED"},
4168 {t_19m_28s, UPRV_LENGTHOF(t_19m_28s), "\\u09E7\\u09EF:\\u09E8\\u09EE"},
4169 {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"},
4170 {t_0h_0m_17s, UPRV_LENGTHOF(t_0h_0m_17s), "\\u09E6:\\u09E6\\u09E6:\\u09E7\\u09ED"},
4171 {t_6h_56_92m, UPRV_LENGTHOF(t_6h_56_92m), "\\u09EC:\\u09EB\\u09EC.\\u09EF\\u09E8"},
4172 {t_3h_5h, UPRV_LENGTHOF(t_3h_5h), "\\u09E9 \\u0998\\u0983, \\u09EB \\u0998\\u0983"}};
4173
4174 ExpectedResult numericDataBnLatn[] = {
4175 {t_1m_59_9996s, UPRV_LENGTHOF(t_1m_59_9996s), "1:59.9996"},
4176 {t_19m, UPRV_LENGTHOF(t_19m), "19 \\u09AE\\u09BF\\u0983"},
4177 {t_1h_23_5s, UPRV_LENGTHOF(t_1h_23_5s), "1:00:23.5"},
4178 {t_1h_0m_23s, UPRV_LENGTHOF(t_1h_0m_23s), "1:00:23"},
4179 {t_1h_23_5m, UPRV_LENGTHOF(t_1h_23_5m), "1:23.5"},
4180 {t_5h_17m, UPRV_LENGTHOF(t_5h_17m), "5:17"},
4181 {t_19m_28s, UPRV_LENGTHOF(t_19m_28s), "19:28"},
4182 {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"},
4183 {t_0h_0m_17s, UPRV_LENGTHOF(t_0h_0m_17s), "0:00:17"},
4184 {t_6h_56_92m, UPRV_LENGTHOF(t_6h_56_92m), "6:56.92"},
4185 {t_3h_5h, UPRV_LENGTHOF(t_3h_5h), "3 \\u0998\\u0983, 5 \\u0998\\u0983"}};
4186
4187 ExpectedResult fullDataSpellout[] = {
4188 {t_1y, UPRV_LENGTHOF(t_1y), "one year"},
4189 {t_5M, UPRV_LENGTHOF(t_5M), "five months"},
4190 {t_4d, UPRV_LENGTHOF(t_4d), "four days"},
4191 {t_2h, UPRV_LENGTHOF(t_2h), "two hours"},
4192 {t_19m, UPRV_LENGTHOF(t_19m), "nineteen minutes"}};
4193
4194 ExpectedResult fullDataSpelloutFr[] = {
4195 {t_1y, UPRV_LENGTHOF(t_1y), "un\\u00A0an"},
4196 {t_5M, UPRV_LENGTHOF(t_5M), "cinq\\u00A0mois"},
4197 {t_4d, UPRV_LENGTHOF(t_4d), "quatre\\u00A0jours"},
4198 {t_2h, UPRV_LENGTHOF(t_2h), "deux\\u00A0heures"},
4199 {t_19m, UPRV_LENGTHOF(t_19m), "dix-neuf minutes"}};
4200
4201 Locale en(Locale::getEnglish());
4202 LocalPointer<NumberFormat> nf(NumberFormat::createInstance(en, status));
4203 if (U_FAILURE(status)) {
4204 dataerrln("Error creating number format en object - %s", u_errorName(status));
4205 return;
4206 }
4207 nf->setMaximumFractionDigits(4);
4208 MeasureFormat mf(en, UMEASFMT_WIDTH_WIDE, nf->clone(), status);
4209 if (!assertSuccess("Error creating measure format en WIDE", status)) {
4210 return;
4211 }
4212 verifyFormat("en WIDE", mf, fullData, UPRV_LENGTHOF(fullData));
4213
4214 // exercise copy constructor
4215 {
4216 MeasureFormat mf2(mf);
4217 verifyFormat("en WIDE copy", mf2, fullData, UPRV_LENGTHOF(fullData));
4218 }
4219 // exercise clone
4220 {
4221 MeasureFormat *mf3 = mf.clone();
4222 verifyFormat("en WIDE copy", *mf3, fullData, UPRV_LENGTHOF(fullData));
4223 delete mf3;
4224 }
4225 mf = MeasureFormat(en, UMEASFMT_WIDTH_SHORT, nf->clone(), status);
4226 if (!assertSuccess("Error creating measure format en SHORT", status)) {
4227 return;
4228 }
4229 verifyFormat("en SHORT", mf, abbrevData, UPRV_LENGTHOF(abbrevData));
4230 mf = MeasureFormat(en, UMEASFMT_WIDTH_NARROW, nf->clone(), status);
4231 if (!assertSuccess("Error creating measure format en NARROW", status)) {
4232 return;
4233 }
4234 verifyFormat("en NARROW", mf, narrowData, UPRV_LENGTHOF(narrowData));
4235 mf = MeasureFormat(en, UMEASFMT_WIDTH_NUMERIC, nf->clone(), status);
4236 if (!assertSuccess("Error creating measure format en NUMERIC", status)) {
4237 return;
4238 }
4239 verifyFormat("en NUMERIC", mf, numericData, UPRV_LENGTHOF(numericData));
4240
4241 Locale de(Locale::getGerman());
4242 nf.adoptInstead(NumberFormat::createInstance(de, status));
4243 if (!assertSuccess("Error creating number format de object", status)) {
4244 return;
4245 }
4246 nf->setMaximumFractionDigits(4);
4247 mf = MeasureFormat(de, UMEASFMT_WIDTH_WIDE, nf->clone(), status);
4248 if (!assertSuccess("Error creating measure format de WIDE", status)) {
4249 return;
4250 }
4251 verifyFormat("de WIDE", mf, fullDataDe, UPRV_LENGTHOF(fullDataDe));
4252 mf = MeasureFormat(de, UMEASFMT_WIDTH_NUMERIC, nf->clone(), status);
4253 if (!assertSuccess("Error creating measure format de NUMERIC", status)) {
4254 return;
4255 }
4256 verifyFormat("de NUMERIC", mf, numericDataDe, UPRV_LENGTHOF(numericDataDe));
4257
4258 Locale bengali("bn");
4259 nf.adoptInstead(NumberFormat::createInstance(bengali, status));
4260 if (!assertSuccess("Error creating number format de object", status)) {
4261 return;
4262 }
4263 nf->setMaximumFractionDigits(4);
4264 mf = MeasureFormat(bengali, UMEASFMT_WIDTH_NUMERIC, nf->clone(), status);
4265 if (!assertSuccess("Error creating measure format bn NUMERIC", status)) {
4266 return;
4267 }
4268 verifyFormat("bn NUMERIC", mf, numericDataBn, UPRV_LENGTHOF(numericDataBn));
4269
4270 Locale bengaliLatin("bn-u-nu-latn");
4271 nf.adoptInstead(NumberFormat::createInstance(bengaliLatin, status));
4272 if (!assertSuccess("Error creating number format de object", status)) {
4273 return;
4274 }
4275 nf->setMaximumFractionDigits(4);
4276 mf = MeasureFormat(bengaliLatin, UMEASFMT_WIDTH_NUMERIC, nf->clone(), status);
4277 if (!assertSuccess("Error creating measure format bn-u-nu-latn NUMERIC", status)) {
4278 return;
4279 }
4280 verifyFormat("bn-u-nu-latn NUMERIC", mf, numericDataBnLatn, UPRV_LENGTHOF(numericDataBnLatn));
4281
4282 status = U_ZERO_ERROR;
4283 LocalPointer<RuleBasedNumberFormat> rbnf(new RuleBasedNumberFormat(URBNF_SPELLOUT, en, status));
4284 if (U_FAILURE(status)) {
4285 dataerrln("Error creating rbnf en object - %s", u_errorName(status));
4286 return;
4287 }
4288 mf = MeasureFormat(en, UMEASFMT_WIDTH_WIDE, rbnf->clone(), status);
4289 if (!assertSuccess("Error creating measure format en WIDE with rbnf", status)) {
4290 return;
4291 }
4292 verifyFormat("en WIDE rbnf", mf, fullDataSpellout, UPRV_LENGTHOF(fullDataSpellout));
4293
4294 Locale fr(Locale::getFrench());
4295 LocalPointer<RuleBasedNumberFormat> rbnffr(new RuleBasedNumberFormat(URBNF_SPELLOUT, fr, status));
4296 if (U_FAILURE(status)) {
4297 dataerrln("Error creating rbnf fr object - %s", u_errorName(status));
4298 return;
4299 }
4300 mf = MeasureFormat(fr, UMEASFMT_WIDTH_WIDE, rbnffr->clone(), status);
4301 if (!assertSuccess("Error creating measure format fr WIDE with rbnf", status)) {
4302 return;
4303 }
4304 verifyFormat("fr WIDE rbnf", mf, fullDataSpelloutFr, UPRV_LENGTHOF(fullDataSpellout));
4305 }
4306
Test10219FractionalPlurals()4307 void MeasureFormatTest::Test10219FractionalPlurals() {
4308 Locale en(Locale::getEnglish());
4309 double values[] = {1.588, 1.011};
4310 const char *expected[2][3] = {
4311 {"1 minute", "1.5 minutes", "1.58 minutes"},
4312 {"1 minute", "1.0 minutes", "1.01 minutes"}
4313 };
4314 UErrorCode status = U_ZERO_ERROR;
4315 for (int j = 0; j < UPRV_LENGTHOF(values); j++) {
4316 for (int i = 0; i < UPRV_LENGTHOF(expected[j]); i++) {
4317 DecimalFormat *df =
4318 dynamic_cast<DecimalFormat *>(NumberFormat::createInstance(en, status));
4319 if (U_FAILURE(status)) {
4320 dataerrln("Error creating Number format - %s", u_errorName(status));
4321 return;
4322 }
4323 df->setRoundingMode(DecimalFormat::kRoundDown);
4324 df->setMinimumFractionDigits(i);
4325 df->setMaximumFractionDigits(i);
4326 MeasureFormat mf(en, UMEASFMT_WIDTH_WIDE, df, status);
4327 if (!assertSuccess("Error creating Measure format", status)) {
4328 return;
4329 }
4330 Measure measure(values[j], MeasureUnit::createMinute(status), status);
4331 if (!assertSuccess("Error creating Measure unit", status)) {
4332 return;
4333 }
4334 verifyFormat("Test10219", mf, &measure, 1, expected[j][i]);
4335 }
4336 }
4337 }
4338
toMeasureUnit(MeasureUnit * adopted)4339 static MeasureUnit toMeasureUnit(MeasureUnit *adopted) {
4340 MeasureUnit result(*adopted);
4341 delete adopted;
4342 return result;
4343 }
4344
TestGreek()4345 void MeasureFormatTest::TestGreek() {
4346 Locale locales[] = {Locale("el_GR"), Locale("el")};
4347 UErrorCode status = U_ZERO_ERROR;
4348 MeasureUnit units[] = {
4349 toMeasureUnit(MeasureUnit::createSecond(status)),
4350 toMeasureUnit(MeasureUnit::createMinute(status)),
4351 toMeasureUnit(MeasureUnit::createHour(status)),
4352 toMeasureUnit(MeasureUnit::createDay(status)),
4353 toMeasureUnit(MeasureUnit::createWeek(status)),
4354 toMeasureUnit(MeasureUnit::createMonth(status)),
4355 toMeasureUnit(MeasureUnit::createYear(status))};
4356 if (!assertSuccess("Error creating Measure units", status)) {
4357 return;
4358 }
4359 UMeasureFormatWidth styles[] = {
4360 UMEASFMT_WIDTH_WIDE,
4361 UMEASFMT_WIDTH_SHORT};
4362 int32_t numbers[] = {1, 7};
4363 const char *expected[] = {
4364 // "el_GR" 1 wide
4365 "1 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03BF",
4366 "1 \\u03BB\\u03B5\\u03C0\\u03C4\\u03CC",
4367 "1 \\u03CE\\u03C1\\u03B1",
4368 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
4369 "1 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B1",
4370 "1 \\u03BC\\u03AE\\u03BD\\u03B1\\u03C2",
4371 "1 \\u03AD\\u03C4\\u03BF\\u03C2",
4372 // "el_GR" 1 short
4373 "1 \\u03B4\\u03B5\\u03C5\\u03C4.",
4374 "1 \\u03BB.",
4375 "1 \\u03CE.",
4376 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
4377 "1 \\u03B5\\u03B2\\u03B4.",
4378 "1 \\u03BC\\u03AE\\u03BD.",
4379 "1 \\u03AD\\u03C4.", // year (one)
4380 // "el_GR" 7 wide
4381 "7 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03B1",
4382 "7 \\u03BB\\u03B5\\u03C0\\u03C4\\u03AC",
4383 "7 \\u03CE\\u03C1\\u03B5\\u03C2",
4384 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
4385 "7 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B5\\u03C2",
4386 "7 \\u03BC\\u03AE\\u03BD\\u03B5\\u03C2",
4387 "7 \\u03AD\\u03C4\\u03B7",
4388 // "el_GR" 7 short
4389 "7 \\u03B4\\u03B5\\u03C5\\u03C4.",
4390 "7 \\u03BB.",
4391 "7 \\u03CE.", // hour (other)
4392 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
4393 "7 \\u03B5\\u03B2\\u03B4.",
4394 "7 \\u03BC\\u03AE\\u03BD.",
4395 "7 \\u03AD\\u03C4.", // year (other)
4396
4397 // "el" 1 wide
4398 "1 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03BF",
4399 "1 \\u03BB\\u03B5\\u03C0\\u03C4\\u03CC",
4400 "1 \\u03CE\\u03C1\\u03B1",
4401 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
4402 "1 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B1",
4403 "1 \\u03BC\\u03AE\\u03BD\\u03B1\\u03C2",
4404 "1 \\u03AD\\u03C4\\u03BF\\u03C2",
4405 // "el" 1 short
4406 "1 \\u03B4\\u03B5\\u03C5\\u03C4.",
4407 "1 \\u03BB.",
4408 "1 \\u03CE.",
4409 "1 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B1",
4410 "1 \\u03B5\\u03B2\\u03B4.",
4411 "1 \\u03BC\\u03AE\\u03BD.",
4412 "1 \\u03AD\\u03C4.", // year (one)
4413 // "el" 7 wide
4414 "7 \\u03B4\\u03B5\\u03C5\\u03C4\\u03B5\\u03C1\\u03CC\\u03BB\\u03B5\\u03C0\\u03C4\\u03B1",
4415 "7 \\u03BB\\u03B5\\u03C0\\u03C4\\u03AC",
4416 "7 \\u03CE\\u03C1\\u03B5\\u03C2",
4417 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
4418 "7 \\u03B5\\u03B2\\u03B4\\u03BF\\u03BC\\u03AC\\u03B4\\u03B5\\u03C2",
4419 "7 \\u03BC\\u03AE\\u03BD\\u03B5\\u03C2",
4420 "7 \\u03AD\\u03C4\\u03B7",
4421 // "el" 7 short
4422 "7 \\u03B4\\u03B5\\u03C5\\u03C4.",
4423 "7 \\u03BB.",
4424 "7 \\u03CE.", // hour (other)
4425 "7 \\u03B7\\u03BC\\u03AD\\u03C1\\u03B5\\u03C2",
4426 "7 \\u03B5\\u03B2\\u03B4.",
4427 "7 \\u03BC\\u03AE\\u03BD.",
4428 "7 \\u03AD\\u03C4."}; // year (other)
4429
4430 int32_t counter = 0;
4431 for (int32_t locIndex = 0; locIndex < UPRV_LENGTHOF(locales); ++locIndex ) {
4432 for( int32_t numIndex = 0; numIndex < UPRV_LENGTHOF(numbers); ++numIndex ) {
4433 for ( int32_t styleIndex = 0; styleIndex < UPRV_LENGTHOF(styles); ++styleIndex ) {
4434 for ( int32_t unitIndex = 0; unitIndex < UPRV_LENGTHOF(units); ++unitIndex ) {
4435 Measure measure(numbers[numIndex], new MeasureUnit(units[unitIndex]), status);
4436 if (!assertSuccess("Error creating Measure", status)) {
4437 return;
4438 }
4439 MeasureFormat fmt(locales[locIndex], styles[styleIndex], status);
4440 if (!assertSuccess("Error creating Measure format", status)) {
4441 return;
4442 }
4443 verifyFormat("TestGreek", fmt, &measure, 1, expected[counter]);
4444 ++counter;
4445 }
4446 }
4447 }
4448 }
4449 }
4450
TestFormatSingleArg()4451 void MeasureFormatTest::TestFormatSingleArg() {
4452 UErrorCode status = U_ZERO_ERROR;
4453 MeasureFormat fmt("en", UMEASFMT_WIDTH_WIDE, status);
4454 if (!assertSuccess("Error creating formatter", status)) {
4455 return;
4456 }
4457 UnicodeString buffer;
4458 FieldPosition pos(FieldPosition::DONT_CARE);
4459 fmt.format(
4460 new Measure(3.5, MeasureUnit::createFoot(status), status),
4461 buffer,
4462 pos,
4463 status);
4464 if (!assertSuccess("Error formatting", status)) {
4465 return;
4466 }
4467 assertEquals(
4468 "TestFormatSingleArg",
4469 UnicodeString("3.5 feet"),
4470 buffer);
4471 }
4472
TestFormatMeasuresZeroArg()4473 void MeasureFormatTest::TestFormatMeasuresZeroArg() {
4474 UErrorCode status = U_ZERO_ERROR;
4475 MeasureFormat fmt("en", UMEASFMT_WIDTH_WIDE, status);
4476 verifyFormat("TestFormatMeasuresZeroArg", fmt, nullptr, 0, "");
4477 }
4478
TestSimplePer()4479 void MeasureFormatTest::TestSimplePer() {
4480 Locale en("en");
4481 UErrorCode status = U_ZERO_ERROR;
4482 LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status));
4483 LocalPointer<MeasureUnit> minute(MeasureUnit::createMinute(status));
4484 LocalPointer<MeasureUnit> pound(MeasureUnit::createPound(status));
4485 if (!assertSuccess("", status)) {
4486 return;
4487 }
4488
4489 helperTestSimplePer(
4490 en, UMEASFMT_WIDTH_WIDE,
4491 1.0, *pound, *second, "1 pound per second");
4492 helperTestSimplePer(
4493 en, UMEASFMT_WIDTH_WIDE,
4494 2.0, *pound, *second, "2 pounds per second");
4495 helperTestSimplePer(
4496 en, UMEASFMT_WIDTH_WIDE,
4497 1.0, *pound, *minute, "1 pound per minute");
4498 helperTestSimplePer(
4499 en, UMEASFMT_WIDTH_WIDE,
4500 2.0, *pound, *minute, "2 pounds per minute");
4501
4502 helperTestSimplePer(
4503 en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *second, "1 lb/s");
4504 helperTestSimplePer(
4505 en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *second, "2 lb/s");
4506 helperTestSimplePer(
4507 en, UMEASFMT_WIDTH_SHORT, 1.0, *pound, *minute, "1 lb/min");
4508 helperTestSimplePer(
4509 en, UMEASFMT_WIDTH_SHORT, 2.0, *pound, *minute, "2 lb/min");
4510
4511 helperTestSimplePer(
4512 en, UMEASFMT_WIDTH_NARROW, 1.0, *pound, *second, "1#/s");
4513 helperTestSimplePer(
4514 en, UMEASFMT_WIDTH_NARROW, 2.0, *pound, *second, "2#/s");
4515 helperTestSimplePer(
4516 en, UMEASFMT_WIDTH_NARROW, 1.0, *pound, *minute, "1#/min");
4517 helperTestSimplePer(
4518 en, UMEASFMT_WIDTH_NARROW, 2.0, *pound, *minute, "2#/min");
4519
4520 helperTestSimplePer(
4521 en, UMEASFMT_WIDTH_SHORT,
4522 23.3, *pound, *second, "23.3 lb/s",
4523 NumberFormat::kDecimalSeparatorField,
4524 2, 3);
4525
4526 helperTestSimplePer(
4527 en, UMEASFMT_WIDTH_SHORT,
4528 23.3, *pound, *second, "23.3 lb/s",
4529 NumberFormat::kIntegerField,
4530 0, 2);
4531
4532 helperTestSimplePer(
4533 en, UMEASFMT_WIDTH_SHORT,
4534 23.3, *pound, *minute, "23.3 lb/min",
4535 NumberFormat::kDecimalSeparatorField,
4536 2, 3);
4537
4538 helperTestSimplePer(
4539 en, UMEASFMT_WIDTH_SHORT,
4540 23.3, *pound, *minute, "23.3 lb/min",
4541 NumberFormat::kIntegerField,
4542 0, 2);
4543 }
4544
TestNumeratorPlurals()4545 void MeasureFormatTest::TestNumeratorPlurals() {
4546 Locale pl("pl");
4547 UErrorCode status = U_ZERO_ERROR;
4548 LocalPointer<MeasureUnit> second(MeasureUnit::createSecond(status));
4549 LocalPointer<MeasureUnit> foot(MeasureUnit::createFoot(status));
4550 if (!assertSuccess("", status)) {
4551 return;
4552 }
4553
4554 helperTestSimplePer(
4555 pl,
4556 UMEASFMT_WIDTH_WIDE,
4557 1.0, *foot, *second, "1 stopa na sekund\\u0119");
4558 helperTestSimplePer(
4559 pl,
4560 UMEASFMT_WIDTH_WIDE,
4561 2.0, *foot, *second, "2 stopy na sekund\\u0119");
4562 helperTestSimplePer(
4563 pl,
4564 UMEASFMT_WIDTH_WIDE,
4565 5.0, *foot, *second, "5 st\\u00f3p na sekund\\u0119");
4566 helperTestSimplePer(
4567 pl, UMEASFMT_WIDTH_WIDE,
4568 1.5, *foot, *second, "1,5 stopy na sekund\\u0119");
4569 }
4570
helperTestSimplePer(const Locale & locale,UMeasureFormatWidth width,double value,const MeasureUnit & unit,const MeasureUnit & perUnit,const char * expected)4571 void MeasureFormatTest::helperTestSimplePer(
4572 const Locale &locale,
4573 UMeasureFormatWidth width,
4574 double value,
4575 const MeasureUnit &unit,
4576 const MeasureUnit &perUnit,
4577 const char *expected) {
4578 helperTestSimplePer(
4579 locale,
4580 width,
4581 value,
4582 unit,
4583 perUnit,
4584 expected,
4585 FieldPosition::DONT_CARE,
4586 0,
4587 0);
4588 }
4589
helperTestSimplePer(const Locale & locale,UMeasureFormatWidth width,double value,const MeasureUnit & unit,const MeasureUnit & perUnit,const char * expected,int32_t field,int32_t expected_start,int32_t expected_end)4590 void MeasureFormatTest::helperTestSimplePer(
4591 const Locale &locale,
4592 UMeasureFormatWidth width,
4593 double value,
4594 const MeasureUnit &unit,
4595 const MeasureUnit &perUnit,
4596 const char *expected,
4597 int32_t field,
4598 int32_t expected_start,
4599 int32_t expected_end) {
4600 UErrorCode status = U_ZERO_ERROR;
4601 FieldPosition pos(field);
4602 MeasureFormat fmt(locale, width, status);
4603 if (!assertSuccess("Error creating format object", status)) {
4604 return;
4605 }
4606 Measure measure(value, unit.clone(), status);
4607 if (!assertSuccess("Error creating measure object", status)) {
4608 return;
4609 }
4610 UnicodeString prefix("prefix: ");
4611 UnicodeString buffer(prefix);
4612 fmt.formatMeasurePerUnit(
4613 measure,
4614 perUnit,
4615 buffer,
4616 pos,
4617 status);
4618 if (!assertSuccess("Error formatting measures with per", status)) {
4619 return;
4620 }
4621 UnicodeString uexpected(expected);
4622 uexpected = prefix + uexpected;
4623 assertEquals(
4624 "TestSimplePer",
4625 uexpected.unescape(),
4626 buffer);
4627 if (field != FieldPosition::DONT_CARE) {
4628 assertEquals(
4629 "Start", expected_start, pos.getBeginIndex() - prefix.length());
4630 assertEquals(
4631 "End", expected_end, pos.getEndIndex() - prefix.length());
4632 }
4633 }
4634
TestMultiples()4635 void MeasureFormatTest::TestMultiples() {
4636 Locale ru("ru");
4637 Locale en("en");
4638 helperTestMultiples(en, UMEASFMT_WIDTH_WIDE, "2 miles, 1 foot, 2.3 inches");
4639 helperTestMultiples(en, UMEASFMT_WIDTH_SHORT, "2 mi, 1 ft, 2.3 in");
4640 helperTestMultiples(en, UMEASFMT_WIDTH_NARROW, "2mi 1\\u2032 2.3\\u2033");
4641 helperTestMultiples(ru, UMEASFMT_WIDTH_WIDE, "2 \\u043C\\u0438\\u043B\\u0438 1 \\u0444\\u0443\\u0442 2,3 \\u0434\\u044E\\u0439\\u043C\\u0430");
4642 helperTestMultiples(ru, UMEASFMT_WIDTH_SHORT, "2 \\u043C\\u0438 1 \\u0444\\u0442 2,3 \\u0434\\u044E\\u0439\\u043C.");
4643 helperTestMultiples(ru, UMEASFMT_WIDTH_NARROW, "2 \\u043C\\u0438 1 \\u0444\\u0442 2,3 \\u0434\\u044E\\u0439\\u043C.");
4644 }
4645
helperTestMultiples(const Locale & locale,UMeasureFormatWidth width,const char * expected)4646 void MeasureFormatTest::helperTestMultiples(
4647 const Locale &locale,
4648 UMeasureFormatWidth width,
4649 const char *expected) {
4650 UErrorCode status = U_ZERO_ERROR;
4651 FieldPosition pos(FieldPosition::DONT_CARE);
4652 MeasureFormat fmt(locale, width, status);
4653 if (!assertSuccess("Error creating format object", status)) {
4654 return;
4655 }
4656 Measure measures[] = {
4657 Measure(2.0, MeasureUnit::createMile(status), status),
4658 Measure(1.0, MeasureUnit::createFoot(status), status),
4659 Measure(2.3, MeasureUnit::createInch(status), status)};
4660 if (!assertSuccess("Error creating measures", status)) {
4661 return;
4662 }
4663 UnicodeString buffer;
4664 fmt.formatMeasures(measures, UPRV_LENGTHOF(measures), buffer, pos, status);
4665 if (!assertSuccess("Error formatting measures", status)) {
4666 return;
4667 }
4668 assertEquals("TestMultiples", UnicodeString(expected).unescape(), buffer);
4669 }
4670
TestManyLocaleDurations()4671 void MeasureFormatTest::TestManyLocaleDurations() {
4672 UErrorCode status = U_ZERO_ERROR;
4673 Measure measures[] = {
4674 Measure(5.0, MeasureUnit::createHour(status), status),
4675 Measure(37.0, MeasureUnit::createMinute(status), status)};
4676 if (!assertSuccess("Error creating measures", status)) {
4677 return;
4678 }
4679 helperTestManyLocaleDurations("da", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 t og 37 m");
4680 helperTestManyLocaleDurations("da", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5.37");
4681 helperTestManyLocaleDurations("de", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 Std., 37 Min.");
4682 helperTestManyLocaleDurations("de", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4683 helperTestManyLocaleDurations("en", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37m");
4684 helperTestManyLocaleDurations("en", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4685 helperTestManyLocaleDurations("en_GB", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37m");
4686 helperTestManyLocaleDurations("en_GB", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4687 helperTestManyLocaleDurations("es", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37min");
4688 helperTestManyLocaleDurations("es", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4689 helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5t 37min");
4690 helperTestManyLocaleDurations("fi", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5.37");
4691 helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37min");
4692 helperTestManyLocaleDurations("fr", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4693 helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 klst. og 37 m\\u00EDn.");
4694 helperTestManyLocaleDurations("is", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4695 helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h37m");
4696 helperTestManyLocaleDurations("ja", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4697 helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5t, 37m");
4698 helperTestManyLocaleDurations("nb", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4699 helperTestManyLocaleDurations("nl", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5 u, 37 m");
4700 helperTestManyLocaleDurations("nl", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4701 helperTestManyLocaleDurations("nn", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5t 37m");
4702 helperTestManyLocaleDurations("nn", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4703 helperTestManyLocaleDurations("sv", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5h 37m");
4704 helperTestManyLocaleDurations("sv", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4705 helperTestManyLocaleDurations("zh", UMEASFMT_WIDTH_NARROW, measures, UPRV_LENGTHOF(measures), "5\\u5C0F\\u65F637\\u5206\\u949F");
4706 helperTestManyLocaleDurations("zh", UMEASFMT_WIDTH_NUMERIC, measures, UPRV_LENGTHOF(measures), "5:37");
4707 }
4708
helperTestManyLocaleDurations(const char * localeID,UMeasureFormatWidth width,const Measure * measures,int32_t measureCount,const char * expected)4709 void MeasureFormatTest::helperTestManyLocaleDurations( const char *localeID,
4710 UMeasureFormatWidth width,
4711 const Measure *measures,
4712 int32_t measureCount,
4713 const char *expected) {
4714 UErrorCode status = U_ZERO_ERROR;
4715 MeasureFormat fmt(Locale(localeID), width, status);
4716 if (U_FAILURE(status)) {
4717 errln("Could not create MeasureFormat for locale %s, width %d, status: %s", localeID, (int)width, u_errorName(status));
4718 return;
4719 }
4720 UnicodeString buffer;
4721 FieldPosition pos(FieldPosition::DONT_CARE);
4722 fmt.formatMeasures(measures, measureCount, buffer, pos, status);
4723 if (U_FAILURE(status)) {
4724 errln("MeasureFormat::formatMeasures failed for locale %s, width %d, status: %s", localeID, (int)width, u_errorName(status));
4725 return;
4726 }
4727 UnicodeString expStr(UnicodeString(expected).unescape());
4728 if (buffer != expStr) {
4729 errln("MeasureFormat::formatMeasures for locale " + UnicodeString(localeID) + ", width " + width + ", expected \"" + expStr + "\", got \"" + buffer + "\"");
4730 }
4731 }
4732
TestGram()4733 void MeasureFormatTest::TestGram() {
4734 UErrorCode status = U_ZERO_ERROR;
4735 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
4736 if (!assertSuccess("Error creating format object", status)) {
4737 return;
4738 }
4739 Measure gram((double)1, MeasureUnit::createGram(status), status);
4740 Measure gforce((double)1, MeasureUnit::createGForce(status), status);
4741 if (!assertSuccess("Error creating measures", status)) {
4742 return;
4743 }
4744 verifyFormat("TestGram", fmt, &gram, 1, "1 g");
4745 verifyFormat("TestGram", fmt, &gforce, 1, "1 G");
4746 }
4747
TestCurrencies()4748 void MeasureFormatTest::TestCurrencies() {
4749 char16_t USD[4] = {};
4750 u_uastrcpy(USD, "USD");
4751 UErrorCode status = U_ZERO_ERROR;
4752 CurrencyUnit USD_unit(USD, status);
4753 assertEquals("Currency Unit", USD, USD_unit.getISOCurrency());
4754 if (!assertSuccess("Error creating CurrencyUnit", status)) {
4755 return;
4756 }
4757 CurrencyAmount USD_1(1.0, USD, status);
4758 assertEquals("Currency Code", USD, USD_1.getISOCurrency());
4759 CurrencyAmount USD_2(2.0, USD, status);
4760 CurrencyAmount USD_NEG_1(-1.0, USD, status);
4761 if (!assertSuccess("Error creating currencies", status)) {
4762 return;
4763 }
4764 Locale en("en");
4765 MeasureFormat fmt(en, UMEASFMT_WIDTH_WIDE, status);
4766 if (!assertSuccess("Error creating format object", status)) {
4767 return;
4768 }
4769 verifyFormat("TestCurrenciesWide", fmt, &USD_NEG_1, 1, "-1.00 US dollars");
4770 verifyFormat("TestCurrenciesWide", fmt, &USD_1, 1, "1.00 US dollars");
4771 verifyFormat("TestCurrenciesWide", fmt, &USD_2, 1, "2.00 US dollars");
4772 fmt = MeasureFormat(en, UMEASFMT_WIDTH_SHORT, status);
4773 if (!assertSuccess("Error creating format object", status)) {
4774 return;
4775 }
4776 verifyFormat("TestCurrenciesShort", fmt, &USD_NEG_1, 1, "-USD\\u00A01.00");
4777 verifyFormat("TestCurrenciesShort", fmt, &USD_1, 1, "USD\\u00A01.00");
4778 verifyFormat("TestCurrenciesShort", fmt, &USD_2, 1, "USD\\u00A02.00");
4779 fmt = MeasureFormat(en, UMEASFMT_WIDTH_NARROW, status);
4780 if (!assertSuccess("Error creating format object", status)) {
4781 return;
4782 }
4783 verifyFormat("TestCurrenciesNarrow", fmt, &USD_NEG_1, 1, "-$1.00");
4784 verifyFormat("TestCurrenciesNarrow", fmt, &USD_1, 1, "$1.00");
4785 verifyFormat("TestCurrenciesNarrow", fmt, &USD_2, 1, "$2.00");
4786 fmt = MeasureFormat(en, UMEASFMT_WIDTH_NUMERIC, status);
4787 if (!assertSuccess("Error creating format object", status)) {
4788 return;
4789 }
4790 verifyFormat("TestCurrenciesNumeric", fmt, &USD_NEG_1, 1, "-$1.00");
4791 verifyFormat("TestCurrenciesNumeric", fmt, &USD_1, 1, "$1.00");
4792 verifyFormat("TestCurrenciesNumeric", fmt, &USD_2, 1, "$2.00");
4793 }
4794
TestDisplayNames()4795 void MeasureFormatTest::TestDisplayNames() {
4796 UErrorCode status = U_ZERO_ERROR;
4797 helperTestDisplayName( MeasureUnit::createYear(status), "en", UMEASFMT_WIDTH_WIDE, "years" );
4798 helperTestDisplayName( MeasureUnit::createYear(status), "ja", UMEASFMT_WIDTH_WIDE, "\\u5E74" );
4799 helperTestDisplayName( MeasureUnit::createYear(status), "es", UMEASFMT_WIDTH_WIDE, "a\\u00F1os" );
4800 helperTestDisplayName( MeasureUnit::createYear(status), "pt", UMEASFMT_WIDTH_WIDE, "anos" );
4801 helperTestDisplayName( MeasureUnit::createYear(status), "pt-PT", UMEASFMT_WIDTH_WIDE, "anos" );
4802 helperTestDisplayName( MeasureUnit::createAmpere(status), "en", UMEASFMT_WIDTH_WIDE, "amperes" );
4803 helperTestDisplayName( MeasureUnit::createAmpere(status), "ja", UMEASFMT_WIDTH_WIDE, "\\u30A2\\u30F3\\u30DA\\u30A2" );
4804 helperTestDisplayName( MeasureUnit::createAmpere(status), "es", UMEASFMT_WIDTH_WIDE, "amperios" );
4805 helperTestDisplayName( MeasureUnit::createAmpere(status), "pt", UMEASFMT_WIDTH_WIDE, "amperes" );
4806 helperTestDisplayName( MeasureUnit::createAmpere(status), "pt-PT", UMEASFMT_WIDTH_WIDE, "amperes" );
4807 helperTestDisplayName( MeasureUnit::createMeterPerSecondSquared(status), "pt", UMEASFMT_WIDTH_WIDE, "metros por segundo ao quadrado" );
4808 helperTestDisplayName( MeasureUnit::createMeterPerSecondSquared(status), "pt-PT", UMEASFMT_WIDTH_WIDE, "metros por segundo quadrado" );
4809 helperTestDisplayName( MeasureUnit::createSquareKilometer(status), "pt", UMEASFMT_WIDTH_NARROW, "km\\u00B2" );
4810 helperTestDisplayName( MeasureUnit::createSquareKilometer(status), "pt", UMEASFMT_WIDTH_SHORT, "km\\u00B2" );
4811 helperTestDisplayName( MeasureUnit::createSquareKilometer(status), "pt", UMEASFMT_WIDTH_WIDE, "quil\\u00F4metros quadrados" );
4812 helperTestDisplayName( MeasureUnit::createSecond(status), "pt-PT", UMEASFMT_WIDTH_NARROW, "s" );
4813 helperTestDisplayName( MeasureUnit::createSecond(status), "pt-PT", UMEASFMT_WIDTH_SHORT, "s" );
4814 helperTestDisplayName( MeasureUnit::createSecond(status), "pt-PT", UMEASFMT_WIDTH_WIDE, "segundos" );
4815 helperTestDisplayName( MeasureUnit::createSecond(status), "pt", UMEASFMT_WIDTH_NARROW, "s" );
4816 helperTestDisplayName( MeasureUnit::createSecond(status), "pt", UMEASFMT_WIDTH_SHORT, "s" );
4817 helperTestDisplayName( MeasureUnit::createSecond(status), "pt", UMEASFMT_WIDTH_WIDE, "segundos" );
4818 assertSuccess("Error creating measure units", status);
4819 }
4820
helperTestDisplayName(const MeasureUnit * unit,const char * localeID,UMeasureFormatWidth width,const char * expected)4821 void MeasureFormatTest::helperTestDisplayName(const MeasureUnit *unit,
4822 const char *localeID,
4823 UMeasureFormatWidth width,
4824 const char *expected) {
4825 UErrorCode status = U_ZERO_ERROR;
4826 MeasureFormat fmt(Locale(localeID), width, status);
4827 if (U_FAILURE(status)) {
4828 errln("Could not create MeasureFormat for locale %s, width %d, status: %s",
4829 localeID, (int)width, u_errorName(status));
4830 return;
4831 }
4832
4833 UnicodeString dnam = fmt.getUnitDisplayName(*unit, status);
4834 if (U_FAILURE(status)) {
4835 errln("MeasureFormat::getUnitDisplayName failed for unit %s-%s, locale %s, width %d, status: %s",
4836 unit->getType(), unit->getSubtype(), localeID, (int)width, u_errorName(status));
4837 return;
4838 }
4839
4840 UnicodeString expStr(UnicodeString(expected).unescape());
4841 if (dnam != expStr) {
4842 errln("MeasureFormat::getUnitDisplayName for unit %s-%s, locale %s, width %d: expected \"%s\", got \"%s\"",
4843 unit->getType(), unit->getSubtype(), localeID, (int)width, CStr(expStr)(), CStr(dnam)());
4844 }
4845
4846 // Delete the measure unit
4847 delete unit;
4848 }
4849
TestFieldPosition()4850 void MeasureFormatTest::TestFieldPosition() {
4851 UErrorCode status = U_ZERO_ERROR;
4852 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
4853 if (!assertSuccess("Error creating format object", status)) {
4854 return;
4855 }
4856 Measure measure(43.5, MeasureUnit::createFoot(status), status);
4857 if (!assertSuccess("Error creating measure object 1", status)) {
4858 return;
4859 }
4860 UnicodeString prefix("123456: ");
4861 verifyFieldPosition(
4862 "",
4863 fmt,
4864 prefix,
4865 &measure,
4866 1,
4867 NumberFormat::kDecimalSeparatorField,
4868 10,
4869 11);
4870 measure = Measure(43.0, MeasureUnit::createFoot(status), status);
4871 if (!assertSuccess("Error creating measure object 2", status)) {
4872 return;
4873 }
4874 verifyFieldPosition(
4875 "",
4876 fmt,
4877 prefix,
4878 &measure,
4879 1,
4880 NumberFormat::kDecimalSeparatorField,
4881 0,
4882 0);
4883 }
4884
TestFieldPositionMultiple()4885 void MeasureFormatTest::TestFieldPositionMultiple() {
4886 UErrorCode status = U_ZERO_ERROR;
4887 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
4888 if (!assertSuccess("Error creating format object", status)) {
4889 return;
4890 }
4891 Measure first[] = {
4892 Measure((double)354, MeasureUnit::createMeter(status), status),
4893 Measure((double)23, MeasureUnit::createCentimeter(status), status)};
4894 Measure second[] = {
4895 Measure((double)354, MeasureUnit::createMeter(status), status),
4896 Measure((double)23, MeasureUnit::createCentimeter(status), status),
4897 Measure((double)5.4, MeasureUnit::createMillimeter(status), status)};
4898 Measure third[] = {
4899 Measure((double)3, MeasureUnit::createMeter(status), status),
4900 Measure((double)23, MeasureUnit::createCentimeter(status), status),
4901 Measure((double)5, MeasureUnit::createMillimeter(status), status)};
4902 if (!assertSuccess("Error creating measure objects", status)) {
4903 return;
4904 }
4905 UnicodeString prefix("123456: ");
4906 verifyFieldPosition(
4907 "Integer",
4908 fmt,
4909 prefix,
4910 first,
4911 UPRV_LENGTHOF(first),
4912 NumberFormat::kIntegerField,
4913 8,
4914 11);
4915 verifyFieldPosition(
4916 "Decimal separator",
4917 fmt,
4918 prefix,
4919 second,
4920 UPRV_LENGTHOF(second),
4921 NumberFormat::kDecimalSeparatorField,
4922 23,
4923 24);
4924 verifyFieldPosition(
4925 "no decimal separator",
4926 fmt,
4927 prefix,
4928 third,
4929 UPRV_LENGTHOF(third),
4930 NumberFormat::kDecimalSeparatorField,
4931 0,
4932 0);
4933 }
4934
TestBadArg()4935 void MeasureFormatTest::TestBadArg() {
4936 UErrorCode status = U_ZERO_ERROR;
4937 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
4938 if (!assertSuccess("Error creating format object", status)) {
4939 return;
4940 }
4941 FieldPosition pos(FieldPosition::DONT_CARE);
4942 UnicodeString buffer;
4943 fmt.format(
4944 9.3,
4945 buffer,
4946 pos,
4947 status);
4948 if (status != U_ILLEGAL_ARGUMENT_ERROR) {
4949 errln("Expected ILLEGAL_ARGUMENT_ERROR");
4950 }
4951 }
4952
TestEquality()4953 void MeasureFormatTest::TestEquality() {
4954 UErrorCode status = U_ZERO_ERROR;
4955 NumberFormat* nfeq = NumberFormat::createInstance("en", status);
4956 NumberFormat* nfne = NumberFormat::createInstance("fr", status);
4957 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
4958 MeasureFormat fmtEq2("en", UMEASFMT_WIDTH_SHORT, nfeq, status);
4959 MeasureFormat fmtne1("en", UMEASFMT_WIDTH_WIDE, status);
4960 MeasureFormat fmtne2("fr", UMEASFMT_WIDTH_SHORT, status);
4961 MeasureFormat fmtne3("en", UMEASFMT_WIDTH_SHORT, nfne, status);
4962 if (U_FAILURE(status)) {
4963 dataerrln("Error creating MeasureFormats - %s", u_errorName(status));
4964 return;
4965 }
4966 MeasureFormat fmtEq(fmt);
4967 assertTrue("Equal", fmt == fmtEq);
4968 assertTrue("Equal2", fmt == fmtEq2);
4969 assertFalse("Equal Neg", fmt != fmtEq);
4970 assertTrue("Not Equal 1", fmt != fmtne1);
4971 assertFalse("Not Equal Neg 1", fmt == fmtne1);
4972 assertTrue("Not Equal 2", fmt != fmtne2);
4973 assertTrue("Not Equal 3", fmt != fmtne3);
4974 }
4975
TestGroupingSeparator()4976 void MeasureFormatTest::TestGroupingSeparator() {
4977 UErrorCode status = U_ZERO_ERROR;
4978 Locale en("en");
4979 MeasureFormat fmt(en, UMEASFMT_WIDTH_SHORT, status);
4980 if (!assertSuccess("Error creating format object", status)) {
4981 return;
4982 }
4983 Measure ms[] = {
4984 Measure((int32_t)INT32_MAX, MeasureUnit::createYear(status), status),
4985 Measure((int32_t)INT32_MIN, MeasureUnit::createMonth(status), status),
4986 Measure(-987.0, MeasureUnit::createDay(status), status),
4987 Measure(1362.0, MeasureUnit::createHour(status), status),
4988 Measure(987.0, MeasureUnit::createMinute(status), status)};
4989 FieldPosition pos(NumberFormat::kGroupingSeparatorField);
4990 UnicodeString appendTo;
4991 fmt.formatMeasures(ms, 5, appendTo, pos, status);
4992 if (!assertSuccess("Error formatting", status)) {
4993 return;
4994 }
4995 assertEquals(
4996 "grouping separator",
4997 "2,147,483,647 yrs, -2,147,483,648 mths, -987 days, 1,362 hr, 987 min",
4998 appendTo);
4999 assertEquals("begin index", 1, pos.getBeginIndex());
5000 assertEquals("end index", 2, pos.getEndIndex());
5001 }
5002
TestDoubleZero()5003 void MeasureFormatTest::TestDoubleZero() {
5004 UErrorCode status = U_ZERO_ERROR;
5005 Measure measures[] = {
5006 Measure(4.7, MeasureUnit::createHour(status), status),
5007 Measure(23.0, MeasureUnit::createMinute(status), status),
5008 Measure(16.0, MeasureUnit::createSecond(status), status)};
5009 Locale en("en");
5010 NumberFormat *nf = NumberFormat::createInstance(en, status);
5011 MeasureFormat fmt("en", UMEASFMT_WIDTH_WIDE, nf, status);
5012 UnicodeString appendTo;
5013 FieldPosition pos(FieldPosition::DONT_CARE);
5014 if (U_FAILURE(status)) {
5015 dataerrln("Error creating formatter - %s", u_errorName(status));
5016 return;
5017 }
5018 nf->setMinimumFractionDigits(2);
5019 nf->setMaximumFractionDigits(2);
5020 fmt.formatMeasures(measures, UPRV_LENGTHOF(measures), appendTo, pos, status);
5021 if (!assertSuccess("Error formatting", status)) {
5022 return;
5023 }
5024 assertEquals(
5025 "TestDoubleZero",
5026 UnicodeString("4 hours, 23 minutes, 16.00 seconds"),
5027 appendTo);
5028 measures[0] = Measure(-4.7, MeasureUnit::createHour(status), status);
5029 appendTo.remove();
5030 fmt.formatMeasures(measures, UPRV_LENGTHOF(measures), appendTo, pos, status);
5031 if (!assertSuccess("Error formatting", status)) {
5032 return;
5033 }
5034 assertEquals(
5035 "TestDoubleZero",
5036 UnicodeString("-4 hours, 23 minutes, 16.00 seconds"),
5037 appendTo);
5038 }
5039
TestUnitPerUnitResolution()5040 void MeasureFormatTest::TestUnitPerUnitResolution() {
5041 UErrorCode status = U_ZERO_ERROR;
5042 Locale en("en");
5043 MeasureFormat fmt("en", UMEASFMT_WIDTH_SHORT, status);
5044 Measure measure(50.0, MeasureUnit::createPoundForce(status), status);
5045 LocalPointer<MeasureUnit> sqInch(MeasureUnit::createSquareInch(status));
5046 if (!assertSuccess("Create of format unit and per unit", status)) {
5047 return;
5048 }
5049 FieldPosition pos(FieldPosition::DONT_CARE);
5050 UnicodeString actual;
5051 fmt.formatMeasurePerUnit(
5052 measure,
5053 *sqInch,
5054 actual,
5055 pos,
5056 status);
5057 assertEquals("", "50 psi", actual);
5058 }
5059
TestIndividualPluralFallback()5060 void MeasureFormatTest::TestIndividualPluralFallback() {
5061 // See ticket #11986 "incomplete fallback in MeasureFormat".
5062 // In CLDR 28, fr_CA temperature-generic/short has only the "one" form,
5063 // and falls back to fr for the "other" form.
5064 IcuTestErrorCode errorCode(*this, "TestIndividualPluralFallback");
5065 MeasureFormat mf("fr_CA", UMEASFMT_WIDTH_SHORT, errorCode);
5066 if (errorCode.errIfFailureAndReset("MeasureFormat mf(...) failed.")) {
5067 return;
5068 }
5069 LocalPointer<Measure> twoDeg(
5070 new Measure(2.0, MeasureUnit::createGenericTemperature(errorCode), errorCode), errorCode);
5071 if (errorCode.errIfFailureAndReset("Creating twoDeg failed.")) {
5072 return;
5073 }
5074 UnicodeString expected = UNICODE_STRING_SIMPLE("2\\u00B0").unescape();
5075 UnicodeString actual;
5076 // Formattable adopts the pointer
5077 mf.format(Formattable(twoDeg.orphan()), actual, errorCode);
5078 if (errorCode.errIfFailureAndReset("mf.format(...) failed.")) {
5079 return;
5080 }
5081 assertEquals("2 deg temp in fr_CA", expected, actual, true);
5082 errorCode.errIfFailureAndReset("mf.format failed");
5083 }
5084
Test20332_PersonUnits()5085 void MeasureFormatTest::Test20332_PersonUnits() {
5086 IcuTestErrorCode status(*this, "Test20332_PersonUnits");
5087 const struct TestCase {
5088 const char* locale;
5089 MeasureUnit* unitToAdopt;
5090 UMeasureFormatWidth width;
5091 const char* expected;
5092 } cases[] = {
5093 {"en-us", MeasureUnit::createYearPerson(status), UMEASFMT_WIDTH_NARROW, "25y"},
5094 {"en-us", MeasureUnit::createYearPerson(status), UMEASFMT_WIDTH_SHORT, "25 yrs"},
5095 {"en-us", MeasureUnit::createYearPerson(status), UMEASFMT_WIDTH_WIDE, "25 years"},
5096 {"en-us", MeasureUnit::createMonthPerson(status), UMEASFMT_WIDTH_NARROW, "25m"},
5097 {"en-us", MeasureUnit::createMonthPerson(status), UMEASFMT_WIDTH_SHORT, "25 mths"},
5098 {"en-us", MeasureUnit::createMonthPerson(status), UMEASFMT_WIDTH_WIDE, "25 months"},
5099 {"en-us", MeasureUnit::createWeekPerson(status), UMEASFMT_WIDTH_NARROW, "25w"},
5100 {"en-us", MeasureUnit::createWeekPerson(status), UMEASFMT_WIDTH_SHORT, "25 wks"},
5101 {"en-us", MeasureUnit::createWeekPerson(status), UMEASFMT_WIDTH_WIDE, "25 weeks"},
5102 {"en-us", MeasureUnit::createDayPerson(status), UMEASFMT_WIDTH_NARROW, "25d"},
5103 {"en-us", MeasureUnit::createDayPerson(status), UMEASFMT_WIDTH_SHORT, "25 days"},
5104 {"en-us", MeasureUnit::createDayPerson(status), UMEASFMT_WIDTH_WIDE, "25 days"}
5105 };
5106 for (const auto& cas : cases) {
5107 MeasureFormat mf(cas.locale, cas.width, status);
5108 if (status.errIfFailureAndReset()) { return; }
5109 Measure measure(25, cas.unitToAdopt, status);
5110 if (status.errIfFailureAndReset()) { return; }
5111 verifyFormat(cas.locale, mf, &measure, 1, cas.expected);
5112 }
5113 }
5114
TestNumericTime()5115 void MeasureFormatTest::TestNumericTime() {
5116 IcuTestErrorCode status(*this, "TestNumericTime");
5117
5118 MeasureFormat fmt("en", UMEASFMT_WIDTH_NUMERIC, status);
5119
5120 Measure hours(112, MeasureUnit::createHour(status), status);
5121 Measure minutes(113, MeasureUnit::createMinute(status), status);
5122 Measure seconds(114, MeasureUnit::createSecond(status), status);
5123 Measure fhours(112.8765, MeasureUnit::createHour(status), status);
5124 Measure fminutes(113.8765, MeasureUnit::createMinute(status), status);
5125 Measure fseconds(114.8765, MeasureUnit::createSecond(status), status);
5126 if (status.errDataIfFailureAndReset(WHERE)) return;
5127
5128 verifyFormat("hours", fmt, &hours, 1, "112h");
5129 verifyFormat("minutes", fmt, &minutes, 1, "113m");
5130 verifyFormat("seconds", fmt, &seconds, 1, "114s");
5131
5132 verifyFormat("fhours", fmt, &fhours, 1, "112.876h");
5133 verifyFormat("fminutes", fmt, &fminutes, 1, "113.876m");
5134 verifyFormat("fseconds", fmt, &fseconds, 1, "114.876s");
5135
5136 Measure hoursMinutes[2] = {hours, minutes};
5137 verifyFormat("hoursMinutes", fmt, hoursMinutes, 2, "112:113");
5138 Measure hoursSeconds[2] = {hours, seconds};
5139 verifyFormat("hoursSeconds", fmt, hoursSeconds, 2, "112:00:114");
5140 Measure minutesSeconds[2] = {minutes, seconds};
5141 verifyFormat("minutesSeconds", fmt, minutesSeconds, 2, "113:114");
5142
5143 Measure hoursFminutes[2] = {hours, fminutes};
5144 verifyFormat("hoursFminutes", fmt, hoursFminutes, 2, "112:113.876");
5145 Measure hoursFseconds[2] = {hours, fseconds};
5146 verifyFormat("hoursFseconds", fmt, hoursFseconds, 2, "112:00:114.876");
5147 Measure minutesFseconds[2] = {minutes, fseconds};
5148 verifyFormat("hoursMminutesFsecondsinutes", fmt, minutesFseconds, 2, "113:114.876");
5149
5150 Measure fhoursMinutes[2] = {fhours, minutes};
5151 verifyFormat("fhoursMinutes", fmt, fhoursMinutes, 2, "112:113");
5152 Measure fhoursSeconds[2] = {fhours, seconds};
5153 verifyFormat("fhoursSeconds", fmt, fhoursSeconds, 2, "112:00:114");
5154 Measure fminutesSeconds[2] = {fminutes, seconds};
5155 verifyFormat("fminutesSeconds", fmt, fminutesSeconds, 2, "113:114");
5156
5157 Measure fhoursFminutes[2] = {fhours, fminutes};
5158 verifyFormat("fhoursFminutes", fmt, fhoursFminutes, 2, "112:113.876");
5159 Measure fhoursFseconds[2] = {fhours, fseconds};
5160 verifyFormat("fhoursFseconds", fmt, fhoursFseconds, 2, "112:00:114.876");
5161 Measure fminutesFseconds[2] = {fminutes, fseconds};
5162 verifyFormat("fminutesFseconds", fmt, fminutesFseconds, 2, "113:114.876");
5163
5164 Measure hoursMinutesSeconds[3] = {hours, minutes, seconds};
5165 verifyFormat("hoursMinutesSeconds", fmt, hoursMinutesSeconds, 3, "112:113:114");
5166 Measure fhoursFminutesFseconds[3] = {fhours, fminutes, fseconds};
5167 verifyFormat("fhoursFminutesFseconds", fmt, fhoursFminutesFseconds, 3, "112:113:114.876");
5168 }
5169
TestNumericTimeSomeSpecialFormats()5170 void MeasureFormatTest::TestNumericTimeSomeSpecialFormats() {
5171 IcuTestErrorCode status(*this, "TestNumericTimeSomeSpecialFormats");
5172
5173 Measure fhours(2.8765432, MeasureUnit::createHour(status), status);
5174 Measure fminutes(3.8765432, MeasureUnit::createMinute(status), status);
5175 if (status.errDataIfFailureAndReset(WHERE)) return;
5176
5177 Measure fhoursFminutes[2] = {fhours, fminutes};
5178
5179 // Latvian is one of the very few locales 0-padding the hour
5180 MeasureFormat fmtLt("lt", UMEASFMT_WIDTH_NUMERIC, status);
5181 if (status.errDataIfFailureAndReset(WHERE)) return;
5182 verifyFormat("Latvian fhoursFminutes", fmtLt, fhoursFminutes, 2, "02:03,877");
5183
5184 // Danish is one of the very few locales using '.' as separator
5185 MeasureFormat fmtDa("da", UMEASFMT_WIDTH_NUMERIC, status);
5186 verifyFormat("Danish fhoursFminutes", fmtDa, fhoursFminutes, 2, "2.03,877");
5187 }
5188
TestIdentifiers()5189 void MeasureFormatTest::TestIdentifiers() {
5190 IcuTestErrorCode status(*this, "TestIdentifiers");
5191 struct TestCase {
5192 const char* id;
5193 const char* normalized;
5194 } cases[] = {
5195 // Correctly normalized identifiers should not change
5196 {"", ""},
5197 {"square-meter-per-square-meter", "square-meter-per-square-meter"},
5198 {"kilogram-meter-per-square-meter-square-second",
5199 "kilogram-meter-per-square-meter-square-second"},
5200 {"square-mile-and-square-foot", "square-mile-and-square-foot"},
5201 {"square-foot-and-square-mile", "square-foot-and-square-mile"},
5202 {"per-cubic-centimeter", "per-cubic-centimeter"},
5203 {"per-kilometer", "per-kilometer"},
5204
5205 // Normalization of power and per
5206 {"pow2-foot-and-pow2-mile", "square-foot-and-square-mile"},
5207 {"gram-square-gram-per-dekagram", "cubic-gram-per-dekagram"},
5208 {"kilogram-per-meter-per-second", "kilogram-per-meter-second"},
5209 {"kilometer-per-second-per-megaparsec", "kilometer-per-megaparsec-second"},
5210
5211 // Correct order of units, as per unitQuantities in CLDR's units.xml
5212 {"newton-meter", "newton-meter"},
5213 {"meter-newton", "newton-meter"},
5214 {"pound-force-foot", "pound-force-foot"},
5215 {"foot-pound-force", "pound-force-foot"},
5216 {"kilowatt-hour", "kilowatt-hour"},
5217 {"hour-kilowatt", "kilowatt-hour"},
5218
5219 // Testing prefixes are parsed and produced correctly (ensures no
5220 // collisions in the enum values)
5221 {"yoctofoot", "yoctofoot"},
5222 {"zeptofoot", "zeptofoot"},
5223 {"attofoot", "attofoot"},
5224 {"femtofoot", "femtofoot"},
5225 {"picofoot", "picofoot"},
5226 {"nanofoot", "nanofoot"},
5227 {"microfoot", "microfoot"},
5228 {"millifoot", "millifoot"},
5229 {"centifoot", "centifoot"},
5230 {"decifoot", "decifoot"},
5231 {"foot", "foot"},
5232 {"dekafoot", "dekafoot"},
5233 {"hectofoot", "hectofoot"},
5234 {"kilofoot", "kilofoot"},
5235 {"megafoot", "megafoot"},
5236 {"gigafoot", "gigafoot"},
5237 {"terafoot", "terafoot"},
5238 {"petafoot", "petafoot"},
5239 {"exafoot", "exafoot"},
5240 {"zettafoot", "zettafoot"},
5241 {"yottafoot", "yottafoot"},
5242 {"kibibyte", "kibibyte"},
5243 {"mebibyte", "mebibyte"},
5244 {"gibibyte", "gibibyte"},
5245 {"tebibyte", "tebibyte"},
5246 {"pebibyte", "pebibyte"},
5247 {"exbibyte", "exbibyte"},
5248 {"zebibyte", "zebibyte"},
5249 {"yobibyte", "yobibyte"},
5250
5251 // Testing aliases
5252 {"foodcalorie", "foodcalorie"},
5253 {"dot-per-centimeter", "dot-per-centimeter"},
5254 {"dot-per-inch", "dot-per-inch"},
5255 {"dot", "dot"},
5256
5257 // Testing sort order of prefixes.
5258 {"megafoot-mebifoot-kibifoot-kilofoot", "mebifoot-megafoot-kibifoot-kilofoot"},
5259 {"per-megafoot-mebifoot-kibifoot-kilofoot", "per-mebifoot-megafoot-kibifoot-kilofoot"},
5260 {"megafoot-mebifoot-kibifoot-kilofoot-per-megafoot-mebifoot-kibifoot-kilofoot",
5261 "mebifoot-megafoot-kibifoot-kilofoot-per-mebifoot-megafoot-kibifoot-kilofoot"},
5262 {"microfoot-millifoot-megafoot-mebifoot-kibifoot-kilofoot",
5263 "mebifoot-megafoot-kibifoot-kilofoot-millifoot-microfoot"},
5264 {"per-microfoot-millifoot-megafoot-mebifoot-kibifoot-kilofoot",
5265 "per-mebifoot-megafoot-kibifoot-kilofoot-millifoot-microfoot"},
5266 };
5267 for (const auto &cas : cases) {
5268 status.setScope(cas.id);
5269 MeasureUnit unit = MeasureUnit::forIdentifier(cas.id, status);
5270 status.errIfFailureAndReset();
5271 const char* actual = unit.getIdentifier();
5272 assertEquals(cas.id, cas.normalized, actual);
5273 status.errIfFailureAndReset();
5274 }
5275 }
5276
TestInvalidIdentifiers()5277 void MeasureFormatTest::TestInvalidIdentifiers() {
5278 IcuTestErrorCode status(*this, "TestInvalidIdentifiers");
5279
5280 const char *const inputs[] = {
5281 "kilo",
5282 "kilokilo",
5283 "onekilo",
5284 "meterkilo",
5285 "meter-kilo",
5286 "k",
5287 "meter-",
5288 "meter+",
5289 "-meter",
5290 "+meter",
5291 "-kilometer",
5292 "+kilometer",
5293 "-pow2-meter",
5294 "+pow2-meter",
5295 "p2-meter",
5296 "p4-meter",
5297 "+",
5298 "-",
5299 "-mile",
5300 "-and-mile",
5301 "-per-mile",
5302 "one",
5303 "one-one",
5304 "one-per-mile",
5305 "one-per-cubic-centimeter",
5306 "square--per-meter",
5307 "metersecond", // Must have compound part in between single units
5308
5309 // Negative powers not supported in mixed units yet. TODO(CLDR-13701).
5310 "per-hour-and-hertz",
5311 "hertz-and-per-hour",
5312
5313 // Compound units not supported in mixed units yet. TODO(CLDR-13701).
5314 "kilonewton-meter-and-newton-meter",
5315 };
5316
5317 for (const auto& input : inputs) {
5318 status.setScope(input);
5319 MeasureUnit::forIdentifier(input, status);
5320 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5321 }
5322 }
5323
TestIdentifierDetails()5324 void MeasureFormatTest::TestIdentifierDetails() {
5325 IcuTestErrorCode status(*this, "TestIdentifierDetails()");
5326
5327 MeasureUnit joule = MeasureUnit::forIdentifier("joule", status);
5328 status.assertSuccess();
5329 assertEquals("Initial joule", "joule", joule.getIdentifier());
5330
5331 static_assert(UMEASURE_PREFIX_INTERNAL_MAX_SI < 99, "Tests assume there is no prefix 99.");
5332 static_assert(UMEASURE_PREFIX_INTERNAL_MAX_BIN < 99, "Tests assume there is no prefix 99.");
5333 MeasureUnit unit = joule.withPrefix((UMeasurePrefix)99, status);
5334 if (!status.expectErrorAndReset(U_UNSUPPORTED_ERROR)) {
5335 errln("Invalid prefix should result in an error.");
5336 }
5337 assertEquals("Invalid prefix results in no identifier", "", unit.getIdentifier());
5338
5339 unit = joule.withPrefix(UMEASURE_PREFIX_HECTO, status);
5340 status.assertSuccess();
5341 assertEquals("foo identifier", "hectojoule", unit.getIdentifier());
5342
5343 unit = unit.withPrefix(UMEASURE_PREFIX_EXBI, status);
5344 status.assertSuccess();
5345 assertEquals("foo identifier", "exbijoule", unit.getIdentifier());
5346 }
5347
TestPrefixes()5348 void MeasureFormatTest::TestPrefixes() {
5349 IcuTestErrorCode status(*this, "TestPrefixes()");
5350 const struct TestCase {
5351 UMeasurePrefix prefix;
5352 int32_t expectedBase;
5353 int32_t expectedPower;
5354 } cases[] = {
5355 {UMEASURE_PREFIX_YOCTO, 10, -24},
5356 {UMEASURE_PREFIX_ZEPTO, 10, -21},
5357 {UMEASURE_PREFIX_ATTO, 10, -18},
5358 {UMEASURE_PREFIX_FEMTO, 10, -15},
5359 {UMEASURE_PREFIX_PICO, 10, -12},
5360 {UMEASURE_PREFIX_NANO, 10, -9},
5361 {UMEASURE_PREFIX_MICRO, 10, -6},
5362 {UMEASURE_PREFIX_MILLI, 10, -3},
5363 {UMEASURE_PREFIX_CENTI, 10, -2},
5364 {UMEASURE_PREFIX_DECI, 10, -1},
5365 {UMEASURE_PREFIX_ONE, 10, 0},
5366 {UMEASURE_PREFIX_DEKA, 10, 1},
5367 {UMEASURE_PREFIX_HECTO, 10, 2},
5368 {UMEASURE_PREFIX_KILO, 10, 3},
5369 {UMEASURE_PREFIX_MEGA, 10, 6},
5370 {UMEASURE_PREFIX_GIGA, 10, 9},
5371 {UMEASURE_PREFIX_TERA, 10, 12},
5372 {UMEASURE_PREFIX_PETA, 10, 15},
5373 {UMEASURE_PREFIX_EXA, 10, 18},
5374 {UMEASURE_PREFIX_ZETTA, 10, 21},
5375 {UMEASURE_PREFIX_YOTTA, 10, 24},
5376 {UMEASURE_PREFIX_KIBI, 1024, 1},
5377 {UMEASURE_PREFIX_MEBI, 1024, 2},
5378 {UMEASURE_PREFIX_GIBI, 1024, 3},
5379 {UMEASURE_PREFIX_TEBI, 1024, 4},
5380 {UMEASURE_PREFIX_PEBI, 1024, 5},
5381 {UMEASURE_PREFIX_EXBI, 1024, 6},
5382 {UMEASURE_PREFIX_ZEBI, 1024, 7},
5383 {UMEASURE_PREFIX_YOBI, 1024, 8},
5384 };
5385
5386 for (auto cas : cases) {
5387 MeasureUnit m = MeasureUnit::getAmpere().withPrefix(cas.prefix, status);
5388 assertEquals("umeas_getPrefixPower()", cas.expectedPower,
5389 umeas_getPrefixPower(m.getPrefix(status)));
5390 assertEquals("umeas_getPrefixBase()", cas.expectedBase,
5391 umeas_getPrefixBase(m.getPrefix(status)));
5392 }
5393 }
5394
TestParseBuiltIns()5395 void MeasureFormatTest::TestParseBuiltIns() {
5396 IcuTestErrorCode status(*this, "TestParseBuiltIns()");
5397 int32_t totalCount = MeasureUnit::getAvailable(nullptr, 0, status);
5398 status.expectErrorAndReset(U_BUFFER_OVERFLOW_ERROR);
5399 std::unique_ptr<MeasureUnit[]> units(new MeasureUnit[totalCount]);
5400 totalCount = MeasureUnit::getAvailable(units.get(), totalCount, status);
5401 status.assertSuccess();
5402 for (int32_t i = 0; i < totalCount; i++) {
5403 MeasureUnit &unit = units[i];
5404 if (uprv_strcmp(unit.getType(), "currency") == 0) {
5405 continue;
5406 }
5407
5408 // Prove that all built-in units are parseable, except "generic" temperature:
5409 MeasureUnit parsed = MeasureUnit::forIdentifier(unit.getIdentifier(), status);
5410 if (unit == MeasureUnit::getGenericTemperature() ||
5411 (unit == MeasureUnit::getBeaufort() && logKnownIssue("CLDR-16327", "beaufort currently not convertible"))) {
5412 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5413 } else {
5414 status.assertSuccess();
5415 CharString msg;
5416 msg.append("parsed MeasureUnit '", status);
5417 msg.append(parsed.getIdentifier(), status);
5418 msg.append("' should equal built-in '", status);
5419 msg.append(unit.getIdentifier(), status);
5420 msg.append("'", status);
5421 status.assertSuccess();
5422 assertTrue(msg.data(), unit == parsed);
5423 }
5424 }
5425 }
5426
TestParseToBuiltIn()5427 void MeasureFormatTest::TestParseToBuiltIn() {
5428 IcuTestErrorCode status(*this, "TestParseToBuiltIn()");
5429 const struct TestCase {
5430 const char *identifier;
5431 MeasureUnit expectedBuiltIn;
5432 } cases[] = {
5433 {"meter-per-second-per-second", MeasureUnit::getMeterPerSecondSquared()},
5434 {"meter-per-second-second", MeasureUnit::getMeterPerSecondSquared()},
5435 {"centimeter-centimeter", MeasureUnit::getSquareCentimeter()},
5436 {"square-foot", MeasureUnit::getSquareFoot()},
5437 {"pow2-inch", MeasureUnit::getSquareInch()},
5438 {"milligram-per-deciliter", MeasureUnit::getMilligramPerDeciliter()},
5439 {"pound-force-per-pow2-inch", MeasureUnit::getPoundPerSquareInch()},
5440 {"yard-pow2-yard", MeasureUnit::getCubicYard()},
5441 {"square-yard-yard", MeasureUnit::getCubicYard()},
5442 };
5443
5444 for (auto &cas : cases) {
5445 MeasureUnit fromIdent = MeasureUnit::forIdentifier(cas.identifier, status);
5446 status.assertSuccess();
5447 assertEquals("forIdentifier returns a normal built-in unit when it exists",
5448 cas.expectedBuiltIn.getOffset(), fromIdent.getOffset());
5449 assertEquals("type", cas.expectedBuiltIn.getType(), fromIdent.getType());
5450 assertEquals("subType", cas.expectedBuiltIn.getSubtype(), fromIdent.getSubtype());
5451 }
5452 }
5453
5454 // Kilogram is a "base unit", although it's also "gram" with a kilo- prefix.
5455 // This tests that it is handled in the preferred manner.
TestKilogramIdentifier()5456 void MeasureFormatTest::TestKilogramIdentifier() {
5457 IcuTestErrorCode status(*this, "TestKilogramIdentifier");
5458
5459 // SI unit of mass
5460 MeasureUnit kilogram = MeasureUnit::forIdentifier("kilogram", status);
5461 // Metric mass unit
5462 MeasureUnit gram = MeasureUnit::forIdentifier("gram", status);
5463 // Microgram: still a built-in type
5464 MeasureUnit microgram = MeasureUnit::forIdentifier("microgram", status);
5465 // Nanogram: not a built-in type at this time
5466 MeasureUnit nanogram = MeasureUnit::forIdentifier("nanogram", status);
5467 status.assertSuccess();
5468
5469 assertEquals("parsed kilogram equals built-in kilogram", MeasureUnit::getKilogram().getType(),
5470 kilogram.getType());
5471 assertEquals("parsed kilogram equals built-in kilogram", MeasureUnit::getKilogram().getSubtype(),
5472 kilogram.getSubtype());
5473 assertEquals("parsed gram equals built-in gram", MeasureUnit::getGram().getType(), gram.getType());
5474 assertEquals("parsed gram equals built-in gram", MeasureUnit::getGram().getSubtype(),
5475 gram.getSubtype());
5476 assertEquals("parsed microgram equals built-in microgram", MeasureUnit::getMicrogram().getType(),
5477 microgram.getType());
5478 assertEquals("parsed microgram equals built-in microgram", MeasureUnit::getMicrogram().getSubtype(),
5479 microgram.getSubtype());
5480 assertEquals("nanogram", "", nanogram.getType());
5481 assertEquals("nanogram", "nanogram", nanogram.getIdentifier());
5482
5483 assertEquals("prefix of kilogram", UMEASURE_PREFIX_KILO, kilogram.getPrefix(status));
5484 assertEquals("prefix of gram", UMEASURE_PREFIX_ONE, gram.getPrefix(status));
5485 assertEquals("prefix of microgram", UMEASURE_PREFIX_MICRO, microgram.getPrefix(status));
5486 assertEquals("prefix of nanogram", UMEASURE_PREFIX_NANO, nanogram.getPrefix(status));
5487
5488 MeasureUnit tmp = kilogram.withPrefix(UMEASURE_PREFIX_MILLI, status);
5489 assertEquals(UnicodeString("Kilogram + milli should be milligram, got: ") + tmp.getIdentifier(),
5490 MeasureUnit::getMilligram().getIdentifier(), tmp.getIdentifier());
5491 }
5492
TestCompoundUnitOperations()5493 void MeasureFormatTest::TestCompoundUnitOperations() {
5494 IcuTestErrorCode status(*this, "TestCompoundUnitOperations");
5495
5496 MeasureUnit::forIdentifier("kilometer-per-second-joule", status);
5497
5498 MeasureUnit kilometer = MeasureUnit::getKilometer();
5499 MeasureUnit cubicMeter = MeasureUnit::getCubicMeter();
5500 MeasureUnit meter = kilometer.withPrefix(UMEASURE_PREFIX_ONE, status);
5501 MeasureUnit centimeter1 = kilometer.withPrefix(UMEASURE_PREFIX_CENTI, status);
5502 MeasureUnit centimeter2 = meter.withPrefix(UMEASURE_PREFIX_CENTI, status);
5503 MeasureUnit cubicDecimeter = cubicMeter.withPrefix(UMEASURE_PREFIX_DECI, status);
5504
5505 verifySingleUnit(kilometer, UMEASURE_PREFIX_KILO, 1, "kilometer");
5506 verifySingleUnit(meter, UMEASURE_PREFIX_ONE, 1, "meter");
5507 verifySingleUnit(centimeter1, UMEASURE_PREFIX_CENTI, 1, "centimeter");
5508 verifySingleUnit(centimeter2, UMEASURE_PREFIX_CENTI, 1, "centimeter");
5509 verifySingleUnit(cubicDecimeter, UMEASURE_PREFIX_DECI, 3, "cubic-decimeter");
5510
5511 assertTrue("centimeter equality", centimeter1 == centimeter2);
5512 assertTrue("kilometer inequality", centimeter1 != kilometer);
5513
5514 MeasureUnit squareMeter = meter.withDimensionality(2, status);
5515 MeasureUnit overCubicCentimeter = centimeter1.withDimensionality(-3, status);
5516 MeasureUnit quarticKilometer = kilometer.withDimensionality(4, status);
5517 MeasureUnit overQuarticKilometer1 = kilometer.withDimensionality(-4, status);
5518
5519 verifySingleUnit(squareMeter, UMEASURE_PREFIX_ONE, 2, "square-meter");
5520 verifySingleUnit(overCubicCentimeter, UMEASURE_PREFIX_CENTI, -3, "per-cubic-centimeter");
5521 verifySingleUnit(quarticKilometer, UMEASURE_PREFIX_KILO, 4, "pow4-kilometer");
5522 verifySingleUnit(overQuarticKilometer1, UMEASURE_PREFIX_KILO, -4, "per-pow4-kilometer");
5523
5524 assertTrue("power inequality", quarticKilometer != overQuarticKilometer1);
5525
5526 MeasureUnit overQuarticKilometer2 = quarticKilometer.reciprocal(status);
5527 MeasureUnit overQuarticKilometer3 = kilometer.product(kilometer, status)
5528 .product(kilometer, status)
5529 .product(kilometer, status)
5530 .reciprocal(status);
5531 MeasureUnit overQuarticKilometer4 = meter.withDimensionality(4, status)
5532 .reciprocal(status)
5533 .withPrefix(UMEASURE_PREFIX_KILO, status);
5534
5535 verifySingleUnit(overQuarticKilometer2, UMEASURE_PREFIX_KILO, -4, "per-pow4-kilometer");
5536 verifySingleUnit(overQuarticKilometer3, UMEASURE_PREFIX_KILO, -4, "per-pow4-kilometer");
5537 verifySingleUnit(overQuarticKilometer4, UMEASURE_PREFIX_KILO, -4, "per-pow4-kilometer");
5538
5539 assertTrue("reciprocal equality", overQuarticKilometer1 == overQuarticKilometer2);
5540 assertTrue("reciprocal equality", overQuarticKilometer1 == overQuarticKilometer3);
5541 assertTrue("reciprocal equality", overQuarticKilometer1 == overQuarticKilometer4);
5542
5543 MeasureUnit kiloSquareSecond = MeasureUnit::getSecond()
5544 .withDimensionality(2, status).withPrefix(UMEASURE_PREFIX_KILO, status);
5545 MeasureUnit meterSecond = meter.product(kiloSquareSecond, status);
5546 MeasureUnit cubicMeterSecond1 = meter.withDimensionality(3, status).product(kiloSquareSecond, status);
5547 MeasureUnit centimeterSecond1 = meter.withPrefix(UMEASURE_PREFIX_CENTI, status).product(kiloSquareSecond, status);
5548 MeasureUnit secondCubicMeter = kiloSquareSecond.product(meter.withDimensionality(3, status), status);
5549 MeasureUnit secondCentimeter = kiloSquareSecond.product(meter.withPrefix(UMEASURE_PREFIX_CENTI, status), status);
5550 MeasureUnit secondCentimeterPerKilometer = secondCentimeter.product(kilometer.reciprocal(status), status);
5551
5552 verifySingleUnit(kiloSquareSecond, UMEASURE_PREFIX_KILO, 2, "square-kilosecond");
5553 const char* meterSecondSub[] = {"meter", "square-kilosecond"};
5554 verifyCompoundUnit(meterSecond, "meter-square-kilosecond",
5555 meterSecondSub, UPRV_LENGTHOF(meterSecondSub));
5556 const char* cubicMeterSecond1Sub[] = {"cubic-meter", "square-kilosecond"};
5557 verifyCompoundUnit(cubicMeterSecond1, "cubic-meter-square-kilosecond",
5558 cubicMeterSecond1Sub, UPRV_LENGTHOF(cubicMeterSecond1Sub));
5559 const char* centimeterSecond1Sub[] = {"centimeter", "square-kilosecond"};
5560 verifyCompoundUnit(centimeterSecond1, "centimeter-square-kilosecond",
5561 centimeterSecond1Sub, UPRV_LENGTHOF(centimeterSecond1Sub));
5562 const char* secondCubicMeterSub[] = {"cubic-meter", "square-kilosecond"};
5563 verifyCompoundUnit(secondCubicMeter, "cubic-meter-square-kilosecond",
5564 secondCubicMeterSub, UPRV_LENGTHOF(secondCubicMeterSub));
5565 const char* secondCentimeterSub[] = {"centimeter", "square-kilosecond"};
5566 verifyCompoundUnit(secondCentimeter, "centimeter-square-kilosecond",
5567 secondCentimeterSub, UPRV_LENGTHOF(secondCentimeterSub));
5568 const char* secondCentimeterPerKilometerSub[] = {"centimeter", "square-kilosecond", "per-kilometer"};
5569 verifyCompoundUnit(secondCentimeterPerKilometer, "centimeter-square-kilosecond-per-kilometer",
5570 secondCentimeterPerKilometerSub, UPRV_LENGTHOF(secondCentimeterPerKilometerSub));
5571
5572 assertTrue("reordering equality", cubicMeterSecond1 == secondCubicMeter);
5573 assertTrue("additional simple units inequality", secondCubicMeter != secondCentimeter);
5574
5575 // Don't allow get/set power or SI or binary prefix on compound units
5576 status.errIfFailureAndReset();
5577 meterSecond.getDimensionality(status);
5578 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5579 meterSecond.withDimensionality(3, status);
5580 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5581 meterSecond.getPrefix(status);
5582 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5583 meterSecond.withPrefix(UMEASURE_PREFIX_CENTI, status);
5584 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5585
5586 // Test that StringPiece does not overflow
5587 MeasureUnit centimeter3 = MeasureUnit::forIdentifier({secondCentimeter.getIdentifier(), 10}, status);
5588 verifySingleUnit(centimeter3, UMEASURE_PREFIX_CENTI, 1, "centimeter");
5589 assertTrue("string piece equality", centimeter1 == centimeter3);
5590
5591 MeasureUnit footInch = MeasureUnit::forIdentifier("foot-and-inch", status);
5592 MeasureUnit inchFoot = MeasureUnit::forIdentifier("inch-and-foot", status);
5593
5594 const char* footInchSub[] = {"foot", "inch"};
5595 verifyMixedUnit(footInch, "foot-and-inch",
5596 footInchSub, UPRV_LENGTHOF(footInchSub));
5597 const char* inchFootSub[] = {"inch", "foot"};
5598 verifyMixedUnit(inchFoot, "inch-and-foot",
5599 inchFootSub, UPRV_LENGTHOF(inchFootSub));
5600
5601 assertTrue("order matters inequality", footInch != inchFoot);
5602
5603 MeasureUnit dimensionless;
5604 MeasureUnit dimensionless2 = MeasureUnit::forIdentifier("", status);
5605 status.errIfFailureAndReset("Dimensionless MeasureUnit.");
5606 assertTrue("dimensionless equality", dimensionless == dimensionless2);
5607
5608 // We support starting from an "identity" MeasureUnit and then combining it
5609 // with others via product:
5610 MeasureUnit kilometer2 = dimensionless.product(kilometer, status);
5611 status.errIfFailureAndReset("dimensionless.product(kilometer, status)");
5612 verifySingleUnit(kilometer2, UMEASURE_PREFIX_KILO, 1, "kilometer");
5613 assertTrue("kilometer equality", kilometer == kilometer2);
5614
5615 // Test out-of-range powers
5616 MeasureUnit power15 = MeasureUnit::forIdentifier("pow15-kilometer", status);
5617 verifySingleUnit(power15, UMEASURE_PREFIX_KILO, 15, "pow15-kilometer");
5618 status.errIfFailureAndReset();
5619 MeasureUnit power16a = MeasureUnit::forIdentifier("pow16-kilometer", status);
5620 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5621 MeasureUnit power16b = power15.product(kilometer, status);
5622 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5623 MeasureUnit powerN15 = MeasureUnit::forIdentifier("per-pow15-kilometer", status);
5624 verifySingleUnit(powerN15, UMEASURE_PREFIX_KILO, -15, "per-pow15-kilometer");
5625 status.errIfFailureAndReset();
5626 MeasureUnit powerN16a = MeasureUnit::forIdentifier("per-pow16-kilometer", status);
5627 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5628 MeasureUnit powerN16b = powerN15.product(overQuarticKilometer1, status);
5629 status.expectErrorAndReset(U_ILLEGAL_ARGUMENT_ERROR);
5630 }
5631
TestDimensionlessBehaviour()5632 void MeasureFormatTest::TestDimensionlessBehaviour() {
5633 IcuTestErrorCode status(*this, "TestDimensionlessBehaviour");
5634 MeasureUnit dimensionless;
5635 MeasureUnit modified;
5636
5637 // At the time of writing, each of the seven groups below caused
5638 // Parser::from("") to be called:
5639
5640 // splitToSingleUnits
5641 auto pair = dimensionless.splitToSingleUnits(status);
5642 int32_t count = pair.second;
5643 status.errIfFailureAndReset("dimensionless.splitToSingleUnits(...)");
5644 assertEquals("no singles in dimensionless", 0, count);
5645
5646 // product(dimensionless)
5647 MeasureUnit mile = MeasureUnit::getMile();
5648 mile = mile.product(dimensionless, status);
5649 status.errIfFailureAndReset("mile.product(dimensionless, ...)");
5650 verifySingleUnit(mile, UMEASURE_PREFIX_ONE, 1, "mile");
5651
5652 // dimensionless.getPrefix()
5653 UMeasurePrefix unitPrefix = dimensionless.getPrefix(status);
5654 status.errIfFailureAndReset("dimensionless.getPrefix(...)");
5655 assertEquals("dimensionless SIPrefix", UMEASURE_PREFIX_ONE, unitPrefix);
5656
5657 // dimensionless.withPrefix()
5658 modified = dimensionless.withPrefix(UMEASURE_PREFIX_KILO, status);
5659 status.errIfFailureAndReset("dimensionless.withPrefix(...)");
5660 pair = dimensionless.splitToSingleUnits(status);
5661 count = pair.second;
5662 assertEquals("no singles in modified", 0, count);
5663 unitPrefix = modified.getPrefix(status);
5664 status.errIfFailureAndReset("modified.getPrefix(...)");
5665 assertEquals("modified SIPrefix", UMEASURE_PREFIX_ONE, unitPrefix);
5666
5667 // dimensionless.getComplexity()
5668 UMeasureUnitComplexity complexity = dimensionless.getComplexity(status);
5669 status.errIfFailureAndReset("dimensionless.getComplexity(...)");
5670 assertEquals("dimensionless complexity", UMEASURE_UNIT_SINGLE, complexity);
5671
5672 // Dimensionality is mostly meaningless for dimensionless units, but it's
5673 // still considered a SINGLE unit, so this code doesn't throw errors:
5674
5675 // dimensionless.getDimensionality()
5676 int32_t dimensionality = dimensionless.getDimensionality(status);
5677 status.errIfFailureAndReset("dimensionless.getDimensionality(...)");
5678 assertEquals("dimensionless dimensionality", 0, dimensionality);
5679
5680 // dimensionless.withDimensionality()
5681 dimensionless.withDimensionality(-1, status);
5682 status.errIfFailureAndReset("dimensionless.withDimensionality(...)");
5683 dimensionality = dimensionless.getDimensionality(status);
5684 status.errIfFailureAndReset("dimensionless.getDimensionality(...)");
5685 assertEquals("dimensionless dimensionality", 0, dimensionality);
5686 }
5687
5688 // ICU-21060
Test21060_AddressSanitizerProblem()5689 void MeasureFormatTest::Test21060_AddressSanitizerProblem() {
5690 IcuTestErrorCode status(*this, "Test21060_AddressSanitizerProblem");
5691
5692 MeasureUnit first = MeasureUnit::forIdentifier("", status);
5693 status.errIfFailureAndReset();
5694
5695 // Experimentally, a compound unit like "kilogram-meter" failed. A single
5696 // unit like "kilogram" or "meter" did not fail, did not trigger the
5697 // problem.
5698 MeasureUnit crux = MeasureUnit::forIdentifier("per-meter", status);
5699
5700 // Heap allocation of a new CharString for first.identifier happens here:
5701 first = first.product(crux, status);
5702
5703 // Constructing second from first's identifier resulted in a failure later,
5704 // as second held a reference to a substring of first's identifier:
5705 MeasureUnit second = MeasureUnit::forIdentifier(first.getIdentifier(), status);
5706
5707 // Heap is freed here, as an old first.identifier CharString is deallocated
5708 // and a new CharString is allocated:
5709 first = first.product(crux, status);
5710
5711 // Proving we've had no failure yet:
5712 status.errIfFailureAndReset();
5713
5714 // heap-use-after-free failure happened here, since a SingleUnitImpl had
5715 // held onto a StringPiece pointing at a substring of an identifier that was
5716 // freed above:
5717 second = second.product(crux, status);
5718
5719 status.errIfFailureAndReset();
5720 }
5721
Test21223_FrenchDuration()5722 void MeasureFormatTest::Test21223_FrenchDuration() {
5723 IcuTestErrorCode status(*this, "Test21223_FrenchDuration");
5724 MeasureFormat mf("fr-FR", UMEASFMT_WIDTH_NARROW, status);
5725 Measure H5M10[] = {
5726 {5, MeasureUnit::createHour(status), status},
5727 {10, MeasureUnit::createMinute(status), status}
5728 };
5729 UnicodeString result;
5730 FieldPosition pos;
5731 mf.formatMeasures(H5M10, UPRV_LENGTHOF(H5M10), result, pos, status);
5732 assertEquals("Should have consistent spacing", u"5h 10min", result);
5733
5734 // Test additional locales:
5735 // int32_t localeCount;
5736 // const Locale* locales = Locale::getAvailableLocales(localeCount);
5737 // for (int32_t i=0; i<localeCount; i++) {
5738 // auto& loc = locales[i];
5739 // MeasureFormat mf1(loc, UMEASFMT_WIDTH_NARROW, status);
5740 // mf1.formatMeasures(H5M10, UPRV_LENGTHOF(H5M10), result.remove(), pos, status);
5741 // assertFalse(result + u" " + loc.getName(), true);
5742 // }
5743 }
5744
TestInternalMeasureUnitImpl()5745 void MeasureFormatTest::TestInternalMeasureUnitImpl() {
5746 IcuTestErrorCode status(*this, "TestInternalMeasureUnitImpl");
5747 MeasureUnitImpl mu1 = MeasureUnitImpl::forIdentifier("meter", status);
5748 status.assertSuccess();
5749 assertEquals("mu1 initial identifier", "", mu1.identifier.data());
5750 assertEquals("mu1 initial complexity", UMEASURE_UNIT_SINGLE, mu1.complexity);
5751 assertEquals("mu1 initial units length", 1, mu1.singleUnits.length());
5752 if (mu1.singleUnits.length() > 0) {
5753 assertEquals("mu1 initial units[0]", "meter", mu1.singleUnits[0]->getSimpleUnitID());
5754 }
5755
5756 // Producing identifier via build(): the std::move() means mu1 gets modified
5757 // while it also gets assigned to tmp's internal fImpl.
5758 MeasureUnit tmp = std::move(mu1).build(status);
5759 status.assertSuccess();
5760 assertEquals("mu1 post-move-build identifier", "meter", mu1.identifier.data());
5761 assertEquals("mu1 post-move-build complexity", UMEASURE_UNIT_SINGLE, mu1.complexity);
5762 assertEquals("mu1 post-move-build units length", 1, mu1.singleUnits.length());
5763 if (mu1.singleUnits.length() > 0) {
5764 assertEquals("mu1 post-move-build units[0]", "meter", mu1.singleUnits[0]->getSimpleUnitID());
5765 }
5766 assertEquals("MeasureUnit tmp identifier", "meter", tmp.getIdentifier());
5767
5768 // This temporary variable is used when forMeasureUnit's first parameter
5769 // lacks an fImpl instance:
5770 MeasureUnitImpl tmpMemory;
5771 const MeasureUnitImpl &tmpImplRef = MeasureUnitImpl::forMeasureUnit(tmp, tmpMemory, status);
5772 status.assertSuccess();
5773 assertEquals("tmpMemory identifier", "", tmpMemory.identifier.data());
5774 assertEquals("tmpMemory complexity", UMEASURE_UNIT_SINGLE, tmpMemory.complexity);
5775 assertEquals("tmpMemory units length", 1, tmpMemory.singleUnits.length());
5776 if (mu1.singleUnits.length() > 0) {
5777 assertEquals("tmpMemory units[0]", "meter", tmpMemory.singleUnits[0]->getSimpleUnitID());
5778 }
5779 assertEquals("tmpImplRef identifier", "", tmpImplRef.identifier.data());
5780 assertEquals("tmpImplRef complexity", UMEASURE_UNIT_SINGLE, tmpImplRef.complexity);
5781
5782 MeasureUnitImpl mu2 = MeasureUnitImpl::forIdentifier("newton-meter", status);
5783 status.assertSuccess();
5784 mu1 = std::move(mu2);
5785 assertEquals("mu1 = move(mu2): identifier", "", mu1.identifier.data());
5786 assertEquals("mu1 = move(mu2): complexity", UMEASURE_UNIT_COMPOUND, mu1.complexity);
5787 assertEquals("mu1 = move(mu2): units length", 2, mu1.singleUnits.length());
5788 if (mu1.singleUnits.length() >= 2) {
5789 assertEquals("mu1 = move(mu2): units[0]", "newton", mu1.singleUnits[0]->getSimpleUnitID());
5790 assertEquals("mu1 = move(mu2): units[1]", "meter", mu1.singleUnits[1]->getSimpleUnitID());
5791 }
5792
5793 mu1 = MeasureUnitImpl::forIdentifier("hour-and-minute-and-second", status);
5794 status.assertSuccess();
5795 assertEquals("mu1 = HMS: identifier", "", mu1.identifier.data());
5796 assertEquals("mu1 = HMS: complexity", UMEASURE_UNIT_MIXED, mu1.complexity);
5797 assertEquals("mu1 = HMS: units length", 3, mu1.singleUnits.length());
5798 if (mu1.singleUnits.length() >= 3) {
5799 assertEquals("mu1 = HMS: units[0]", "hour", mu1.singleUnits[0]->getSimpleUnitID());
5800 assertEquals("mu1 = HMS: units[1]", "minute", mu1.singleUnits[1]->getSimpleUnitID());
5801 assertEquals("mu1 = HMS: units[2]", "second", mu1.singleUnits[2]->getSimpleUnitID());
5802 }
5803
5804 MeasureUnitImpl m2 = MeasureUnitImpl::forIdentifier("", status);
5805 m2.appendSingleUnit(SingleUnitImpl::forMeasureUnit(MeasureUnit::getMeter(), status), status);
5806 m2.appendSingleUnit(SingleUnitImpl::forMeasureUnit(MeasureUnit::getMeter(), status), status);
5807 status.assertSuccess();
5808 assertEquals("append meter twice: complexity", UMEASURE_UNIT_SINGLE, m2.complexity);
5809 assertEquals("append meter twice: units length", 1, m2.singleUnits.length());
5810 if (mu1.singleUnits.length() >= 1) {
5811 assertEquals("append meter twice: units[0]", "meter", m2.singleUnits[0]->getSimpleUnitID());
5812 }
5813 assertEquals("append meter twice: identifier", "square-meter",
5814 std::move(m2).build(status).getIdentifier());
5815
5816 MeasureUnitImpl mcm = MeasureUnitImpl::forIdentifier("", status);
5817 mcm.appendSingleUnit(SingleUnitImpl::forMeasureUnit(MeasureUnit::getMeter(), status), status);
5818 mcm.appendSingleUnit(SingleUnitImpl::forMeasureUnit(MeasureUnit::getCentimeter(), status), status);
5819 status.assertSuccess();
5820 assertEquals("append meter & centimeter: complexity", UMEASURE_UNIT_COMPOUND, mcm.complexity);
5821 assertEquals("append meter & centimeter: units length", 2, mcm.singleUnits.length());
5822 if (mu1.singleUnits.length() >= 2) {
5823 assertEquals("append meter & centimeter: units[0]", "meter",
5824 mcm.singleUnits[0]->getSimpleUnitID());
5825 assertEquals("append meter & centimeter: units[1]", "meter",
5826 mcm.singleUnits[1]->getSimpleUnitID());
5827 }
5828 assertEquals("append meter & centimeter: identifier", "meter-centimeter",
5829 std::move(mcm).build(status).getIdentifier());
5830
5831 MeasureUnitImpl m2m = MeasureUnitImpl::forIdentifier("meter-square-meter", status);
5832 status.assertSuccess();
5833 assertEquals("meter-square-meter: complexity", UMEASURE_UNIT_SINGLE, m2m.complexity);
5834 assertEquals("meter-square-meter: units length", 1, m2m.singleUnits.length());
5835 if (mu1.singleUnits.length() >= 1) {
5836 assertEquals("meter-square-meter: units[0]", "meter", m2m.singleUnits[0]->getSimpleUnitID());
5837 }
5838 assertEquals("meter-square-meter: identifier", "cubic-meter",
5839 std::move(m2m).build(status).getIdentifier());
5840 }
5841
5842
verifyFieldPosition(const char * description,const MeasureFormat & fmt,const UnicodeString & prefix,const Measure * measures,int32_t measureCount,NumberFormat::EAlignmentFields field,int32_t start,int32_t end)5843 void MeasureFormatTest::verifyFieldPosition(
5844 const char *description,
5845 const MeasureFormat &fmt,
5846 const UnicodeString &prefix,
5847 const Measure *measures,
5848 int32_t measureCount,
5849 NumberFormat::EAlignmentFields field,
5850 int32_t start,
5851 int32_t end) {
5852 // 8 char lead
5853 UnicodeString result(prefix);
5854 FieldPosition pos(field);
5855 UErrorCode status = U_ZERO_ERROR;
5856 CharString ch;
5857 const char *descPrefix = ch.append(description, status)
5858 .append(": ", status).data();
5859 CharString beginIndex;
5860 beginIndex.append(descPrefix, status).append("beginIndex", status);
5861 CharString endIndex;
5862 endIndex.append(descPrefix, status).append("endIndex", status);
5863 fmt.formatMeasures(measures, measureCount, result, pos, status);
5864 if (!assertSuccess("Error formatting", status)) {
5865 return;
5866 }
5867 assertEquals(beginIndex.data(), start, pos.getBeginIndex());
5868 assertEquals(endIndex.data(), end, pos.getEndIndex());
5869 }
5870
verifyFormat(const char * description,const MeasureFormat & fmt,const Measure * measures,int32_t measureCount,const char * expected)5871 void MeasureFormatTest::verifyFormat(
5872 const char *description,
5873 const MeasureFormat &fmt,
5874 const Measure *measures,
5875 int32_t measureCount,
5876 const char *expected) {
5877 verifyFormatWithPrefix(
5878 description,
5879 fmt,
5880 "",
5881 measures,
5882 measureCount,
5883 expected);
5884 }
5885
verifyFormatWithPrefix(const char * description,const MeasureFormat & fmt,const UnicodeString & prefix,const Measure * measures,int32_t measureCount,const char * expected)5886 void MeasureFormatTest::verifyFormatWithPrefix(
5887 const char *description,
5888 const MeasureFormat &fmt,
5889 const UnicodeString &prefix,
5890 const Measure *measures,
5891 int32_t measureCount,
5892 const char *expected) {
5893 UnicodeString result(prefix);
5894 FieldPosition pos(FieldPosition::DONT_CARE);
5895 UErrorCode status = U_ZERO_ERROR;
5896 fmt.formatMeasures(measures, measureCount, result, pos, status);
5897 if (!assertSuccess("Error formatting", status)) {
5898 return;
5899 }
5900 assertEquals(description, ctou(expected), result);
5901 }
5902
verifyFormat(const char * description,const MeasureFormat & fmt,const ExpectedResult * expectedResults,int32_t count)5903 void MeasureFormatTest::verifyFormat(
5904 const char *description,
5905 const MeasureFormat &fmt,
5906 const ExpectedResult *expectedResults,
5907 int32_t count) {
5908 for (int32_t i = 0; i < count; ++i) {
5909 verifyFormat(description, fmt, expectedResults[i].measures, expectedResults[i].count, expectedResults[i].expected);
5910 }
5911 }
5912
verifySingleUnit(const MeasureUnit & unit,UMeasurePrefix unitPrefix,int8_t power,const char * identifier)5913 void MeasureFormatTest::verifySingleUnit(
5914 const MeasureUnit& unit,
5915 UMeasurePrefix unitPrefix,
5916 int8_t power,
5917 const char* identifier) {
5918 IcuTestErrorCode status(*this, "verifySingleUnit");
5919 UnicodeString uid(identifier, -1, US_INV);
5920 assertEquals(uid + ": SI or binary prefix",
5921 unitPrefix,
5922 unit.getPrefix(status));
5923 status.errIfFailureAndReset("%s: SI or binary prefix", identifier);
5924 assertEquals(uid + ": Power",
5925 static_cast<int32_t>(power),
5926 static_cast<int32_t>(unit.getDimensionality(status)));
5927 status.errIfFailureAndReset("%s: Power", identifier);
5928 assertEquals(uid + ": Identifier",
5929 identifier,
5930 unit.getIdentifier());
5931 status.errIfFailureAndReset("%s: Identifier", identifier);
5932 assertTrue(uid + ": Constructor",
5933 unit == MeasureUnit::forIdentifier(identifier, status));
5934 status.errIfFailureAndReset("%s: Constructor", identifier);
5935 assertEquals(uid + ": Complexity",
5936 UMEASURE_UNIT_SINGLE,
5937 unit.getComplexity(status));
5938 status.errIfFailureAndReset("%s: Complexity", identifier);
5939 }
5940
verifyCompoundUnit(const MeasureUnit & unit,const char * identifier,const char ** subIdentifiers,int32_t subIdentifierCount)5941 void MeasureFormatTest::verifyCompoundUnit(
5942 const MeasureUnit& unit,
5943 const char* identifier,
5944 const char** subIdentifiers,
5945 int32_t subIdentifierCount) {
5946 IcuTestErrorCode status(*this, "verifyCompoundUnit");
5947 UnicodeString uid(identifier, -1, US_INV);
5948 assertEquals(uid + ": Identifier",
5949 identifier,
5950 unit.getIdentifier());
5951 status.errIfFailureAndReset("%s: Identifier", identifier);
5952 assertTrue(uid + ": Constructor",
5953 unit == MeasureUnit::forIdentifier(identifier, status));
5954 status.errIfFailureAndReset("%s: Constructor", identifier);
5955 assertEquals(uid + ": Complexity",
5956 UMEASURE_UNIT_COMPOUND,
5957 unit.getComplexity(status));
5958 status.errIfFailureAndReset("%s: Complexity", identifier);
5959
5960 auto pair = unit.splitToSingleUnits(status);
5961 const LocalArray<MeasureUnit>& subUnits = pair.first;
5962 int32_t length = pair.second;
5963 assertEquals(uid + ": Length", subIdentifierCount, length);
5964 for (int32_t i = 0;; i++) {
5965 if (i >= subIdentifierCount || i >= length) break;
5966 assertEquals(uid + ": Sub-unit #" + Int64ToUnicodeString(i),
5967 subIdentifiers[i],
5968 subUnits[i].getIdentifier());
5969 assertEquals(uid + ": Sub-unit Complexity",
5970 UMEASURE_UNIT_SINGLE,
5971 subUnits[i].getComplexity(status));
5972 }
5973 }
5974
verifyMixedUnit(const MeasureUnit & unit,const char * identifier,const char ** subIdentifiers,int32_t subIdentifierCount)5975 void MeasureFormatTest::verifyMixedUnit(
5976 const MeasureUnit& unit,
5977 const char* identifier,
5978 const char** subIdentifiers,
5979 int32_t subIdentifierCount) {
5980 IcuTestErrorCode status(*this, "verifyMixedUnit");
5981 UnicodeString uid(identifier, -1, US_INV);
5982 assertEquals(uid + ": Identifier",
5983 identifier,
5984 unit.getIdentifier());
5985 status.errIfFailureAndReset("%s: Identifier", identifier);
5986 assertTrue(uid + ": Constructor",
5987 unit == MeasureUnit::forIdentifier(identifier, status));
5988 status.errIfFailureAndReset("%s: Constructor", identifier);
5989 assertEquals(uid + ": Complexity",
5990 UMEASURE_UNIT_MIXED,
5991 unit.getComplexity(status));
5992 status.errIfFailureAndReset("%s: Complexity", identifier);
5993
5994 auto pair = unit.splitToSingleUnits(status);
5995 const LocalArray<MeasureUnit>& subUnits = pair.first;
5996 int32_t length = pair.second;
5997 assertEquals(uid + ": Length", subIdentifierCount, length);
5998 for (int32_t i = 0;; i++) {
5999 if (i >= subIdentifierCount || i >= length) break;
6000 assertEquals(uid + ": Sub-unit #" + Int64ToUnicodeString(i),
6001 subIdentifiers[i],
6002 subUnits[i].getIdentifier());
6003 }
6004 }
6005
createMeasureFormatTest()6006 extern IntlTest *createMeasureFormatTest() {
6007 return new MeasureFormatTest();
6008 }
6009
6010 #endif
6011