| // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// @assertion A numeric literal is either a decimal or hexadecimal integer of |
| /// arbitrary size, or a decimal double. |
| /// |
| /// numericLiteral: |
| /// NUMBER| |
| /// HEX_NUMBER |
| ///; |
| /// NUMBER: |
| /// DIGIT+ ('.' DIGIT+)? EXPONENT? | |
| /// '.' DIGIT+ EXPONENT? |
| /// ; |
| /// EXPONENT: |
| /// ('e' | 'E') ('+' | '-')? DIGIT+ |
| /// ; |
| /// HEX NUMBER: |
| /// '0x' HEX DIGIT+ | |
| /// '0X' HEX DIGIT+ |
| /// ; |
| /// HEX DIGIT: |
| /// 'a'..'f' | |
| /// 'A'..'F' | |
| /// DIGIT |
| /// ; |
| /// @description Checks various large positive decimal and hexadecimal integer |
| /// numbers. This test must be skipped on JS configurations |
| /// @author iefremov |
| |
| import '../../../Utils/expect.dart'; |
| |
| main() { |
| Expect.equals(2147483647, 0x7FFFFFFF); |
| Expect.equals("2147483647", 2147483647.toString()); |
| Expect.equals("2147483647", 0x7FFFFFFF.toString()); |
| |
| Expect.equals(2147483648, 0x80000000); |
| Expect.equals("2147483648", 2147483648.toString()); |
| Expect.equals("2147483648", 0x80000000.toString()); |
| Expect.equals(2147483648, 1 << 31); |
| Expect.equals(4294967295, 0xFFFFFFFF); |
| |
| Expect.equals(9223372036854775807, 0x7FFFFFFFFFFFFFFF); |
| Expect.equals(-9223372036854775808, 0x8000000000000000); |
| Expect.equals(-9223372036854775808, 1 << 63); |
| |
| Expect.equals("9223372036854775807", 9223372036854775807.toString()); |
| Expect.equals("9223372036854775807", 0x7FFFFFFFFFFFFFFF.toString()); |
| |
| Expect.equals(-1, 0xFFFFFFFFFFFFFFFF); |
| Expect.equals(1152921504606846976, 0x1000000000000000); |
| Expect.equals(0, 1 << 64); |
| } |