| OLD | NEW |
| 1 // Copyright (c) 2013 the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013 the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import "package:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
| 6 | 6 |
| 7 const whiteSpace = const [ | 7 const whiteSpace = const [ |
| 8 "", | 8 "", |
| 9 "\x09", | 9 "\x09", |
| 10 "\x0a", | 10 "\x0a", |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 "\u2009", | 27 "\u2009", |
| 28 "\u200a", | 28 "\u200a", |
| 29 "\u2028", | 29 "\u2028", |
| 30 "\u2029", | 30 "\u2029", |
| 31 "\u202f", | 31 "\u202f", |
| 32 "\u205f", | 32 "\u205f", |
| 33 "\u3000", | 33 "\u3000", |
| 34 "\uFEFF" | 34 "\uFEFF" |
| 35 ]; | 35 ]; |
| 36 | 36 |
| 37 void expectNumEquals(num expect, num actual, String message) { |
| 38 if (expect is double && expect.isNaN) { |
| 39 Expect.isTrue(actual is double && actual.isNaN, "isNaN: $message"); |
| 40 } else { |
| 41 Expect.identical(expect, actual, message); |
| 42 } |
| 43 } |
| 44 |
| 37 void testParse(String source, num result) { | 45 void testParse(String source, num result) { |
| 38 for (String ws1 in whiteSpace) { | 46 for (String ws1 in whiteSpace) { |
| 39 for (String ws2 in whiteSpace) { | 47 for (String ws2 in whiteSpace) { |
| 40 String padded = "$ws1$source$ws2"; | 48 String padded = "$ws1$source$ws2"; |
| 41 // Use Expect.identical because it also handles NaN and 0.0/-0.0. | 49 // Use Expect.identical because it also handles NaN and 0.0/-0.0. |
| 42 // Except on dart2js: http://dartbug.com/11551 | 50 // Except on dart2js: http://dartbug.com/11551 |
| 43 Expect.identical(result, num.parse(padded), "parse '$padded'"); | 51 expectNumEquals(result, num.parse(padded), "parse '$padded'"); |
| 44 padded = "$ws1$ws2$source"; | 52 padded = "$ws1$ws2$source"; |
| 45 Expect.identical(result, num.parse(padded), "parse '$padded'"); | 53 expectNumEquals(result, num.parse(padded), "parse '$padded'"); |
| 46 padded = "$source$ws1$ws2"; | 54 padded = "$source$ws1$ws2"; |
| 47 Expect.identical(result, num.parse(padded), "parse '$padded'"); | 55 expectNumEquals(result, num.parse(padded), "parse '$padded'"); |
| 48 } | 56 } |
| 49 } | 57 } |
| 50 } | 58 } |
| 51 | 59 |
| 52 void testInt(int value) { | 60 void testInt(int value) { |
| 53 testParse("$value", value); | 61 testParse("$value", value); |
| 54 testParse("+$value", value); | 62 testParse("+$value", value); |
| 55 testParse("-$value", -value); | 63 testParse("-$value", -value); |
| 56 var hex = "0x${value.toRadixString(16)}"; | 64 var hex = "0x${value.toRadixString(16)}"; |
| 57 var lchex = hex.toLowerCase(); | 65 var lchex = hex.toLowerCase(); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 testFail("-e-1"); | 194 testFail("-e-1"); |
| 187 // Incorrect ways to write NaN/Infinity. | 195 // Incorrect ways to write NaN/Infinity. |
| 188 testFail("infinity"); | 196 testFail("infinity"); |
| 189 testFail("INFINITY"); | 197 testFail("INFINITY"); |
| 190 testFail("inf"); | 198 testFail("inf"); |
| 191 testFail("nan"); | 199 testFail("nan"); |
| 192 testFail("NAN"); | 200 testFail("NAN"); |
| 193 testFail("qnan"); | 201 testFail("qnan"); |
| 194 testFail("snan"); | 202 testFail("snan"); |
| 195 } | 203 } |
| OLD | NEW |