| OLD | NEW |
| 1 // for details. All rights reserved. Use of this source code is governed by a | 1 // for details. All rights reserved. Use of this source code is governed by a |
| 2 // BSD-style license that can be found in the LICENSE file. | 2 // BSD-style license that can be found in the LICENSE file. |
| 3 | 3 |
| 4 /** | 4 /// Tests based on the closure number formatting tests. |
| 5 * Tests based on the closure number formatting tests. | |
| 6 */ | |
| 7 library number_closure_test; | 5 library number_closure_test; |
| 8 | 6 |
| 9 import 'dart:async'; | 7 import 'dart:async'; |
| 10 import "package:intl/intl.dart"; | 8 import "package:intl/intl.dart"; |
| 11 import "package:unittest/unittest.dart"; | 9 import "package:test/test.dart"; |
| 12 | 10 |
| 13 main() { | 11 main() { |
| 14 test("testVeryBigNumber", testVeryBigNumber); | 12 test("testVeryBigNumber", testVeryBigNumber); |
| 15 test("testStandardFormat", testStandardFormat); | 13 test("testStandardFormat", testStandardFormat); |
| 16 test("testNegativePercentage", testNegativePercentage); | 14 test("testNegativePercentage", testNegativePercentage); |
| 17 test("testCustomPercentage", testCustomPercentage); | 15 test("testCustomPercentage", testCustomPercentage); |
| 18 test("testBasicFormat", testBasicFormat); | 16 test("testBasicFormat", testBasicFormat); |
| 19 test("testGrouping", testGrouping); | 17 test("testGrouping", testGrouping); |
| 20 test("testPerMill", testPerMill); | 18 test("testPerMill", testPerMill); |
| 21 test("testQuotes", testQuotes); | 19 test("testQuotes", testQuotes); |
| 22 test("testZeros", testZeros); | 20 test("testZeros", testZeros); |
| 23 test("testExponential", testExponential); | 21 test("testExponential", testExponential); |
| 24 test("testPlusSignInExponentPart", testPlusSignInExponentPart); | 22 test("testPlusSignInExponentPart", testPlusSignInExponentPart); |
| 25 test("testApis", testApis); | 23 test("testApis", testApis); |
| 26 test("testLocaleSwitch", testLocaleSwitch); | 24 test("testLocaleSwitch", testLocaleSwitch); |
| 27 test("testLocaleSwitchAsync", testLocaleSwitchAsync); | 25 test("testLocaleSwitchAsync", testLocaleSwitchAsync); |
| 28 } | 26 } |
| 29 | 27 |
| 30 /** | 28 /// Test two large numbers for equality, assuming that there may be some |
| 31 * Test two large numbers for equality, assuming that there may be some | 29 /// loss of precision in the less significant digits. |
| 32 * loss of precision in the less significant digits. | |
| 33 */ | |
| 34 veryBigNumberCompare(str1, str2) { | 30 veryBigNumberCompare(str1, str2) { |
| 35 return str1.length == str2.length && | 31 return str1.length == str2.length && |
| 36 str1.substring(0, 8) == str2.substring(0, 8); | 32 str1.substring(0, 8) == str2.substring(0, 8); |
| 37 } | 33 } |
| 38 | 34 |
| 39 testVeryBigNumber() { | 35 testVeryBigNumber() { |
| 40 var str; | 36 var str; |
| 41 var fmt; | 37 var fmt; |
| 42 | 38 |
| 43 fmt = new NumberFormat.decimalPattern(); | 39 fmt = new NumberFormat.decimalPattern(); |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 376 | 372 |
| 377 fmt = new NumberFormat('#,###'); | 373 fmt = new NumberFormat('#,###'); |
| 378 str = fmt.format(1234567890); | 374 str = fmt.format(1234567890); |
| 379 expect('1,234,567,890', str); | 375 expect('1,234,567,890', str); |
| 380 } | 376 } |
| 381 | 377 |
| 382 testLocaleSwitch() { | 378 testLocaleSwitch() { |
| 383 Intl.withLocale("fr", verifyFrenchLocale); | 379 Intl.withLocale("fr", verifyFrenchLocale); |
| 384 } | 380 } |
| 385 | 381 |
| 382 typedef void TimerArgument(); |
| 386 testLocaleSwitchAsync() { | 383 testLocaleSwitchAsync() { |
| 387 Intl.withLocale("fr", () { | 384 Intl.withLocale("fr", () { |
| 388 new Timer(new Duration(milliseconds: 10), expectAsync(verifyFrenchLocale)); | 385 new Timer(new Duration(milliseconds: 10), |
| 386 expectAsync(verifyFrenchLocale) as TimerArgument); |
| 389 }); | 387 }); |
| 390 // Verify that things running outside the zone still get en_US. | 388 // Verify that things running outside the zone still get en_US. |
| 391 testStandardFormat(); | 389 testStandardFormat(); |
| 392 } | 390 } |
| 393 | 391 |
| 394 void verifyFrenchLocale() { | 392 void verifyFrenchLocale() { |
| 395 var fmt = new NumberFormat('#,###'); | 393 var fmt = new NumberFormat('#,###'); |
| 396 var str = fmt.format(1234567890); | 394 var str = fmt.format(1234567890); |
| 397 expect(str, '1\u00a0234\u00a0567\u00a0890'); | 395 expect(str, '1\u00a0234\u00a0567\u00a0890'); |
| 398 } | 396 } |
| OLD | NEW |