OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 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 | 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 import "dart:math" show pow; | 6 import "dart:math" show pow; |
7 | 7 |
8 void main() { | 8 void main() { |
9 bool checkedMode = false; | 9 bool checkedMode = false; |
10 assert(checkedMode = true); | 10 assert(checkedMode = true); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 Expect.equals(1, int.parse("+1", radix: 2)); | 87 Expect.equals(1, int.parse("+1", radix: 2)); |
88 | 88 |
89 void testFails(String source, int radix) { | 89 void testFails(String source, int radix) { |
90 Expect.throws(() { throw int.parse(source, radix: radix, | 90 Expect.throws(() { throw int.parse(source, radix: radix, |
91 onError: (s) { throw "FAIL"; }); }, | 91 onError: (s) { throw "FAIL"; }); }, |
92 (e) => e == "FAIL", | 92 (e) => e == "FAIL", |
93 "$source/$radix"); | 93 "$source/$radix"); |
94 Expect.equals(-999, int.parse(source, radix: radix, onError: (s) => -999)); | 94 Expect.equals(-999, int.parse(source, radix: radix, onError: (s) => -999)); |
95 } | 95 } |
96 for (int i = 2; i < 36; i++) { | 96 for (int i = 2; i < 36; i++) { |
97 testFails(i.toRadixString(36), i); | 97 testFails(i.toRadixString(36).toLowerCase(), i); |
| 98 testFails(i.toRadixString(36).toUpperCase(), i); |
98 } | 99 } |
99 testFails("", 2); | 100 testFails("", 2); |
100 testFails("+ 1", 2); // No space between sign and digits. | 101 testFails("+ 1", 2); // No space between sign and digits. |
101 testFails("- 1", 2); // No space between sign and digits. | 102 testFails("- 1", 2); // No space between sign and digits. |
102 testFails("0x", null); | 103 testFails("0x", null); |
103 for (int i = 2; i <= 33; i++) { | 104 for (int i = 2; i <= 33; i++) { |
104 // No 0x specially allowed. | 105 // No 0x specially allowed. |
105 // At radix 34 and above, "x" is a valid digit. | 106 // At radix 34 and above, "x" is a valid digit. |
106 testFails("0x10", i); | 107 testFails("0x10", i); |
107 } | 108 } |
(...skipping 25 matching lines...) Expand all Loading... |
133 testBadArguments("0", 0); | 134 testBadArguments("0", 0); |
134 testBadArguments("0", 1); | 135 testBadArguments("0", 1); |
135 testBadArguments("0", 37); | 136 testBadArguments("0", 37); |
136 | 137 |
137 // If handleError isn't an unary function, and it's called, it also throws | 138 // If handleError isn't an unary function, and it's called, it also throws |
138 // (either TypeError in checked mode, or some failure in unchecked mode). | 139 // (either TypeError in checked mode, or some failure in unchecked mode). |
139 Expect.throws(() => int.parse("9", radix: 8, onError: "not a function")); | 140 Expect.throws(() => int.parse("9", radix: 8, onError: "not a function")); |
140 Expect.throws(() => int.parse("9", radix: 8, onError: () => 42)); | 141 Expect.throws(() => int.parse("9", radix: 8, onError: () => 42)); |
141 Expect.throws(() => int.parse("9", radix: 8, onError: (v1, v2) => 42)); | 142 Expect.throws(() => int.parse("9", radix: 8, onError: (v1, v2) => 42)); |
142 } | 143 } |
OLD | NEW |