blob: f1c37288dce5b602d657af720116675d9eb48bef [file] [log] [blame]
// 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);
}