Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Side by Side Diff: tests/corelib_2/big_integer_arith_vm_test.dart

Issue 2978013002: Migrate test block 1 to Dart 2.0. (Closed)
Patch Set: rebase to repatched status/utilities Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests/corelib_2/apply5_test.dart ('k') | tests/corelib_2/big_integer_huge_mul_vm_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 4
5 // Testing Bigints with and without intrinsics. 5 // Testing Bigints with and without intrinsics.
6 // VMOptions= 6 // VMOptions=
7 // VMOptions=--no_intrinsify 7 // VMOptions=--no_intrinsify
8 // VMOptions=--optimization_counter_threshold=10 --no-background_compilation 8 // VMOptions=--optimization_counter_threshold=10 --no-background_compilation
9 9
10 library big_integer_test; 10 library big_integer_test;
(...skipping 16 matching lines...) Expand all
27 testBigintAdd() { 27 testBigintAdd() {
28 // Bigint and Smi. 28 // Bigint and Smi.
29 var a = 12345678901234567890; 29 var a = 12345678901234567890;
30 var b = 2; 30 var b = 2;
31 Expect.equals(12345678901234567892, a + b); 31 Expect.equals(12345678901234567892, a + b);
32 Expect.equals(12345678901234567892, b + a); 32 Expect.equals(12345678901234567892, b + a);
33 // Bigint and Bigint. 33 // Bigint and Bigint.
34 a = 10000000000000000001; 34 a = 10000000000000000001;
35 Expect.equals(20000000000000000002, a + a); 35 Expect.equals(20000000000000000002, a + a);
36 // Bigint and double. 36 // Bigint and double.
37 a = 100000000000000000000.0;
38 b = 200000000000000000000; 37 b = 200000000000000000000;
39 Expect.isTrue((a + b) is double); 38 var c = 100000000000000000000.0;
40 Expect.equals(300000000000000000000.0, a + b); 39 Expect.isTrue((c + b) is double);
41 Expect.isTrue((b + a) is double); 40 Expect.equals(300000000000000000000.0, b + c);
42 Expect.equals(300000000000000000000.0, b + a); 41 Expect.isTrue((b + c) is double);
42 Expect.equals(300000000000000000000.0, c + b);
43 } 43 }
44 44
45 testBigintSub() { 45 testBigintSub() {
46 // Bigint and Smi. 46 // Bigint and Smi.
47 var a = 12345678901234567890; 47 var a = 12345678901234567890;
48 var b = 2; 48 var b = 2;
49 Expect.equals(12345678901234567888, a - b); 49 Expect.equals(12345678901234567888, a - b);
50 Expect.equals(-12345678901234567888, b - a); 50 Expect.equals(-12345678901234567888, b - a);
51 // Bigint and Bigint. 51 // Bigint and Bigint.
52 a = 10000000000000000001; 52 a = 10000000000000000001;
53 Expect.equals(20000000000000000002, a + a); 53 Expect.equals(20000000000000000002, a + a);
54 // Bigint and double. 54 // Bigint and double.
55 a = 100000000000000000000.0;
56 b = 200000000000000000000; 55 b = 200000000000000000000;
57 Expect.isTrue((a + b) is double); 56 var c = 100000000000000000000.0;
58 Expect.equals(-100000000000000000000.0, a - b); 57 Expect.isTrue((c + b) is double);
59 Expect.isTrue((b + a) is double); 58 Expect.equals(-100000000000000000000.0, c - b);
60 Expect.equals(100000000000000000000.0, b - a); 59 Expect.isTrue((b + c) is double);
60 Expect.equals(100000000000000000000.0, b - c);
61 Expect.equals(-1, 0xF00000000 - 0xF00000001); 61 Expect.equals(-1, 0xF00000000 - 0xF00000001);
62 } 62 }
63 63
64 testBigintMul() { 64 testBigintMul() {
65 // Bigint and Smi. 65 // Bigint and Smi.
66 var a = 12345678901234567890; 66 var a = 12345678901234567890;
67 var b = 10; 67 var b = 10;
68 Expect.equals(123456789012345678900, a * b); 68 Expect.equals(123456789012345678900, a * b);
69 Expect.equals(123456789012345678900, b * a); 69 Expect.equals(123456789012345678900, b * a);
70 // Bigint and Bigint. 70 // Bigint and Bigint.
71 a = 12345678901234567890; 71 a = 12345678901234567890;
72 b = 10000000000000000; 72 b = 10000000000000000;
73 Expect.equals(123456789012345678900000000000000000, a * b); 73 Expect.equals(123456789012345678900000000000000000, a * b);
74 // Bigint and double. 74 // Bigint and double.
75 a = 2.0;
76 b = 200000000000000000000; 75 b = 200000000000000000000;
77 Expect.isTrue((a * b) is double); 76 var c = 2.0;
78 Expect.equals(400000000000000000000.0, a * b); 77 Expect.isTrue((c * b) is double);
79 Expect.isTrue((b * a) is double); 78 Expect.equals(400000000000000000000.0, c * b);
80 Expect.equals(400000000000000000000.0, b * a); 79 Expect.isTrue((b * c) is double);
80 Expect.equals(400000000000000000000.0, b * c);
81 } 81 }
82 82
83 testBigintTruncDiv() { 83 testBigintTruncDiv() {
84 var a = 12345678901234567890; 84 var a = 12345678901234567890;
85 var b = 10; 85 var b = 10;
86 // Bigint and Smi. 86 // Bigint and Smi.
87 Expect.equals(1234567890123456789, a ~/ b); 87 Expect.equals(1234567890123456789, a ~/ b);
88 Expect.equals(0, b ~/ a); 88 Expect.equals(0, b ~/ a);
89 Expect.equals(123456789, 123456789012345678 ~/ 1000000000); 89 Expect.equals(123456789, 123456789012345678 ~/ 1000000000);
90 // Bigint and Bigint. 90 // Bigint and Bigint.
91 a = 12345678901234567890; 91 a = 12345678901234567890;
92 b = 10000000000000000; 92 b = 10000000000000000;
93 Expect.equals(1234, a ~/ b); 93 Expect.equals(1234, a ~/ b);
94 // Bigint and double. 94 // Bigint and double.
95 a = 100000000000000000000.0;
96 b = 200000000000000000000; 95 b = 200000000000000000000;
97 Expect.equals(0, a ~/ b); 96 var c = 100000000000000000000.0;
98 Expect.equals(2, b ~/ a); 97 Expect.equals(0, c ~/ b);
98 Expect.equals(2, b ~/ c);
99 } 99 }
100 100
101 testBigintDiv() { 101 testBigintDiv() {
102 // Bigint and Smi. 102 // Bigint and Smi.
103 Expect.equals(1234567890123456789.1, 12345678901234567891 / 10); 103 Expect.equals(1234567890123456789.1, 12345678901234567891 / 10);
104 Expect.equals(0.000000001234, 1234 / 1000000000000); 104 Expect.equals(0.000000001234, 1234 / 1000000000000);
105 Expect.equals(12345678901234000000.0, 123456789012340000000 / 10); 105 Expect.equals(12345678901234000000.0, 123456789012340000000 / 10);
106 // Bigint and Bigint. 106 // Bigint and Bigint.
107 var a = 12345670000000000000; 107 var a = 12345670000000000000;
108 var b = 10000000000000000; 108 var b = 10000000000000000;
109 Expect.equals(1234.567, a / b); 109 Expect.equals(1234.567, a / b);
110 // Bigint and double. 110 // Bigint and double.
111 a = 400000000000000000000.0;
112 b = 200000000000000000000; 111 b = 200000000000000000000;
113 Expect.equals(2.0, a / b); 112 var c = 400000000000000000000.0;
114 Expect.equals(0.5, b / a); 113 Expect.equals(2.0, c / b);
114 Expect.equals(0.5, b / c);
115 } 115 }
116 116
117 testBigintModulo() { 117 testBigintModulo() {
118 // Bigint and Smi. 118 // Bigint and Smi.
119 var a = 1000000000005; 119 var a = 1000000000005;
120 var b = 10; 120 var b = 10;
121 Expect.equals(5, a % b); 121 Expect.equals(5, a % b);
122 Expect.equals(10, b % a); 122 Expect.equals(10, b % a);
123 // Bigint & Bigint 123 // Bigint & Bigint
124 a = 10000000000000000001; 124 a = 10000000000000000001;
125 b = 10000000000000000000; 125 b = 10000000000000000000;
126 Expect.equals(1, a % b); 126 Expect.equals(1, a % b);
127 Expect.equals(10000000000000000000, b % a); 127 Expect.equals(10000000000000000000, b % a);
128 // Bigint & double. 128 // Bigint & double.
129 a = 10000000100000000.0;
130 b = 10000000000000000; 129 b = 10000000000000000;
131 Expect.equals(100000000.0, a % b); 130 var c = 10000000100000000.0;
132 Expect.equals(10000000000000000.0, b % a); 131 Expect.equals(100000000.0, c % b);
132 Expect.equals(10000000000000000.0, b % c);
133 // Transitioning from Mint to Bigint. 133 // Transitioning from Mint to Bigint.
134 var iStart = 4611686018427387900; 134 var iStart = 4611686018427387900;
135 var prevX = -23 % iStart; 135 var prevX = -23 % iStart;
136 for (int i = iStart + 1; i < iStart + 10; i++) { 136 for (int i = iStart + 1; i < iStart + 10; i++) {
137 var x = -23 % i; 137 var x = -23 % i;
138 Expect.equals(1, x - prevX); 138 Expect.equals(1, x - prevX);
139 Expect.isTrue(x > 0); 139 Expect.isTrue(x > 0);
140 prevX = x; 140 prevX = x;
141 } 141 }
142 } 142 }
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 testBigintNegate(); // //# negate: ok 435 testBigintNegate(); // //# negate: ok
436 testShiftAmount(); // //# shift: ok 436 testShiftAmount(); // //# shift: ok
437 Expect.equals(12345678901234567890, (12345678901234567890).abs()); 437 Expect.equals(12345678901234567890, (12345678901234567890).abs());
438 Expect.equals(12345678901234567890, (-12345678901234567890).abs()); 438 Expect.equals(12345678901234567890, (-12345678901234567890).abs());
439 var a = 10000000000000000000; 439 var a = 10000000000000000000;
440 var b = 10000000000000000001; 440 var b = 10000000000000000001;
441 Expect.equals(false, a.hashCode == b.hashCode); 441 Expect.equals(false, a.hashCode == b.hashCode);
442 Expect.equals(true, a.hashCode == (b - 1).hashCode); 442 Expect.equals(true, a.hashCode == (b - 1).hashCode);
443 } 443 }
444 } 444 }
OLDNEW
« no previous file with comments | « tests/corelib_2/apply5_test.dart ('k') | tests/corelib_2/big_integer_huge_mul_vm_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698