OLD | NEW |
---|---|
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 // Dart test for testing bitwise operations. | 4 // Dart test for testing bitwise operations. |
5 // VMOptions=--optimization-counter-threshold=10 --no-use-osr | 5 // VMOptions=--optimization-counter-threshold=10 --no-use-osr |
6 | 6 |
7 import "package:expect/expect.dart"; | 7 import "package:expect/expect.dart"; |
8 | 8 |
9 void main() { | 9 void main() { |
10 for (int i = 0; i < 4; i++) { | 10 for (int i = 0; i < 4; i++) { |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
174 Expect.equals(true, shiftLeft(1, shift) > shiftLeft(1, shift - 1)); | 174 Expect.equals(true, shiftLeft(1, shift) > shiftLeft(1, shift - 1)); |
175 } | 175 } |
176 } | 176 } |
177 | 177 |
178 int shiftLeft(int a, int b) { return a << b; } | 178 int shiftLeft(int a, int b) { return a << b; } |
179 int shiftRight(int a, int b) { return a >> b; } | 179 int shiftRight(int a, int b) { return a >> b; } |
180 | 180 |
181 void testPrecedence(int a, int b, int c, int d) { | 181 void testPrecedence(int a, int b, int c, int d) { |
182 // & binds stronger than ^, which binds stronger than |. | 182 // & binds stronger than ^, which binds stronger than |. |
183 int result = a & b ^ c | d & b ^ c; | 183 int result = a & b ^ c | d & b ^ c; |
184 Expect.equals(((a & b) ^ c) | ((d & b) ^ c), result); // &^| | 184 Expect.equals(((a & b) ^ c) | ((d & b) ^ c), result); // &^| |
185 Expect.notEquals((a & (b ^ c)) | (d & (b ^ c)), result); // ^&| | 185 Expect.notEquals((a & (b ^ c)) | (d & (b ^ c)), result); // ^&| |
sra1
2017/03/21 03:28:14
fix
| |
186 Expect.notEquals((a & b) ^ (c | (d & b)) ^ c, result); // &|^ | 186 Expect.notEquals((a & b) ^ (c | (d & b)) ^ c, result); // &|^ |
187 Expect.notEquals((a & b) ^ ((c | d) & b) ^ c, result); // |&^ | 187 Expect.notEquals((a & b) ^ ((c | d) & b) ^ c, result); // |&^ |
188 Expect.notEquals(a & (b ^ (c | d)) & (b ^ c), result); // |^& | 188 Expect.notEquals(a & (b ^ (c | d)) & (b ^ c), result); // |^& |
189 Expect.notEquals(a & ((b ^ c) | d) & (b ^ c), result); // ^|& | 189 Expect.notEquals(a & ((b ^ c) | d) & (b ^ c), result); // ^|& |
190 // Binds stronger than relational operators. | 190 // Binds stronger than relational operators. |
191 Expect.equals((a & b) < (c & d), a & b < c & d); | 191 Expect.equals((a & b) < (c & d), a & b < c & d); |
192 // Binds weaker than shift operators. | 192 // Binds weaker than shift operators. |
193 Expect.equals((a & (b << c)) ^ d, a & b << c ^ d); | 193 Expect.equals((a & (b << c)) ^ d, a & b << c ^ d); |
194 Expect.notEquals((a & b) << (c ^ d), a & b << c ^ d); | 194 Expect.notEquals((a & b) << (c ^ d), a & b << c ^ d); |
195 } | 195 } |
OLD | NEW |