blob: 8284a3edec2424330942bf81af858a3edcd95445 [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.
// Dart test program for testing increment operator.
// @dart = 2.9
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 = new List(4);
for (int i = 0; i < list.length; i++) {
list[i] = i;
}
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();
}