| Index: tests/language_strong/arithmetic_test.dart
|
| diff --git a/tests/language_strong/arithmetic_test.dart b/tests/language_strong/arithmetic_test.dart
|
| index b660960efbfbe91c0c775c6eb48d2f6693f988fc..a4f5e060962607fc665e34d89236349da882bff6 100644
|
| --- a/tests/language_strong/arithmetic_test.dart
|
| +++ b/tests/language_strong/arithmetic_test.dart
|
| @@ -5,11 +5,11 @@
|
| // VMOptions=--optimization-counter-threshold=10 --no-use-osr
|
|
|
| library arithmetic_test;
|
| +
|
| import "package:expect/expect.dart";
|
| import 'dart:math';
|
|
|
| class ArithmeticTest {
|
| -
|
| static bool exceptionCaughtParseInt(String s) {
|
| try {
|
| int.parse(s);
|
| @@ -113,17 +113,39 @@ class ArithmeticTest {
|
| Expect.equals(big, big.truncate());
|
|
|
| // Test if double is contagious. The assignment will check the type.
|
| - { double d = 1 + 1.0; }
|
| - { double d = 1.0 + 1; }
|
| - { double d = 1 * 1.0; }
|
| - { double d = 0 * 1.0; }
|
| - { double d = 1.0 * 0; }
|
| - { double d = 1 / 1.0; }
|
| - { double d = 1.0 / 0; }
|
| - { double d = 1 - 1.0; }
|
| - { double d = 1.0 - 1; }
|
| - { double d = big * 1.0; }
|
| - { double d = 1.0 * big; }
|
| + {
|
| + double d = 1 + 1.0;
|
| + }
|
| + {
|
| + double d = 1.0 + 1;
|
| + }
|
| + {
|
| + double d = 1 * 1.0;
|
| + }
|
| + {
|
| + double d = 0 * 1.0;
|
| + }
|
| + {
|
| + double d = 1.0 * 0;
|
| + }
|
| + {
|
| + double d = 1 / 1.0;
|
| + }
|
| + {
|
| + double d = 1.0 / 0;
|
| + }
|
| + {
|
| + double d = 1 - 1.0;
|
| + }
|
| + {
|
| + double d = 1.0 - 1;
|
| + }
|
| + {
|
| + double d = big * 1.0;
|
| + }
|
| + {
|
| + double d = 1.0 * big;
|
| + }
|
|
|
| // Reset big to positive value.
|
| big = 123456789012345;
|
| @@ -151,10 +173,9 @@ class ArithmeticTest {
|
| Expect.isTrue(negateDouble(3.5e3).isNegative);
|
| Expect.isFalse(negateDouble(-3.5e3).isNegative);
|
|
|
| -
|
| // Constants.
|
| - final nan = 0.0/0.0;
|
| - final infinity = 1.0/0.0;
|
| + final nan = 0.0 / 0.0;
|
| + final infinity = 1.0 / 0.0;
|
|
|
| // -- isInfinite --.
|
| // Smi.
|
| @@ -244,7 +265,6 @@ class ArithmeticTest {
|
| Expect.equals(-1.0, (-0.49999999999999994).floor());
|
| Expect.equals(-3.0, (-2.1).floor());
|
|
|
| -
|
| // -- truncate --.
|
| // Smi.
|
| Expect.equals(0, (0).truncate());
|
| @@ -305,29 +325,51 @@ class ArithmeticTest {
|
| Expect.equals(1, (1).toInt());
|
| Expect.equals(-1, (-1).toInt());
|
| // Type checks.
|
| - { int i = (0).toInt(); }
|
| - { int i = (1).toInt(); }
|
| - { int i = (-1).toInt(); }
|
| + {
|
| + int i = (0).toInt();
|
| + }
|
| + {
|
| + int i = (1).toInt();
|
| + }
|
| + {
|
| + int i = (-1).toInt();
|
| + }
|
| // Big.
|
| Expect.equals(big, big.toInt());
|
| Expect.equals(-big, (-big).toInt());
|
| - { int i = big.toInt(); }
|
| - { int i = (-big).toInt(); }
|
| + {
|
| + int i = big.toInt();
|
| + }
|
| + {
|
| + int i = (-big).toInt();
|
| + }
|
| // Double.
|
| Expect.equals(1234567890123, (1234567890123.0).toInt());
|
| Expect.equals(-1234567890123, (-1234567890123.0).toInt());
|
| - { int i = (1234567890123.0).toInt(); }
|
| - { int i = (-1234567890123.0).toInt(); }
|
| + {
|
| + int i = (1234567890123.0).toInt();
|
| + }
|
| + {
|
| + int i = (-1234567890123.0).toInt();
|
| + }
|
| // 32bit Smi border cases.
|
| Expect.equals(-1073741824, (-1073741824.0).toInt());
|
| Expect.equals(-1073741825, (-1073741825.0).toInt());
|
| Expect.equals(1073741823, (1073741823.0).toInt());
|
| Expect.equals(1073741824, (1073741824.0).toInt());
|
|
|
| - { int i = (-1073741824.0).toInt(); }
|
| - { int i = (-1073741825.0).toInt(); }
|
| - { int i = (1073741823.0).toInt(); }
|
| - { int i = (1073741824.0).toInt(); }
|
| + {
|
| + int i = (-1073741824.0).toInt();
|
| + }
|
| + {
|
| + int i = (-1073741825.0).toInt();
|
| + }
|
| + {
|
| + int i = (1073741823.0).toInt();
|
| + }
|
| + {
|
| + int i = (1073741824.0).toInt();
|
| + }
|
|
|
| // -- toDouble --.
|
| // Smi.
|
| @@ -335,14 +377,24 @@ class ArithmeticTest {
|
| Expect.equals(1.0, (1).toDouble());
|
| Expect.equals(-1.0, (-1).toDouble());
|
| // Type checks.
|
| - { double d = (0).toDouble(); }
|
| - { double d = (1).toDouble(); }
|
| - { double d = (-1).toDouble(); }
|
| + {
|
| + double d = (0).toDouble();
|
| + }
|
| + {
|
| + double d = (1).toDouble();
|
| + }
|
| + {
|
| + double d = (-1).toDouble();
|
| + }
|
| // Big.
|
| Expect.equals(big, big.toInt());
|
| Expect.equals(-big, (-big).toInt());
|
| - { int i = big.toInt(); }
|
| - { int i = (-big).toInt(); }
|
| + {
|
| + int i = big.toInt();
|
| + }
|
| + {
|
| + int i = (-big).toInt();
|
| + }
|
|
|
| // Math functions.
|
| Expect.equals(2.0, sqrt(4.0));
|
| @@ -351,22 +403,34 @@ class ArithmeticTest {
|
|
|
| Expect.equals(12, int.parse("12"));
|
| Expect.equals(-12, int.parse("-12"));
|
| - Expect.equals(12345678901234567890,
|
| - int.parse("12345678901234567890"));
|
| - Expect.equals(-12345678901234567890,
|
| - int.parse("-12345678901234567890"));
|
| + Expect.equals(12345678901234567890, int.parse("12345678901234567890"));
|
| + Expect.equals(-12345678901234567890, int.parse("-12345678901234567890"));
|
| // Type checks.
|
| - { int i = int.parse("12"); }
|
| - { int i = int.parse("-12"); }
|
| - { int i = int.parse("12345678901234567890"); }
|
| - { int i = int.parse("-12345678901234567890"); }
|
| + {
|
| + int i = int.parse("12");
|
| + }
|
| + {
|
| + int i = int.parse("-12");
|
| + }
|
| + {
|
| + int i = int.parse("12345678901234567890");
|
| + }
|
| + {
|
| + int i = int.parse("-12345678901234567890");
|
| + }
|
|
|
| Expect.equals(1.2, double.parse("1.2"));
|
| Expect.equals(-1.2, double.parse("-1.2"));
|
| // Type checks.
|
| - { double d = double.parse("1.2"); }
|
| - { double d = double.parse("-1.2"); }
|
| - { double d = double.parse("0"); }
|
| + {
|
| + double d = double.parse("1.2");
|
| + }
|
| + {
|
| + double d = double.parse("-1.2");
|
| + }
|
| + {
|
| + double d = double.parse("0");
|
| + }
|
|
|
| // Random
|
| {
|
| @@ -423,24 +487,23 @@ class ArithmeticTest {
|
| var b = -1;
|
| for (var i = 0; i < 10; i++) Expect.equals(0x40000000, div(a, b));
|
| }
|
| -
|
| -
|
| +
|
| static int divMod(a, b) => a ~/ b + a % b;
|
| -
|
| +
|
| static void testSmiDivModDeopt() {
|
| var a = -0x40000000;
|
| var b = -1;
|
| for (var i = 0; i < 10; i++) Expect.equals(0x40000000, divMod(a, b));
|
| }
|
| -
|
| +
|
| static double sinCosSub(double a) => sin(a) - cos(a);
|
| -
|
| - static double sinCosAddCos(double a) => sin(a) * cos(a) + cos(a);
|
| +
|
| + static double sinCosAddCos(double a) => sin(a) * cos(a) + cos(a);
|
|
|
| static void testSinCos() {
|
| var e = sin(1.234) - cos(1.234);
|
| var f = sin(1.234) * cos(1.234) + cos(1.234);
|
| -
|
| +
|
| for (var i = 0; i < 20; i++) {
|
| Expect.approxEquals(e, sinCosSub(1.234));
|
| Expect.approxEquals(f, sinCosAddCos(1.234));
|
| @@ -456,7 +519,7 @@ class ArithmeticTest {
|
| cos(i);
|
| }
|
| }
|
| -
|
| +
|
| static mySqrt(var x) => sqrt(x);
|
|
|
| static testSqrtDeopt() {
|
|
|