| // 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. |
| // Dart test program for testing increment operator. |
| |
| import "package:expect/expect.dart"; |
| |
| class A { |
| static var yy; |
| static set y(v) { |
| yy = v; |
| } |
| |
| static get y { |
| return yy; |
| } |
| } |
| |
| class IncrOpTest { |
| var x; |
| static var y; |
| |
| IncrOpTest() {} |
| |
| static testMain() { |
| var a = 3; |
| var c = a++ + 1; |
| Expect.equals(4, c); |
| Expect.equals(4, a); |
| c = a-- + 1; |
| Expect.equals(5, c); |
| Expect.equals(3, a); |
| |
| c = --a + 1; |
| Expect.equals(3, c); |
| Expect.equals(2, a); |
| |
| c = 2 + ++a; |
| Expect.equals(5, c); |
| Expect.equals(3, a); |
| |
| var obj = new IncrOpTest(); |
| obj.x = 100; |
| Expect.equals(100, obj.x); |
| obj.x++; |
| Expect.equals(101, obj.x); |
| Expect.equals(102, ++obj.x); |
| Expect.equals(102, obj.x++); |
| Expect.equals(103, obj.x); |
| |
| A.y = 55; |
| Expect.equals(55, A.y++); |
| Expect.equals(56, A.y); |
| Expect.equals(57, ++A.y); |
| Expect.equals(57, A.y); |
| Expect.equals(56, --A.y); |
| |
| IncrOpTest.y = 55; |
| Expect.equals(55, IncrOpTest.y++); |
| Expect.equals(56, IncrOpTest.y); |
| Expect.equals(57, ++IncrOpTest.y); |
| Expect.equals(57, IncrOpTest.y); |
| Expect.equals(56, --IncrOpTest.y); |
| |
| var list = [0, 1, 2, 3]; |
| for (int i = 0; i < list.length; i++) { |
| list[i]++; |
| } |
| for (int i = 0; i < list.length; i++) { |
| Expect.equals(i + 1, list[i]); |
| ++list[i]; |
| } |
| Expect.equals(1 + 2, list[1]); |
| Expect.equals(1 + 2, list[1]--); |
| Expect.equals(1 + 1, list[1]); |
| Expect.equals(1 + 0, --list[1]); |
| } |
| } |
| |
| main() { |
| IncrOpTest.testMain(); |
| } |