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

Side by Side Diff: tests/standalone/src/MediumIntegerTest.dart

Issue 10252020: test rename overhaul: step 12 - standalone (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « tests/standalone/src/FailTest.dart ('k') | tests/standalone/src/OutOfMemoryTest.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4 // Testing Mints. Note that the tests may not work on 64-bit machines,
5 // as Smi's would be used to represent many of the numbers.
6
7 #library("MediumIntegerTest.dart");
8 #import("dart:coreimpl");
9
10 class MediumIntegerTest {
11
12 static void checkSmi(int a) {
13 Expect.equals(true, (a is Smi));
14 }
15
16 static void checkMint(int a) {
17 Expect.equals(true, (a is Mint));
18 }
19
20 static void checkBigint(int a) {
21 Expect.equals(true, (a is Bigint));
22 }
23
24 static int getMint() {
25 return 1234567890123456789;
26 }
27
28 static testSmiOverflow() {
29 int a = 1073741823;
30 int b = 1073741822;
31 checkSmi(a);
32 checkSmi(b);
33 checkMint(a + b);
34 Expect.equals(2147483645, a + b);
35 checkMint(a * b);
36 Expect.equals(1152921501385621506, a * b);
37 checkMint(-a - b);
38 Expect.equals(-2147483645, -a - b);
39 }
40
41 static testMintAdd() {
42 // Mint and Smi.
43 var a = 1234567890123456789;
44 var b = 2;
45 checkMint(a);
46 checkSmi(b);
47 checkMint(a + b);
48 Expect.equals(1234567890123456791, a + b);
49 Expect.equals(1234567890123456791, b + a);
50 a = 9223372036854775807;
51 checkMint(a);
52 checkBigint(a + 1);
53 Expect.equals(9223372036854775808, a + 1);
54
55 // Mint and Mint.
56 a = 100000000000000001;
57 checkMint(a);
58 Expect.equals(200000000000000002, a + a);
59 a = 9223372036854775800;
60 b = 1000000000000000000;
61 checkMint(a);
62 checkMint(b);
63 checkBigint(a + b);
64 Expect.equals(10223372036854775800, a + b);
65
66 // Mint and Bigint.
67 a = 100000000000000001;
68 b = 10000000000000000001;
69 checkMint(a);
70 checkBigint(b);
71 Expect.equals(10100000000000000002, a + b);
72
73 // Mint and double.
74 a = 100000000000.0;
75 b = 100000000000;
76 checkMint(b);
77 Expect.equals(200000000000.0, a + b);
78 Expect.equals(200000000000.0, b + a);
79 }
80
81 static testMintSub() {
82 // Mint and Smi.
83 var a = 1234567890123456789;
84 var b = 2;
85 checkMint(a);
86 checkSmi(b);
87 checkMint(a - b);
88 Expect.equals(1234567890123456787, a - b);
89 a = -9223372036854775808;
90 checkMint(a);
91 checkBigint(a - 1);
92 Expect.equals(-9223372036854775809, a - 1);
93
94 // Mint and Mint.
95 a = 1234567890123456789;
96 b = 1000000000000000000;
97 checkMint(a);
98 checkMint(b);
99 checkMint(a - b);
100 Expect.equals(234567890123456789, a - b);
101 a = -9223372036854775808;
102 b = 1000000000000000000;
103 checkMint(a);
104 checkMint(b);
105 checkBigint(a - b);
106 Expect.equals(-10223372036854775808, a - b);
107 }
108
109 static testMintDiv() {
110 // Mint and Smi.
111 var a = 1234567890123456788;
112 var b = 2;
113 checkMint(a);
114 checkSmi(b);
115 Expect.equals(617283945061728394.0, a / b);
116 }
117
118 static testMintMul() {
119 // Mint and Smi.
120 var a = 4611686018427387904;
121 var b = 10;
122 checkMint(a);
123 checkSmi(b);
124 checkBigint(a * b);
125 Expect.equals(46116860184273879040, a * b);
126 b = 1000000000000000000;
127 checkMint(a);
128 checkMint(b);
129 checkBigint(a * b);
130 Expect.equals(4611686018427387904000000000000000000, a * b);
131 }
132
133 static testMintAnd(mint) {
134 // Issue 1845.
135 final int t = 0;
136 var res = mint & (t - 1);
137 Expect.equals(mint, res);
138 }
139
140 // TODO(srdjan): Add more tests.
141
142 static void testMain() {
143 checkMint(getMint());
144 Expect.equals(1234567890123456789, getMint());
145 testSmiOverflow();
146 testMintAdd();
147 testMintSub();
148 testMintMul();
149 testMintDiv();
150 testMintAnd(-1925149952);
151 testMintAnd(1925149952);
152 var a = 100000000000;
153 var b = 100000000001;
154 checkMint(a);
155 checkMint(b);
156 Expect.equals(false, a.hashCode() == b.hashCode());
157 Expect.equals(true, a.hashCode() == (b - 1).hashCode());
158 }
159 }
160
161 main() {
162 for (int i = 0; i < 1000; i++) {
163 MediumIntegerTest.testMain();
164 }
165 }
OLDNEW
« no previous file with comments | « tests/standalone/src/FailTest.dart ('k') | tests/standalone/src/OutOfMemoryTest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698