Index: tests/lib/math/math_parse_double_test.dart |
diff --git a/tests/lib/math/math_parse_double_test.dart b/tests/lib/math/math_parse_double_test.dart |
index af77f6b6c232105e093662b26a1c3093eb6eb54a..4556956258c9cc3173e481b087ea295848fc5985 100644 |
--- a/tests/lib/math/math_parse_double_test.dart |
+++ b/tests/lib/math/math_parse_double_test.dart |
@@ -21,6 +21,12 @@ void main() { |
Expect.equals(499.0, double.parse(" 499 ")); |
Expect.equals(499.0, double.parse(" +499 ")); |
Expect.equals(-499.0, double.parse(" -499 ")); |
+ Expect.equals(498.0, double.parse("\xA0 498 \xA0")); |
+ Expect.equals(497.0, double.parse("\xA0 +497 \xA0")); |
+ Expect.equals(-496.0, double.parse("\xA0 -496 \xA0")); |
+ Expect.equals(495.0, double.parse("\u205F 495 \u205F")); |
+ Expect.equals(494.0, double.parse("\u180E +494 \u205F")); |
+ Expect.equals(-493.0, double.parse("\u1680 -493 \u2006")); |
Expect.equals(0.0, double.parse("0")); |
Expect.equals(0.0, double.parse("+0")); |
Expect.equals(-0.0, double.parse("-0")); |
@@ -29,65 +35,131 @@ void main() { |
Expect.equals(0.0, double.parse(" +0 ")); |
Expect.equals(-0.0, double.parse(" -0 ")); |
Expect.equals(true, double.parse(" -0 ").isNegative); |
- Expect.equals(1.0 * 0x1234567890, double.parse("0x1234567890")); |
- Expect.equals(1.0 * -0x1234567890, double.parse("-0x1234567890")); |
- Expect.equals(1.0 * 0x1234567890, double.parse(" 0x1234567890 ")); |
- Expect.equals(1.0 * -0x1234567890, double.parse(" -0x1234567890 ")); |
- Expect.equals(256.0, double.parse("0x100")); |
- Expect.equals(-256.0, double.parse("-0x100")); |
- Expect.equals(256.0, double.parse(" 0x100 ")); |
- Expect.equals(-256.0, double.parse(" -0x100 ")); |
- Expect.equals(1.0 * 0xabcdef, double.parse("0xabcdef")); |
- Expect.equals(1.0 * 0xABCDEF, double.parse("0xABCDEF")); |
- Expect.equals(1.0 * 0xabcdef, double.parse("0xabCDEf")); |
- Expect.equals(1.0 * -0xabcdef, double.parse("-0xabcdef")); |
- Expect.equals(1.0 * -0xABCDEF, double.parse("-0xABCDEF")); |
- Expect.equals(1.0 * 0xabcdef, double.parse(" 0xabcdef ")); |
- Expect.equals(1.0 * 0xABCDEF, double.parse(" 0xABCDEF ")); |
- Expect.equals(1.0 * -0xabcdef, double.parse(" -0xabcdef ")); |
- Expect.equals(1.0 * -0xABCDEF, double.parse(" -0xABCDEF ")); |
- Expect.equals(1.0 * 0xabcdef, double.parse("0x00000abcdef")); |
- Expect.equals(1.0 * 0xABCDEF, double.parse("0x00000ABCDEF")); |
- Expect.equals(1.0 * -0xabcdef, double.parse("-0x00000abcdef")); |
- Expect.equals(1.0 * -0xABCDEF, double.parse("-0x00000ABCDEF")); |
- Expect.equals(1.0 * 0xabcdef, double.parse(" 0x00000abcdef ")); |
- Expect.equals(1.0 * 0xABCDEF, double.parse(" 0x00000ABCDEF ")); |
- Expect.equals(1.0 * -0xabcdef, double.parse(" -0x00000abcdef ")); |
- Expect.equals(1.0 * -0xABCDEF, double.parse(" -0x00000ABCDEF ")); |
+ Expect.equals(0.0, double.parse("\xA0 0 \xA0")); |
+ Expect.equals(0.0, double.parse("\xA0 +0 \xA0")); |
+ Expect.equals(-0.0, double.parse("\xA0 -0 \xA0")); |
+ Expect.equals(true, double.parse("\xA0 -0 \xA0").isNegative); |
Expect.equals(10.0, double.parse("010")); |
Expect.equals(-10.0, double.parse("-010")); |
Expect.equals(10.0, double.parse(" 010 ")); |
Expect.equals(-10.0, double.parse(" -010 ")); |
+ Expect.equals(10.0, double.parse(" \xA0 010 \xA0 ")); |
+ Expect.equals(-10.0, double.parse(" \xA0 -010 \xA0 ")); |
Expect.equals(0.1, double.parse("0.1")); |
Expect.equals(0.1, double.parse(" 0.1 ")); |
Expect.equals(0.1, double.parse(" +0.1 ")); |
Expect.equals(-0.1, double.parse(" -0.1 ")); |
+ Expect.equals(0.1, double.parse("\xA0 0.1 \xA0")); |
+ Expect.equals(0.1, double.parse("\xA0 +0.1 \xA0")); |
+ Expect.equals(-0.1, double.parse("\xA0 -0.1 \xA0")); |
Expect.equals(0.1, double.parse(".1")); |
Expect.equals(0.1, double.parse(" .1 ")); |
Expect.equals(0.1, double.parse(" +.1 ")); |
Expect.equals(-0.1, double.parse(" -.1 ")); |
+ Expect.equals(0.1, double.parse("\xA0 .1 \xA0")); |
+ Expect.equals(0.1, double.parse("\xA0 +.1 \xA0")); |
+ Expect.equals(-0.1, double.parse("\xA0 -.1 \xA0")); |
Expect.equals(1.5, double.parse("1.5")); |
Expect.equals(1234567.89, double.parse("1234567.89")); |
Expect.equals(1234567.89, double.parse(" 1234567.89 ")); |
Expect.equals(1234567.89, double.parse(" +1234567.89 ")); |
Expect.equals(-1234567.89, double.parse(" -1234567.89 ")); |
+ Expect.equals(1234567.89, double.parse(" \xA01234567.89 \xA0")); |
+ Expect.equals(1234567.89, double.parse("\xA0 +1234567.89 \xA0")); |
+ Expect.equals(-1234567.89, double.parse("\xA0 -1234567.89 \xA0")); |
Expect.equals(1234567e89, double.parse("1234567e89")); |
Expect.equals(1234567e89, double.parse(" 1234567e89 ")); |
Expect.equals(1234567e89, double.parse(" +1234567e89 ")); |
Expect.equals(-1234567e89, double.parse(" -1234567e89 ")); |
+ Expect.equals(1234567e89, double.parse("\xA0 1234567e89 \xA0")); |
+ Expect.equals(1234567e89, double.parse("\xA0 +1234567e89 \xA0")); |
+ Expect.equals(-1234567e89, double.parse(" \xA0 -1234567e89 \xA0")); |
Expect.equals(1234567.89e2, double.parse("1234567.89e2")); |
Expect.equals(1234567.89e2, double.parse(" 1234567.89e2 ")); |
Expect.equals(1234567.89e2, double.parse(" +1234567.89e2 ")); |
Expect.equals(-1234567.89e2, double.parse(" -1234567.89e2 ")); |
+ Expect.equals(1234567.89e2, double.parse("\xA0 1234567.89e2 \xA0")); |
+ Expect.equals(1234567.89e2, double.parse("\xA0 +1234567.89e2\xA0 ")); |
+ Expect.equals(-1234567.89e2, double.parse("\xA0 -1234567.89e2 \xA0")); |
Expect.equals(1234567.89e2, double.parse("1234567.89E2")); |
Expect.equals(1234567.89e2, double.parse(" 1234567.89E2 ")); |
Expect.equals(1234567.89e2, double.parse(" +1234567.89E2 ")); |
Expect.equals(-1234567.89e2, double.parse(" -1234567.89E2 ")); |
+ Expect.equals(1234567.89e2, double.parse(" \xA0 1234567.89E2 \xA0")); |
+ Expect.equals(1234567.89e2, double.parse("\xA0 +1234567.89E2\xA0 ")); |
+ Expect.equals(-1234567.89e2, double.parse("\xA0 -1234567.89E2\xA0 ")); |
Expect.equals(1234567.89e-2, double.parse("1234567.89e-2")); |
Expect.equals(1234567.89e-2, double.parse(" 1234567.89e-2 ")); |
Expect.equals(1234567.89e-2, double.parse(" +1234567.89e-2 ")); |
Expect.equals(-1234567.89e-2, double.parse(" -1234567.89e-2 ")); |
- // TODO(floitsch): add tests for NaN and Infinity. |
+ Expect.equals(1234567.89e-2, double.parse(" \xA0 1234567.89e-2 \xA0")); |
+ Expect.equals(1234567.89e-2, double.parse("\xA0 +1234567.89e-2 \xA0")); |
+ Expect.equals(-1234567.89e-2, double.parse("\xA0 -1234567.89e-2 \xA0")); |
+ Expect.equals(5, double.parse("5.")); |
+ Expect.equals(-5, double.parse("-5.")); |
+ Expect.equals(5, double.parse(" 5.")); |
+ Expect.equals(-5, double.parse(" -5.")); |
+ Expect.equals(5, double.parse(" 5. ")); |
+ Expect.equals(-5, double.parse(" -5. ")); |
+ Expect.equals(5, double.parse("5. ")); |
+ Expect.equals(-5, double.parse("-5. ")); |
+ Expect.equals(-5, double.parse("-5.")); |
+ Expect.equals(5, double.parse("\xA0 5.")); |
+ Expect.equals(-5, double.parse("\xA0-5.")); |
+ Expect.equals(5, double.parse("\xA05.\xA0")); |
+ Expect.equals(-5, double.parse("\xA0-5.\xA0")); |
+ Expect.equals(5, double.parse("5.\xA0")); |
+ Expect.equals(-5, double.parse("-5.\xA0")); |
+ Expect.equals(double.INFINITY, double.parse("Infinity")); |
+ Expect.equals(double.INFINITY, double.parse("+Infinity")); |
+ Expect.equals(double.NEGATIVE_INFINITY, double.parse("-Infinity")); |
+ Expect.isTrue(double.parse("NaN").isNaN); |
+ Expect.isTrue(double.parse("-NaN").isNaN); |
+ Expect.isTrue(double.parse("+NaN").isNaN); |
+ Expect.equals(double.INFINITY, double.parse("Infinity ")); |
+ Expect.equals(double.INFINITY, double.parse("+Infinity ")); |
+ Expect.equals(double.NEGATIVE_INFINITY, double.parse("-Infinity ")); |
+ Expect.isTrue(double.parse("NaN ").isNaN); |
+ Expect.isTrue(double.parse("-NaN ").isNaN); |
+ Expect.isTrue(double.parse("+NaN ").isNaN); |
+ Expect.equals(double.INFINITY, double.parse(" Infinity ")); |
+ Expect.equals(double.INFINITY, double.parse(" +Infinity ")); |
+ Expect.equals(double.NEGATIVE_INFINITY, double.parse(" -Infinity ")); |
+ Expect.isTrue(double.parse(" NaN ").isNaN); |
+ Expect.isTrue(double.parse(" -NaN ").isNaN); |
+ Expect.isTrue(double.parse(" +NaN ").isNaN); |
+ Expect.equals(double.INFINITY, double.parse(" Infinity")); |
+ Expect.equals(double.INFINITY, double.parse(" +Infinity")); |
Lasse Reichstein Nielsen
2013/05/22 08:47:26
Make a parameterized test that takes a string and
floitsch
2013/05/23 02:30:03
Done.
|
+ Expect.equals(double.NEGATIVE_INFINITY, double.parse(" -Infinity")); |
+ Expect.isTrue(double.parse(" NaN").isNaN); |
+ Expect.isTrue(double.parse(" -NaN").isNaN); |
+ Expect.isTrue(double.parse(" +NaN").isNaN); |
+ Expect.equals(double.INFINITY, double.parse("Infinity\xA0")); |
+ Expect.equals(double.INFINITY, double.parse("+Infinity\xA0")); |
+ Expect.equals(double.NEGATIVE_INFINITY, double.parse("-Infinity\xA0")); |
+ Expect.isTrue(double.parse("NaN\xA0").isNaN); |
+ Expect.isTrue(double.parse("-NaN\xA0").isNaN); |
+ Expect.isTrue(double.parse("+NaN\xA0").isNaN); |
+ Expect.equals(double.INFINITY, double.parse(" \xA0Infinity\xA0")); |
+ Expect.equals(double.INFINITY, double.parse(" \xA0+Infinity\xA0")); |
+ Expect.equals(double.NEGATIVE_INFINITY, double.parse(" \xA0-Infinity\xA0")); |
+ Expect.isTrue(double.parse(" \xA0NaN\xA0").isNaN); |
+ Expect.isTrue(double.parse(" \xA0-NaN\xA0").isNaN); |
+ Expect.isTrue(double.parse(" \xA0+NaN\xA0").isNaN); |
+ Expect.equals(double.INFINITY, double.parse(" \xA0Infinity")); |
+ Expect.equals(double.INFINITY, double.parse(" \xA0+Infinity")); |
+ Expect.equals(double.NEGATIVE_INFINITY, double.parse(" \xA0-Infinity")); |
+ Expect.isTrue(double.parse(" \xA0NaN").isNaN); |
+ Expect.isTrue(double.parse(" \xA0-NaN").isNaN); |
+ Expect.isTrue(double.parse(" \xA0+NaN").isNaN); |
+ Expect.equals(123456700.0, double.parse("1234567.e2")); |
+ Expect.equals(123456700.0, double.parse(" 1234567.e2 ")); |
+ Expect.equals(123456700.0, double.parse(" +1234567.e2 ")); |
+ Expect.equals(-123456700.0, double.parse(" -1234567.e2 ")); |
+ Expect.equals(123456700.0, double.parse("\xA0 1234567.e2\xA0")); |
+ Expect.equals(123456700.0, double.parse("\xA0 +1234567.e2 \xA0")); |
+ Expect.equals(-123456700.0, double.parse(" \xA0-1234567.e2 \xA0 ")); |
+ |
Lasse Reichstein Nielsen
2013/05/22 08:47:26
More edge case tests (positive and negative):
5e-3
floitsch
2013/05/23 02:30:03
Done.
|
parseDoubleThrowsFormatException("1b"); |
parseDoubleThrowsFormatException(" 1b "); |
parseDoubleThrowsFormatException(" 1 b "); |
@@ -106,16 +178,37 @@ void main() { |
parseDoubleThrowsFormatException("- 1.5"); |
parseDoubleThrowsFormatException(""); |
parseDoubleThrowsFormatException(" "); |
- parseDoubleThrowsFormatException("5."); |
- parseDoubleThrowsFormatException(" 5. "); |
- parseDoubleThrowsFormatException(" +5. "); |
- parseDoubleThrowsFormatException(" -5. "); |
- parseDoubleThrowsFormatException("1234567.e2"); |
- parseDoubleThrowsFormatException(" 1234567.e2 "); |
- parseDoubleThrowsFormatException(" +1234567.e2 "); |
- parseDoubleThrowsFormatException(" -1234567.e2 "); |
parseDoubleThrowsFormatException("+0x1234567890"); |
parseDoubleThrowsFormatException(" +0x1234567890 "); |
parseDoubleThrowsFormatException(" +0x100 "); |
parseDoubleThrowsFormatException("+0x100"); |
+ parseDoubleThrowsFormatException("0x1234567890"); |
+ parseDoubleThrowsFormatException("-0x1234567890"); |
+ parseDoubleThrowsFormatException(" 0x1234567890 "); |
+ parseDoubleThrowsFormatException(" -0x1234567890 "); |
+ parseDoubleThrowsFormatException("0x100"); |
+ parseDoubleThrowsFormatException("-0x100"); |
+ parseDoubleThrowsFormatException(" 0x100 "); |
+ parseDoubleThrowsFormatException(" -0x100 "); |
+ parseDoubleThrowsFormatException("0xabcdef"); |
+ parseDoubleThrowsFormatException("0xABCDEF"); |
+ parseDoubleThrowsFormatException("0xabCDEf"); |
+ parseDoubleThrowsFormatException("-0xabcdef"); |
+ parseDoubleThrowsFormatException("-0xABCDEF"); |
+ parseDoubleThrowsFormatException(" 0xabcdef "); |
+ parseDoubleThrowsFormatException(" 0xABCDEF "); |
+ parseDoubleThrowsFormatException(" -0xabcdef "); |
+ parseDoubleThrowsFormatException(" -0xABCDEF "); |
+ parseDoubleThrowsFormatException("0x00000abcdef"); |
+ parseDoubleThrowsFormatException("0x00000ABCDEF"); |
+ parseDoubleThrowsFormatException("-0x00000abcdef"); |
+ parseDoubleThrowsFormatException("-0x00000ABCDEF"); |
+ parseDoubleThrowsFormatException(" 0x00000abcdef "); |
+ parseDoubleThrowsFormatException(" 0x00000ABCDEF "); |
+ parseDoubleThrowsFormatException(" -0x00000abcdef "); |
+ parseDoubleThrowsFormatException(" -0x00000ABCDEF "); |
+ parseDoubleThrowsFormatException(" -INFINITY "); |
+ parseDoubleThrowsFormatException(" NAN "); |
+ parseDoubleThrowsFormatException(" inf "); |
+ parseDoubleThrowsFormatException(" nan "); |
} |