| Index: test/codegen/corelib/expression_test.dart
|
| diff --git a/test/codegen/corelib/expression_test.dart b/test/codegen/corelib/expression_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8a9ced68da25ef4ff85c3602a90faa8a192dd4d9
|
| --- /dev/null
|
| +++ b/test/codegen/corelib/expression_test.dart
|
| @@ -0,0 +1,118 @@
|
| +// 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.
|
| +
|
| +import "package:expect/expect.dart";
|
| +
|
| +// Tests basic expressions. Does not attempt to validate the details of arithmetic, coercion, and
|
| +// so forth.
|
| +class ExpressionTest {
|
| +
|
| + ExpressionTest() {}
|
| +
|
| + int foo;
|
| +
|
| + static testMain() {
|
| + var test = new ExpressionTest();
|
| + test.testBinary();
|
| + test.testUnary();
|
| + test.testShifts();
|
| + test.testBitwise();
|
| + test.testIncrement();
|
| + test.testMangling();
|
| + }
|
| +
|
| + testBinary() {
|
| + int x = 4, y = 2;
|
| + Expect.equals(6, x + y);
|
| + Expect.equals(2, x - y);
|
| + Expect.equals(8, x * y);
|
| + Expect.equals(2, x / y);
|
| + Expect.equals(0, x % y);
|
| + }
|
| +
|
| + testUnary() {
|
| + int x = 4, y = 2, z = -5;
|
| + bool t = true, f = false;
|
| + Expect.equals(-4, -x);
|
| + Expect.equals(4, ~z);
|
| + Expect.equals(f, !t);
|
| + }
|
| +
|
| + testShifts() {
|
| + int x = 4, y = 2;
|
| + Expect.equals(y, x >> 1);
|
| + Expect.equals(x, y << 1);
|
| + }
|
| +
|
| + testBitwise() {
|
| + int x = 4, y = 2;
|
| + Expect.equals(6, (x | y));
|
| + Expect.equals(0, (x & y));
|
| + Expect.equals(6, (x ^ y));
|
| + }
|
| +
|
| + operator [](int index) {
|
| + return foo;
|
| + }
|
| +
|
| + operator []=(int index, int value) {
|
| + foo = value;
|
| + }
|
| +
|
| + testIncrement() {
|
| + int x = 4, a = x++;
|
| + Expect.equals(4, a);
|
| + Expect.equals(5, x);
|
| + Expect.equals(6, ++x);
|
| + Expect.equals(6, x++);
|
| + Expect.equals(7, x);
|
| + Expect.equals(6, --x);
|
| + Expect.equals(6, x--);
|
| + Expect.equals(5, x);
|
| +
|
| + this.foo = 0;
|
| + Expect.equals(0, this.foo++);
|
| + Expect.equals(1, this.foo);
|
| + Expect.equals(2, ++this.foo);
|
| + Expect.equals(2, this.foo);
|
| + Expect.equals(2, this.foo--);
|
| + Expect.equals(1, this.foo);
|
| + Expect.equals(0, --this.foo);
|
| + Expect.equals(0, this.foo);
|
| +
|
| + Expect.equals(0, this[0]++);
|
| + Expect.equals(1, this[0]);
|
| + Expect.equals(2, ++this[0]);
|
| + Expect.equals(2, this[0]);
|
| + Expect.equals(2, this[0]--);
|
| + Expect.equals(1, this[0]);
|
| + Expect.equals(0, --this[0]);
|
| + Expect.equals(0, this[0]);
|
| +
|
| + int $0 = 42, $1 = 87, $2 = 117;
|
| + Expect.equals(42, $0++);
|
| + Expect.equals(43, $0);
|
| + Expect.equals(44, ++$0);
|
| + Expect.equals(88, $0 += $0);
|
| + Expect.equals(87, $1++);
|
| + Expect.equals(88, $1);
|
| + Expect.equals(89, ++$1);
|
| + Expect.equals(178, ($1 += $1));
|
| + Expect.equals(117, $2++);
|
| + Expect.equals(118, $2);
|
| + Expect.equals(119, ++$2);
|
| + }
|
| +
|
| + void testMangling() {
|
| + int $0 = 42, $1 = 87, $2 = 117;
|
| + this[0] = 0;
|
| + Expect.equals(42, (this[0] += $0));
|
| + Expect.equals(129, (this[0] += $1));
|
| + Expect.equals(246, (this[0] += $2));
|
| + }
|
| +}
|
| +
|
| +main() {
|
| + ExpressionTest.testMain();
|
| +}
|
|
|