| // 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. |
| |
| /// @assertion int operator >>(int shiftAmount) |
| /// This operator implements bit-wise right-shift operation. |
| /// @description Checks that this operator returns correct value for non-negative |
| /// and not exceedingly large arguments. |
| /// @author vasya |
| |
| import "../../../Utils/expect.dart"; |
| |
| main() { |
| Expect.equals(0, 0 >> 3); |
| Expect.equals(100, 100 >> 0); |
| Expect.equals(0, 1 >> 1); |
| |
| Expect.equals(4, 9 >> 1); |
| Expect.equals(2, 9 >> 2); |
| Expect.equals(1, 9 >> 3); |
| |
| Expect.equals(5, 21 >> 2); |
| Expect.equals(2, 21 >> 3); |
| Expect.equals(1, 21 >> 4); |
| |
| Expect.equals(1024, 1024 >> 0); |
| Expect.equals(512, 1024 >> 1); |
| Expect.equals(256, 1024 >> 2); |
| Expect.equals(128, 1024 >> 3); |
| Expect.equals(64, 1024 >> 4); |
| Expect.equals(32, 1024 >> 5); |
| Expect.equals(16, 1024 >> 6); |
| Expect.equals(8, 1024 >> 7); |
| Expect.equals(4, 1024 >> 8); |
| Expect.equals(2, 1024 >> 9); |
| Expect.equals(1, 1024 >> 10); |
| Expect.equals(0, 1024 >> 11); |
| Expect.equals(0, 1024 >> 12); |
| |
| if (!isJS) { |
| Expect.equals(-2, -4 >> 1); |
| |
| Expect.equals(-1024, -1024 >> 0); |
| Expect.equals(-512, -1024 >> 1); |
| Expect.equals(-256, -1024 >> 2); |
| Expect.equals(-128, -1024 >> 3); |
| Expect.equals(-64, -1024 >> 4); |
| Expect.equals(-32, -1024 >> 5); |
| Expect.equals(-16, -1024 >> 6); |
| Expect.equals(-8, -1024 >> 7); |
| Expect.equals(-4, -1024 >> 8); |
| Expect.equals(-2, -1024 >> 9); |
| Expect.equals(-1, -1024 >> 10); |
| Expect.equals(-1, -1024 >> 11); |
| Expect.equals(-1, -1024 >> 12); |
| |
| Expect.equals(0, 100 >> 500); |
| } |
| } |