Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 1 | /// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 | /// for details. All rights reserved. Use of this source code is governed by a |
| 3 | /// BSD-style license that can be found in the LICENSE file. |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 4 | |
alanknight | a110b9c | 2016-01-11 09:54:18 -0800 | [diff] [blame] | 5 | /// Tests based on the closure number formatting tests. |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 6 | library number_closure_test; |
| 7 | |
Alan Knight | 4ce7dc6 | 2015-01-02 16:14:50 -0800 | [diff] [blame] | 8 | import 'dart:async'; |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 9 | import 'package:intl/intl.dart'; |
| 10 | import 'package:test/test.dart'; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 11 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 12 | void main() { |
| 13 | test('testVeryBigNumber', testVeryBigNumber); |
| 14 | test('testStandardFormat', testStandardFormat); |
| 15 | test('testNegativePercentage', testNegativePercentage); |
| 16 | test('testCustomPercentage', testCustomPercentage); |
| 17 | test('testBasicFormat', testBasicFormat); |
| 18 | test('testGrouping', testGrouping); |
| 19 | test('testPerMill', testPerMill); |
| 20 | test('testQuotes', testQuotes); |
| 21 | test('testZeros', testZeros); |
| 22 | test('testExponential', testExponential); |
| 23 | test('testPlusSignInExponentPart', testPlusSignInExponentPart); |
| 24 | test('testApis', testApis); |
| 25 | test('testLocaleSwitch', testLocaleSwitch); |
| 26 | test('testLocaleSwitchAsync', testLocaleSwitchAsync); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 27 | } |
| 28 | |
alanknight | a110b9c | 2016-01-11 09:54:18 -0800 | [diff] [blame] | 29 | /// Test two large numbers for equality, assuming that there may be some |
| 30 | /// loss of precision in the less significant digits. |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 31 | bool veryBigNumberCompare(str1, str2) { |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 32 | return str1.length == str2.length && |
Kevin Moore | 4f4b8b4 | 2015-04-24 16:34:31 -0700 | [diff] [blame] | 33 | str1.substring(0, 8) == str2.substring(0, 8); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 34 | } |
| 35 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 36 | void testVeryBigNumber() { |
| 37 | String str; |
| 38 | NumberFormat fmt; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 39 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 40 | fmt = NumberFormat.decimalPattern(); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 41 | str = fmt.format(1.3456E20); |
[email protected] | 0c032bb | 2014-12-16 22:08:11 +0000 | [diff] [blame] | 42 | expect(veryBigNumberCompare('134,560,000,000,000,000,000', str), isTrue); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 43 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 44 | fmt = NumberFormat.percentPattern(); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 45 | str = fmt.format(1.3456E20); |
| 46 | expect(veryBigNumberCompare('13,456,000,000,000,000,000,000%', str), isTrue); |
| 47 | |
| 48 | // TODO(alanknight): Note that this disagrees with what ICU would print |
| 49 | // for this. We need significant digit support to do this properly. |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 50 | fmt = NumberFormat.scientificPattern(); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 51 | str = fmt.format(1.3456E20); |
| 52 | expect('1E20', str); |
| 53 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 54 | fmt = NumberFormat.decimalPattern(); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 55 | str = fmt.format(-1.234567890123456e306); |
| 56 | expect(1 + 1 + 306 + 306 / 3, str.length); |
| 57 | expect('-1,234,567,890,123,45', str.substring(0, 21)); |
| 58 | |
| 59 | str = fmt.format(1 / 0); |
| 60 | expect('∞', str); |
| 61 | str = fmt.format(-1 / 0); |
| 62 | expect('-∞', str); |
| 63 | } |
| 64 | |
| 65 | void testStandardFormat() { |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 66 | String str; |
| 67 | NumberFormat fmt; |
| 68 | fmt = NumberFormat.decimalPattern(); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 69 | str = fmt.format(1234.579); |
| 70 | expect('1,234.579', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 71 | fmt = NumberFormat.percentPattern(); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 72 | str = fmt.format(1234.579); |
| 73 | expect('123,458%', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 74 | fmt = NumberFormat.scientificPattern(); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 75 | str = fmt.format(1234.579); |
| 76 | expect('1E3', str); |
| 77 | } |
| 78 | |
| 79 | void testNegativePercentage() { |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 80 | String str; |
| 81 | var fmt = NumberFormat('#,##0.00%'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 82 | str = fmt.format(-1234.56); |
| 83 | expect('-123,456.00%', str); |
| 84 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 85 | fmt = NumberFormat.percentPattern(); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 86 | str = fmt.format(-1234.579); |
| 87 | expect('-123,458%', str); |
| 88 | } |
| 89 | |
| 90 | void testCustomPercentage() { |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 91 | var fmt = NumberFormat.percentPattern(); |
[email protected] | 293ee92 | 2013-04-29 20:32:04 +0000 | [diff] [blame] | 92 | fmt.maximumFractionDigits = 1; |
| 93 | fmt.minimumFractionDigits = 1; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 94 | var str = fmt.format(0.1291); |
| 95 | expect('12.9%', str); |
[email protected] | 293ee92 | 2013-04-29 20:32:04 +0000 | [diff] [blame] | 96 | fmt.maximumFractionDigits = 2; |
| 97 | fmt.minimumFractionDigits = 1; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 98 | str = fmt.format(0.129); |
| 99 | expect('12.9%', str); |
[email protected] | 293ee92 | 2013-04-29 20:32:04 +0000 | [diff] [blame] | 100 | fmt.maximumFractionDigits = 2; |
| 101 | fmt.minimumFractionDigits = 1; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 102 | str = fmt.format(0.12); |
| 103 | expect('12.0%', str); |
[email protected] | 293ee92 | 2013-04-29 20:32:04 +0000 | [diff] [blame] | 104 | fmt.maximumFractionDigits = 2; |
| 105 | fmt.minimumFractionDigits = 1; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 106 | str = fmt.format(0.12911); |
| 107 | expect('12.91%', str); |
| 108 | } |
| 109 | |
| 110 | void testBasicFormat() { |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 111 | var fmt = NumberFormat('0.0000'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 112 | var str = fmt.format(123.45789179565757); |
| 113 | expect('123.4579', str); |
| 114 | } |
| 115 | |
| 116 | void testGrouping() { |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 117 | String str; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 118 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 119 | var fmt = NumberFormat('#,###'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 120 | str = fmt.format(1234567890); |
| 121 | expect('1,234,567,890', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 122 | fmt = NumberFormat('#,####'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 123 | str = fmt.format(1234567890); |
| 124 | expect('12,3456,7890', str); |
| 125 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 126 | fmt = NumberFormat('#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 127 | str = fmt.format(1234567890); |
| 128 | expect('1234567890', str); |
| 129 | } |
| 130 | |
| 131 | void testPerMill() { |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 132 | String str; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 133 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 134 | var fmt = NumberFormat('###.###\u2030'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 135 | str = fmt.format(0.4857); |
| 136 | expect('485.7\u2030', str); |
| 137 | } |
| 138 | |
| 139 | void testQuotes() { |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 140 | String str; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 141 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 142 | var fmt = NumberFormat('a\'fo\'\'o\'b#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 143 | str = fmt.format(123); |
| 144 | expect('afo\'ob123', str); |
| 145 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 146 | fmt = NumberFormat('a\'\'b#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 147 | str = fmt.format(123); |
| 148 | expect('a\'b123', str); |
| 149 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 150 | fmt = NumberFormat('a\'fo\'\'o\'b#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 151 | str = fmt.format(-123); |
[email protected] | 69cc609 | 2014-07-08 17:06:27 +0000 | [diff] [blame] | 152 | expect('-afo\'ob123', str); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 153 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 154 | fmt = NumberFormat('a\'\'b#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 155 | str = fmt.format(-123); |
[email protected] | 69cc609 | 2014-07-08 17:06:27 +0000 | [diff] [blame] | 156 | expect('-a\'b123', str); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 157 | } |
| 158 | |
| 159 | void testZeros() { |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 160 | String str; |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 161 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 162 | var fmt = NumberFormat('#.#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 163 | str = fmt.format(0); |
| 164 | expect('0', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 165 | fmt = NumberFormat('#.'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 166 | str = fmt.format(0); |
| 167 | expect('0.', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 168 | fmt = NumberFormat('.#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 169 | str = fmt.format(0); |
| 170 | expect('.0', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 171 | fmt = NumberFormat('#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 172 | str = fmt.format(0); |
| 173 | expect('0', str); |
| 174 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 175 | fmt = NumberFormat('#0.#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 176 | str = fmt.format(0); |
| 177 | expect('0', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 178 | fmt = NumberFormat('#0.'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 179 | str = fmt.format(0); |
| 180 | expect('0.', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 181 | fmt = NumberFormat('#.0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 182 | str = fmt.format(0); |
| 183 | expect('.0', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 184 | fmt = NumberFormat('#'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 185 | str = fmt.format(0); |
| 186 | expect('0', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 187 | fmt = NumberFormat('000'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 188 | str = fmt.format(0); |
| 189 | expect('000', str); |
| 190 | } |
| 191 | |
| 192 | void testExponential() { |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 193 | String str; |
| 194 | var fmt = NumberFormat('0.####E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 195 | str = fmt.format(0.01234); |
| 196 | expect('1.234E-2', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 197 | fmt = NumberFormat('00.000E00'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 198 | str = fmt.format(0.01234); |
| 199 | expect('12.340E-03', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 200 | fmt = NumberFormat('##0.######E000'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 201 | str = fmt.format(0.01234); |
| 202 | expect('12.34E-003', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 203 | fmt = NumberFormat('0.###E0;[0.###E0]'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 204 | str = fmt.format(0.01234); |
| 205 | expect('1.234E-2', str); |
| 206 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 207 | fmt = NumberFormat('0.####E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 208 | str = fmt.format(123456789); |
| 209 | expect('1.2346E8', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 210 | fmt = NumberFormat('00.000E00'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 211 | str = fmt.format(123456789); |
| 212 | expect('12.346E07', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 213 | fmt = NumberFormat('##0.######E000'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 214 | str = fmt.format(123456789); |
| 215 | expect('123.456789E006', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 216 | fmt = NumberFormat('0.###E0;[0.###E0]'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 217 | str = fmt.format(123456789); |
| 218 | expect('1.235E8', str); |
| 219 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 220 | fmt = NumberFormat('0.####E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 221 | str = fmt.format(1.23e300); |
| 222 | expect('1.23E300', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 223 | fmt = NumberFormat('00.000E00'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 224 | str = fmt.format(1.23e300); |
| 225 | expect('12.300E299', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 226 | fmt = NumberFormat('##0.######E000'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 227 | str = fmt.format(1.23e300); |
| 228 | expect('1.23E300', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 229 | fmt = NumberFormat('0.###E0;[0.###E0]'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 230 | str = fmt.format(1.23e300); |
| 231 | expect('1.23E300', str); |
| 232 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 233 | fmt = NumberFormat('0.####E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 234 | str = fmt.format(-3.141592653e-271); |
| 235 | expect('-3.1416E-271', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 236 | fmt = NumberFormat('00.000E00'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 237 | str = fmt.format(-3.141592653e-271); |
| 238 | expect('-31.416E-272', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 239 | fmt = NumberFormat('##0.######E000'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 240 | str = fmt.format(-3.141592653e-271); |
| 241 | expect('-314.159265E-273', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 242 | fmt = NumberFormat('0.###E0;[0.###E0]'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 243 | str = fmt.format(-3.141592653e-271); |
| 244 | expect('[3.142E-271]', str); |
| 245 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 246 | fmt = NumberFormat('0.####E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 247 | str = fmt.format(0); |
| 248 | expect('0E0', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 249 | fmt = NumberFormat('00.000E00'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 250 | str = fmt.format(0); |
| 251 | expect('00.000E00', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 252 | fmt = NumberFormat('##0.######E000'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 253 | str = fmt.format(0); |
| 254 | expect('0E000', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 255 | fmt = NumberFormat('0.###E0;[0.###E0]'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 256 | str = fmt.format(0); |
| 257 | expect('0E0', str); |
| 258 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 259 | fmt = NumberFormat('0.####E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 260 | str = fmt.format(-1); |
| 261 | expect('-1E0', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 262 | fmt = NumberFormat('00.000E00'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 263 | str = fmt.format(-1); |
| 264 | expect('-10.000E-01', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 265 | fmt = NumberFormat('##0.######E000'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 266 | str = fmt.format(-1); |
| 267 | expect('-1E000', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 268 | fmt = NumberFormat('0.###E0;[0.###E0]'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 269 | str = fmt.format(-1); |
| 270 | expect('[1E0]', str); |
| 271 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 272 | fmt = NumberFormat('0.####E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 273 | str = fmt.format(1); |
| 274 | expect('1E0', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 275 | fmt = NumberFormat('00.000E00'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 276 | str = fmt.format(1); |
| 277 | expect('10.000E-01', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 278 | fmt = NumberFormat('##0.######E000'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 279 | str = fmt.format(1); |
| 280 | expect('1E000', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 281 | fmt = NumberFormat('0.###E0;[0.###E0]'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 282 | str = fmt.format(1); |
| 283 | expect('1E0', str); |
| 284 | |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 285 | fmt = NumberFormat('#E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 286 | str = fmt.format(12345.0); |
| 287 | expect('1E4', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 288 | fmt = NumberFormat('0E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 289 | str = fmt.format(12345.0); |
| 290 | expect('1E4', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 291 | fmt = NumberFormat('##0.###E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 292 | str = fmt.format(12345.0); |
| 293 | expect('12.345E3', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 294 | fmt = NumberFormat('##0.###E0'); |
[email protected] | 8cc28cb | 2013-04-09 19:58:42 +0000 | [diff] [blame] | 295 | str = fmt.format(12345.00001); |
| 296 | expect('12.345E3', str); |
Dart Team | 795c490 | 2019-08-29 10:58:28 -0700 | [diff] [blame] | 297 | fmt = NumberFormat('##0.###E0'); |
|