Skip to content

Commit 2a09bd3

Browse files
author
sgrekhov
committed
#1024. Tests that plays with the integers not representable in JS moved to separate files. These files will be skipped on JS
1 parent 1abf208 commit 2a09bd3

File tree

5 files changed

+76
-18
lines changed

5 files changed

+76
-18
lines changed

Language/Expressions/Shift/integer_t01.dart

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,18 @@ main() {
1818
Expect.equals(16, i << 4);
1919
Expect.equals(32, i << 5);
2020
Expect.equals(64, i << 6);
21-
Expect.equals(-9223372036854775808, i << 63);
2221

2322
Expect.equals(0, i << 64);
2423
Expect.equals(0, i << 65);
2524
Expect.equals(0, i << 100);
2625

27-
int j = 0x7FFFFFFFFFFFFFFF;
28-
Expect.equals(-2, j << 1);
29-
Expect.equals(-4, j << 2);
30-
Expect.equals(-8, j << 3);
31-
Expect.equals(-16, j << 4);
32-
Expect.equals(-32, j << 5);
33-
Expect.equals(-64, j << 6);
26+
int j = 0x7FFFFFFFFFFFF000;
27+
Expect.equals(-8192, j << 1);
28+
Expect.equals(-16384, j << 2);
29+
Expect.equals(-32768, j << 3);
30+
Expect.equals(-65536, j << 4);
31+
Expect.equals(-131072, j << 5);
32+
Expect.equals(-262144, j << 6);
3433
Expect.equals(0, j << 64);
3534
Expect.equals(0, j << 65);
3635
Expect.equals(0, j << 100);

Language/Expressions/Shift/integer_t02.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ main() {
1717
Expect.equals(0, i >> 64);
1818
Expect.equals(0, i >> 100);
1919

20-
int j = 0x7FFFFFFFFFFFFFFF;
21-
Expect.equals(4611686018427387903, j >> 1);
22-
Expect.equals(2305843009213693951, j >> 2);
23-
Expect.equals(1152921504606846975, j >> 3);
20+
int j = 0x7FFFFFFFFFFFF000;
21+
Expect.equals(4611686018427385856, j >> 1);
22+
Expect.equals(2305843009213692928, j >> 2);
23+
Expect.equals(1152921504606846464, j >> 3);
2424
Expect.equals(3, j >> 61);
2525
Expect.equals(1, j >> 62);
2626
Expect.equals(0, j >> 63);

Language/Expressions/Shift/integer_t03.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,16 @@ main() {
1616
int i = 1;
1717
Expect.equals(0, i >>> 1);
1818
Expect.equals(0, i >>> 2);
19-
Expect.equals(1, i >>> 64);
19+
Expect.equals(0, i >>> 64);
2020
Expect.equals(0, i >>> 100);
2121

22-
int j = 0x7FFFFFFFFFFFFFFF;
23-
Expect.equals(0, j >>> 1);
24-
Expect.equals(0, j >>> 2);
25-
Expect.equals(0, j >>> 3);
22+
int j = 0x7FFFFFFFFFFFF000;
23+
Expect.equals(4611686018427385856, j >>> 1);
24+
Expect.equals(2305843009213692928, j >>> 2);
25+
Expect.equals(1152921504606846464, j >>> 3);
2626

2727
int k = 129;
28-
Expect.equals(4, k >>> 261);
28+
Expect.equals(0, k >>> 261);
2929

3030
int l = 1295555555;
3131
Expect.equals(l, l >>> 0);
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/*
2+
* Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
3+
* for details. All rights reserved. Use of this source code is governed by a
4+
* BSD-style license that can be found in the LICENSE file.
5+
*/
6+
/**
7+
* @assertion N/A
8+
* @description Checks that left shift works with big size integers as expected.
9+
* This test must be skipped on JavaScript
10+
11+
*/
12+
import '../../../Utils/expect.dart';
13+
14+
main() {
15+
int i = 1;
16+
Expect.equals(-9223372036854775808, i << 63);
17+
18+
int j = 0x7FFFFFFFFFFFFFFF;
19+
Expect.equals(-2, j << 1);
20+
Expect.equals(-4, j << 2);
21+
Expect.equals(-8, j << 3);
22+
Expect.equals(-16, j << 4);
23+
Expect.equals(-32, j << 5);
24+
Expect.equals(-64, j << 6);
25+
Expect.equals(0, j << 64);
26+
Expect.equals(0, j << 65);
27+
Expect.equals(0, j << 100);
28+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
3+
* for details. All rights reserved. Use of this source code is governed by a
4+
* BSD-style license that can be found in the LICENSE file.
5+
*/
6+
/**
7+
* @assertion N/A
8+
* @description Checks that right shift works with big size integers as expected
9+
* This test must be skipped on JavaScript
10+
11+
*/
12+
import '../../../Utils/expect.dart';
13+
14+
main() {
15+
int i = 1;
16+
Expect.equals(0, i >> 1);
17+
Expect.equals(0, i >> 2);
18+
Expect.equals(0, i >> 64);
19+
Expect.equals(0, i >> 100);
20+
21+
int j = 0x7FFFFFFFFFFFFFFF;
22+
Expect.equals(4611686018427387903, j >> 1);
23+
Expect.equals(2305843009213693951, j >> 2);
24+
Expect.equals(1152921504606846975, j >> 3);
25+
Expect.equals(3, j >> 61);
26+
Expect.equals(1, j >> 62);
27+
Expect.equals(0, j >> 63);
28+
Expect.equals(0, j >> 64);
29+
Expect.equals(0, j >> 65);
30+
Expect.equals(0, j >> 100);
31+
}

0 commit comments

Comments
 (0)