Index: tests/standalone/src/MediumIntegerTest.dart |
diff --git a/tests/standalone/src/MediumIntegerTest.dart b/tests/standalone/src/MediumIntegerTest.dart |
deleted file mode 100644 |
index cc1f79da2191efbfa07647e7249340b448ae001c..0000000000000000000000000000000000000000 |
--- a/tests/standalone/src/MediumIntegerTest.dart |
+++ /dev/null |
@@ -1,165 +0,0 @@ |
-// 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. |
-// Testing Mints. Note that the tests may not work on 64-bit machines, |
-// as Smi's would be used to represent many of the numbers. |
- |
-#library("MediumIntegerTest.dart"); |
-#import("dart:coreimpl"); |
- |
-class MediumIntegerTest { |
- |
- static void checkSmi(int a) { |
- Expect.equals(true, (a is Smi)); |
- } |
- |
- static void checkMint(int a) { |
- Expect.equals(true, (a is Mint)); |
- } |
- |
- static void checkBigint(int a) { |
- Expect.equals(true, (a is Bigint)); |
- } |
- |
- static int getMint() { |
- return 1234567890123456789; |
- } |
- |
- static testSmiOverflow() { |
- int a = 1073741823; |
- int b = 1073741822; |
- checkSmi(a); |
- checkSmi(b); |
- checkMint(a + b); |
- Expect.equals(2147483645, a + b); |
- checkMint(a * b); |
- Expect.equals(1152921501385621506, a * b); |
- checkMint(-a - b); |
- Expect.equals(-2147483645, -a - b); |
- } |
- |
- static testMintAdd() { |
- // Mint and Smi. |
- var a = 1234567890123456789; |
- var b = 2; |
- checkMint(a); |
- checkSmi(b); |
- checkMint(a + b); |
- Expect.equals(1234567890123456791, a + b); |
- Expect.equals(1234567890123456791, b + a); |
- a = 9223372036854775807; |
- checkMint(a); |
- checkBigint(a + 1); |
- Expect.equals(9223372036854775808, a + 1); |
- |
- // Mint and Mint. |
- a = 100000000000000001; |
- checkMint(a); |
- Expect.equals(200000000000000002, a + a); |
- a = 9223372036854775800; |
- b = 1000000000000000000; |
- checkMint(a); |
- checkMint(b); |
- checkBigint(a + b); |
- Expect.equals(10223372036854775800, a + b); |
- |
- // Mint and Bigint. |
- a = 100000000000000001; |
- b = 10000000000000000001; |
- checkMint(a); |
- checkBigint(b); |
- Expect.equals(10100000000000000002, a + b); |
- |
- // Mint and double. |
- a = 100000000000.0; |
- b = 100000000000; |
- checkMint(b); |
- Expect.equals(200000000000.0, a + b); |
- Expect.equals(200000000000.0, b + a); |
- } |
- |
- static testMintSub() { |
- // Mint and Smi. |
- var a = 1234567890123456789; |
- var b = 2; |
- checkMint(a); |
- checkSmi(b); |
- checkMint(a - b); |
- Expect.equals(1234567890123456787, a - b); |
- a = -9223372036854775808; |
- checkMint(a); |
- checkBigint(a - 1); |
- Expect.equals(-9223372036854775809, a - 1); |
- |
- // Mint and Mint. |
- a = 1234567890123456789; |
- b = 1000000000000000000; |
- checkMint(a); |
- checkMint(b); |
- checkMint(a - b); |
- Expect.equals(234567890123456789, a - b); |
- a = -9223372036854775808; |
- b = 1000000000000000000; |
- checkMint(a); |
- checkMint(b); |
- checkBigint(a - b); |
- Expect.equals(-10223372036854775808, a - b); |
- } |
- |
- static testMintDiv() { |
- // Mint and Smi. |
- var a = 1234567890123456788; |
- var b = 2; |
- checkMint(a); |
- checkSmi(b); |
- Expect.equals(617283945061728394.0, a / b); |
- } |
- |
- static testMintMul() { |
- // Mint and Smi. |
- var a = 4611686018427387904; |
- var b = 10; |
- checkMint(a); |
- checkSmi(b); |
- checkBigint(a * b); |
- Expect.equals(46116860184273879040, a * b); |
- b = 1000000000000000000; |
- checkMint(a); |
- checkMint(b); |
- checkBigint(a * b); |
- Expect.equals(4611686018427387904000000000000000000, a * b); |
- } |
- |
- static testMintAnd(mint) { |
- // Issue 1845. |
- final int t = 0; |
- var res = mint & (t - 1); |
- Expect.equals(mint, res); |
- } |
- |
- // TODO(srdjan): Add more tests. |
- |
- static void testMain() { |
- checkMint(getMint()); |
- Expect.equals(1234567890123456789, getMint()); |
- testSmiOverflow(); |
- testMintAdd(); |
- testMintSub(); |
- testMintMul(); |
- testMintDiv(); |
- testMintAnd(-1925149952); |
- testMintAnd(1925149952); |
- var a = 100000000000; |
- var b = 100000000001; |
- checkMint(a); |
- checkMint(b); |
- Expect.equals(false, a.hashCode() == b.hashCode()); |
- Expect.equals(true, a.hashCode() == (b - 1).hashCode()); |
- } |
-} |
- |
-main() { |
- for (int i = 0; i < 1000; i++) { |
- MediumIntegerTest.testMain(); |
- } |
-} |