// 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 assign operators. // VMOptions=--optimization-counter-threshold=10 --no-background-compilation import "package:expect/expect.dart"; class AssignOpTest { AssignOpTest() {} static testMain() { var b = 0; b += 1; Expect.equals(1, b); b *= 5; Expect.equals(5, b); b -= 1; Expect.equals(4, b); b ~/= 2; Expect.equals(2, b); f = 0; f += 1; Expect.equals(1, f); f *= 5; Expect.equals(5, f); f -= 1; Expect.equals(4, f); f ~/= 2; Expect.equals(2, f); f /= 4; Expect.equals(.5, f); AssignOpTest.f = 0; AssignOpTest.f += 1; Expect.equals(1, AssignOpTest.f); AssignOpTest.f *= 5; Expect.equals(5, AssignOpTest.f); AssignOpTest.f -= 1; Expect.equals(4, AssignOpTest.f); AssignOpTest.f ~/= 2; Expect.equals(2, AssignOpTest.f); AssignOpTest.f /= 4; Expect.equals(.5, f); var o = new AssignOpTest(); o.instf = 0; o.instf += 1; Expect.equals(1, o.instf); o.instf *= 5; Expect.equals(5, o.instf); o.instf -= 1; Expect.equals(4, o.instf); o.instf ~/= 2; Expect.equals(2, o.instf); o.instf /= 4; Expect.equals(.5, o.instf); var x = 0xFF; x >>= 3; Expect.equals(0x1F, x); x <<= 3; Expect.equals(0xF8, x); x |= 0xF00; Expect.equals(0xFF8, x); x &= 0xF0; Expect.equals(0xF0, x); x ^= 0x11; Expect.equals(0xE1, x); var y = 100; y += 1 << 3; Expect.equals(108, y); y *= 2 + 1; Expect.equals(324, y); y -= 3 - 2; Expect.equals(323, y); y += 3 * 4; Expect.equals(335, y); var a = [1, 2, 3]; var ix = 0; a[ix] |= 12; Expect.equals(13, a[ix]); } static var f; var instf; } main() { for (int i = 0; i < 20; i++) { AssignOpTest.testMain(); } }