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