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

Side by Side Diff: pkg/dev_compiler/test/codegen_expected/identity_test.js

Issue 2926613003: Generate better code for '=='. (Closed)
Patch Set: Identical, dtest 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
OLDNEW
(Empty)
1 define(['dart_sdk', 'expect'], function(dart_sdk, expect) {
2 'use strict';
3 const core = dart_sdk.core;
4 const dart = dart_sdk.dart;
5 const dartx = dart_sdk.dartx;
6 const minitest = expect.minitest;
7 const identity_test = Object.create(null);
8 let TToT = () => (TToT = dart.constFn(dart.gFnType(T => [T, [T]])))();
9 let VoidToT = () => (VoidToT = dart.constFn(dart.gFnType(T => [T, []])))();
10 let VoidToNull = () => (VoidToNull = dart.constFn(dart.fnType(core.Null, []))) ();
11 let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.fnType(dart.dynam ic, [])))();
12 identity_test.Music = class Music extends core.Object {
13 toString() {
14 return {
15 0: "Music.country",
16 1: "Music.western"
17 }[this.index];
18 }
19 };
20 (identity_test.Music.new = function(x) {
21 this.index = x;
22 }).prototype = identity_test.Music.prototype;
23 dart.setSignature(identity_test.Music, {
24 fields: () => ({index: dart.finalFieldType(core.int)})
25 });
26 dart.defineEnumValues(identity_test.Music, [
27 'country',
28 'western'
29 ]);
30 identity_test.BluesBrother = class BluesBrother extends core.Object {};
31 (identity_test.BluesBrother.new = function() {
32 }).prototype = identity_test.BluesBrother.prototype;
33 identity_test._Jake = class _Jake extends identity_test.BluesBrother {};
34 (identity_test._Jake.new = function() {
35 }).prototype = identity_test._Jake.prototype;
36 identity_test._Elwood = class _Elwood extends identity_test.BluesBrother {
37 ['=='](other) {
38 return identity_test._Elwood.is(other);
39 }
40 };
41 (identity_test._Elwood.new = function() {
42 }).prototype = identity_test._Elwood.prototype;
43 dart.setSignature(identity_test._Elwood, {
44 methods: () => ({'==': dart.fnType(core.bool, [core.Object])})
45 });
46 identity_test._Norman = class _Norman extends identity_test.BluesBrother {};
47 (identity_test._Norman.new = function() {
48 }).prototype = identity_test._Norman.prototype;
49 identity_test.hideNull = function(T) {
50 return x => {
51 return x;
52 };
53 };
54 dart.fn(identity_test.hideNull, TToT());
55 identity_test.getUndefined = function(T) {
56 return () => {
57 return T._check(core.List.new(1)[dartx._get](0));
58 };
59 };
60 dart.fn(identity_test.getUndefined, VoidToT());
61 identity_test.main = function() {
62 minitest.group('Enum identity', dart.fn(() => {
63 minitest.test('Identical enum/enum (nullable)', dart.fn(() => {
64 let e1 = identity_test.hideNull(identity_test.Music)(identity_test.Music .country);
65 let e2 = identity_test.hideNull(identity_test.Music)(identity_test.Music .western);
66 let d1 = identity_test.hideNull(identity_test.Music)(identity_test.Music .country);
67 let d2 = identity_test.hideNull(identity_test.Music)(identity_test.Music .western);
68 let o1 = identity_test.hideNull(core.Object)(identity_test.Music.country );
69 let o2 = identity_test.hideNull(core.Object)(identity_test.Music.western );
70 minitest.expect(e1 == e1, true);
71 minitest.expect(core.identical(e1, d1), true);
72 minitest.expect(core.identical(e1, o1), true);
73 minitest.expect(e1 == e2, false);
74 minitest.expect(core.identical(e1, o2), false);
75 minitest.expect(core.identical(e1, d2), false);
76 minitest.expect(e1 == e2, false);
77 minitest.expect(core.identical(d1, e1), true);
78 minitest.expect(core.identical(d1, d1), true);
79 minitest.expect(core.identical(d1, o1), true);
80 minitest.expect(core.identical(d1, e2), false);
81 minitest.expect(core.identical(d1, d2), false);
82 minitest.expect(core.identical(d1, o2), false);
83 minitest.expect(core.identical(o1, e1), true);
84 minitest.expect(core.identical(o1, d1), true);
85 minitest.expect(core.identical(o1, o1), true);
86 minitest.expect(core.identical(o1, e2), false);
87 minitest.expect(core.identical(o1, d2), false);
88 minitest.expect(core.identical(o1, o2), false);
89 }, VoidToNull()));
90 minitest.test('Identical enum/enum (non-null)', dart.fn(() => {
91 let e1 = identity_test.Music.country;
92 let e2 = identity_test.Music.western;
93 let d1 = identity_test.Music.country;
94 let d2 = identity_test.Music.western;
95 let o1 = identity_test.Music.country;
96 let o2 = identity_test.Music.western;
97 minitest.expect(e1 === e1, true);
98 minitest.expect(e1 === d1, true);
99 minitest.expect(e1 === o1, true);
100 minitest.expect(e1 === e2, false);
101 minitest.expect(e1 === o2, false);
102 minitest.expect(e1 === d2, false);
103 minitest.expect(e1 === e2, false);
104 minitest.expect(d1 === e1, true);
105 minitest.expect(d1 === d1, true);
106 minitest.expect(d1 === o1, true);
107 minitest.expect(d1 === e2, false);
108 minitest.expect(d1 === d2, false);
109 minitest.expect(d1 === o2, false);
110 minitest.expect(o1 === e1, true);
111 minitest.expect(o1 === d1, true);
112 minitest.expect(o1 === o1, true);
113 minitest.expect(o1 === e2, false);
114 minitest.expect(o1 === d2, false);
115 minitest.expect(o1 === o2, false);
116 }, VoidToNull()));
117 minitest.test('Identical enum/other (static, nullable)', dart.fn(() => {
118 let e1 = identity_test.hideNull(identity_test.Music)(identity_test.Music .country);
119 let s1 = identity_test.hideNull(core.String)("hello");
120 let s2 = identity_test.hideNull(core.String)("");
121 let i1 = identity_test.hideNull(core.int)(3);
122 let i2 = identity_test.hideNull(core.int)(0);
123 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
124 let b1 = identity_test.hideNull(identity_test.BluesBrother)(new identity _test._Norman.new());
125 minitest.expect(core.identical(e1, s1), false);
126 minitest.expect(core.identical(e1, s2), false);
127 minitest.expect(core.identical(e1, i1), false);
128 minitest.expect(core.identical(e1, i2), false);
129 minitest.expect(e1 == l1, false);
130 minitest.expect(e1 == b1, false);
131 minitest.expect(core.identical(s1, e1), false);
132 minitest.expect(core.identical(s2, e1), false);
133 minitest.expect(core.identical(i1, e1), false);
134 minitest.expect(core.identical(i2, e1), false);
135 minitest.expect(l1 == e1, false);
136 minitest.expect(b1 == e1, false);
137 }, VoidToNull()));
138 minitest.test('Identical enum/other (static, non-null)', dart.fn(() => {
139 let e1 = identity_test.Music.country;
140 let s1 = "hello";
141 let s2 = "";
142 let i1 = 3;
143 let i2 = 0;
144 let l1 = core.List.new(3);
145 let b1 = new identity_test._Norman.new();
146 minitest.expect(e1 === s1, false);
147 minitest.expect(e1 === s2, false);
148 minitest.expect(e1 === i1, false);
149 minitest.expect(e1 === i2, false);
150 minitest.expect(e1 === l1, false);
151 minitest.expect(e1 === b1, false);
152 minitest.expect(s1 === e1, false);
153 minitest.expect(s2 === e1, false);
154 minitest.expect(i1 === e1, false);
155 minitest.expect(i2 === e1, false);
156 minitest.expect(l1 === e1, false);
157 minitest.expect(b1 === e1, false);
158 }, VoidToNull()));
159 minitest.test('Identical enum/other (dynamic, nullable)', dart.fn(() => {
160 let e1 = identity_test.hideNull(identity_test.Music)(identity_test.Music .country);
161 let d1 = identity_test.hideNull(identity_test.Music)(identity_test.Music .country);
162 let s1 = identity_test.hideNull(core.String)("hello");
163 let s2 = identity_test.hideNull(core.String)("");
164 let i1 = identity_test.hideNull(core.int)(3);
165 let i2 = identity_test.hideNull(core.int)(0);
166 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
167 let b1 = identity_test.hideNull(identity_test._Norman)(new identity_test ._Norman.new());
168 minitest.expect(core.identical(e1, s1), false);
169 minitest.expect(core.identical(e1, s2), false);
170 minitest.expect(core.identical(e1, i1), false);
171 minitest.expect(core.identical(e1, i2), false);
172 minitest.expect(core.identical(e1, l1), false);
173 minitest.expect(core.identical(e1, b1), false);
174 minitest.expect(core.identical(s1, e1), false);
175 minitest.expect(core.identical(s2, e1), false);
176 minitest.expect(core.identical(i1, e1), false);
177 minitest.expect(core.identical(i2, e1), false);
178 minitest.expect(core.identical(l1, e1), false);
179 minitest.expect(core.identical(b1, e1), false);
180 minitest.expect(core.identical(d1, s1), false);
181 minitest.expect(core.identical(d1, s2), false);
182 minitest.expect(core.identical(d1, i1), false);
183 minitest.expect(core.identical(d1, i2), false);
184 minitest.expect(core.identical(d1, l1), false);
185 minitest.expect(core.identical(d1, b1), false);
186 minitest.expect(core.identical(s1, d1), false);
187 minitest.expect(core.identical(s2, d1), false);
188 minitest.expect(core.identical(i1, d1), false);
189 minitest.expect(core.identical(i2, d1), false);
190 minitest.expect(core.identical(l1, d1), false);
191 minitest.expect(core.identical(b1, d1), false);
192 }, VoidToNull()));
193 minitest.test('Identical enum/other (dynamic, non-null)', dart.fn(() => {
194 let e1 = identity_test.Music.country;
195 let d1 = identity_test.Music.country;
196 let s1 = "hello";
197 let s2 = "";
198 let i1 = 3;
199 let i2 = 0;
200 let l1 = core.List.new(3);
201 let b1 = new identity_test._Norman.new();
202 minitest.expect(e1 === s1, false);
203 minitest.expect(e1 === s2, false);
204 minitest.expect(e1 === i1, false);
205 minitest.expect(e1 === i2, false);
206 minitest.expect(e1 === l1, false);
207 minitest.expect(e1 === b1, false);
208 minitest.expect(s1 === e1, false);
209 minitest.expect(s2 === e1, false);
210 minitest.expect(i1 === e1, false);
211 minitest.expect(i2 === e1, false);
212 minitest.expect(l1 === e1, false);
213 minitest.expect(b1 === e1, false);
214 minitest.expect(d1 === s1, false);
215 minitest.expect(d1 === s2, false);
216 minitest.expect(d1 === i1, false);
217 minitest.expect(d1 === i2, false);
218 minitest.expect(d1 === l1, false);
219 minitest.expect(d1 === b1, false);
220 minitest.expect(s1 === d1, false);
221 minitest.expect(s2 === d1, false);
222 minitest.expect(i1 === d1, false);
223 minitest.expect(i2 === d1, false);
224 minitest.expect(l1 === d1, false);
225 minitest.expect(b1 === d1, false);
226 }, VoidToNull()));
227 }, VoidToNull()));
228 minitest.group('String identity', dart.fn(() => {
229 minitest.test('Identical string/string (nullable)', dart.fn(() => {
230 let e1 = identity_test.hideNull(core.String)("The");
231 let e2 = identity_test.hideNull(core.String)("Band");
232 let d1 = identity_test.hideNull(core.String)("The");
233 let d2 = identity_test.hideNull(core.String)("Band");
234 let o1 = identity_test.hideNull(core.Object)("The");
235 let o2 = identity_test.hideNull(core.Object)("Band");
236 minitest.expect(e1 == e1, true);
237 minitest.expect(core.identical(e1, d1), true);
238 minitest.expect(core.identical(e1, o1), true);
239 minitest.expect(e1 == e2, false);
240 minitest.expect(core.identical(e1, o2), false);
241 minitest.expect(core.identical(e1, d2), false);
242 minitest.expect(e1 == e2, false);
243 minitest.expect(core.identical(d1, e1), true);
244 minitest.expect(core.identical(d1, d1), true);
245 minitest.expect(core.identical(d1, o1), true);
246 minitest.expect(core.identical(d1, e2), false);
247 minitest.expect(core.identical(d1, d2), false);
248 minitest.expect(core.identical(d1, o2), false);
249 minitest.expect(core.identical(o1, e1), true);
250 minitest.expect(core.identical(o1, d1), true);
251 minitest.expect(core.identical(o1, o1), true);
252 minitest.expect(core.identical(o1, e2), false);
253 minitest.expect(core.identical(o1, d2), false);
254 minitest.expect(core.identical(o1, o2), false);
255 }, VoidToNull()));
256 minitest.test('Identical string/string (non-null)', dart.fn(() => {
257 let e1 = "The";
258 let e2 = "Band";
259 let d1 = "The";
260 let d2 = "Band";
261 let o1 = "The";
262 let o2 = "Band";
263 minitest.expect(e1 === e1, true);
264 minitest.expect(e1 === d1, true);
265 minitest.expect(e1 === o1, true);
266 minitest.expect(e1 === e2, false);
267 minitest.expect(e1 === o2, false);
268 minitest.expect(e1 === d2, false);
269 minitest.expect(e1 === e2, false);
270 minitest.expect(d1 === e1, true);
271 minitest.expect(d1 === d1, true);
272 minitest.expect(d1 === o1, true);
273 minitest.expect(d1 === e2, false);
274 minitest.expect(d1 === d2, false);
275 minitest.expect(d1 === o2, false);
276 minitest.expect(o1 === e1, true);
277 minitest.expect(o1 === d1, true);
278 minitest.expect(o1 === o1, true);
279 minitest.expect(o1 === e2, false);
280 minitest.expect(o1 === d2, false);
281 minitest.expect(o1 === o2, false);
282 }, VoidToNull()));
283 minitest.test('Identical string/other (static, nullable)', dart.fn(() => {
284 let e1 = identity_test.hideNull(core.String)("The");
285 let s1 = identity_test.hideNull(core.String)("hello");
286 let s2 = identity_test.hideNull(core.String)("");
287 let i1 = identity_test.hideNull(core.int)(3);
288 let i2 = identity_test.hideNull(core.int)(0);
289 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
290 let b1 = identity_test.hideNull(identity_test.BluesBrother)(new identity _test._Norman.new());
291 minitest.expect(e1 == s1, false);
292 minitest.expect(e1 == s2, false);
293 minitest.expect(core.identical(e1, i1), false);
294 minitest.expect(core.identical(e1, i2), false);
295 minitest.expect(core.identical(e1, l1), false);
296 minitest.expect(core.identical(e1, b1), false);
297 minitest.expect(s1 == e1, false);
298 minitest.expect(s2 == e1, false);
299 minitest.expect(core.identical(i1, e1), false);
300 minitest.expect(core.identical(i2, e1), false);
301 minitest.expect(core.identical(l1, e1), false);
302 minitest.expect(core.identical(b1, e1), false);
303 }, VoidToNull()));
304 minitest.test('Identical string/other (static, non-null)', dart.fn(() => {
305 let e1 = "The";
306 let s1 = "hello";
307 let s2 = "";
308 let i1 = 3;
309 let i2 = 0;
310 let l1 = core.List.new(3);
311 let b1 = new identity_test._Norman.new();
312 minitest.expect(e1 === s1, false);
313 minitest.expect(e1 === s2, false);
314 minitest.expect(e1 === i1, false);
315 minitest.expect(e1 === i2, false);
316 minitest.expect(e1 === l1, false);
317 minitest.expect(e1 === b1, false);
318 minitest.expect(s1 === e1, false);
319 minitest.expect(s2 === e1, false);
320 minitest.expect(i1 === e1, false);
321 minitest.expect(i2 === e1, false);
322 minitest.expect(l1 === e1, false);
323 minitest.expect(b1 === e1, false);
324 }, VoidToNull()));
325 minitest.test('Identical string/other (dynamic, nullable)', dart.fn(() => {
326 let e1 = identity_test.hideNull(core.String)("The");
327 let d1 = identity_test.hideNull(core.String)("The");
328 let s1 = identity_test.hideNull(core.String)("hello");
329 let s2 = identity_test.hideNull(core.String)("");
330 let i1 = identity_test.hideNull(core.int)(3);
331 let i2 = identity_test.hideNull(core.int)(0);
332 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
333 let b1 = identity_test.hideNull(identity_test._Norman)(new identity_test ._Norman.new());
334 minitest.expect(core.identical(e1, s1), false);
335 minitest.expect(core.identical(e1, s2), false);
336 minitest.expect(core.identical(e1, i1), false);
337 minitest.expect(core.identical(e1, i2), false);
338 minitest.expect(core.identical(e1, l1), false);
339 minitest.expect(core.identical(e1, b1), false);
340 minitest.expect(core.identical(s1, e1), false);
341 minitest.expect(core.identical(s2, e1), false);
342 minitest.expect(core.identical(i1, e1), false);
343 minitest.expect(core.identical(i2, e1), false);
344 minitest.expect(core.identical(l1, e1), false);
345 minitest.expect(core.identical(b1, e1), false);
346 minitest.expect(core.identical(d1, s1), false);
347 minitest.expect(core.identical(d1, s2), false);
348 minitest.expect(core.identical(d1, i1), false);
349 minitest.expect(core.identical(d1, i2), false);
350 minitest.expect(core.identical(d1, l1), false);
351 minitest.expect(core.identical(d1, b1), false);
352 minitest.expect(core.identical(s1, d1), false);
353 minitest.expect(core.identical(s2, d1), false);
354 minitest.expect(core.identical(i1, d1), false);
355 minitest.expect(core.identical(i2, d1), false);
356 minitest.expect(core.identical(l1, d1), false);
357 minitest.expect(core.identical(b1, d1), false);
358 }, VoidToNull()));
359 minitest.test('Identical string/other (dynamic, non-null)', dart.fn(() => {
360 let e1 = "The";
361 let d1 = "The";
362 let s1 = "hello";
363 let s2 = "";
364 let i1 = 3;
365 let i2 = 0;
366 let l1 = core.List.new(3);
367 let b1 = new identity_test._Norman.new();
368 minitest.expect(e1 === s1, false);
369 minitest.expect(e1 === s2, false);
370 minitest.expect(e1 === i1, false);
371 minitest.expect(e1 === i2, false);
372 minitest.expect(e1 === l1, false);
373 minitest.expect(e1 === b1, false);
374 minitest.expect(s1 === e1, false);
375 minitest.expect(s2 === e1, false);
376 minitest.expect(i1 === e1, false);
377 minitest.expect(i2 === e1, false);
378 minitest.expect(l1 === e1, false);
379 minitest.expect(b1 === e1, false);
380 minitest.expect(d1 === s1, false);
381 minitest.expect(d1 === s2, false);
382 minitest.expect(d1 === i1, false);
383 minitest.expect(d1 === i2, false);
384 minitest.expect(d1 === l1, false);
385 minitest.expect(d1 === b1, false);
386 minitest.expect(s1 === d1, false);
387 minitest.expect(s2 === d1, false);
388 minitest.expect(i1 === d1, false);
389 minitest.expect(i2 === d1, false);
390 minitest.expect(l1 === d1, false);
391 minitest.expect(b1 === d1, false);
392 }, VoidToNull()));
393 }, VoidToNull()));
394 minitest.group('Boolean identity', dart.fn(() => {
395 minitest.test('Identical bool/bool (nullable)', dart.fn(() => {
396 let e1 = identity_test.hideNull(core.bool)(true);
397 let e2 = identity_test.hideNull(core.bool)(false);
398 let d1 = identity_test.hideNull(core.bool)(true);
399 let d2 = identity_test.hideNull(core.bool)(false);
400 let o1 = identity_test.hideNull(core.Object)(true);
401 let o2 = identity_test.hideNull(core.Object)(false);
402 minitest.expect(e1 == e1, true);
403 minitest.expect(core.identical(e1, d1), true);
404 minitest.expect(core.identical(e1, o1), true);
405 minitest.expect(e1 == e2, false);
406 minitest.expect(core.identical(e1, o2), false);
407 minitest.expect(core.identical(e1, d2), false);
408 minitest.expect(e1 == e2, false);
409 minitest.expect(core.identical(d1, e1), true);
410 minitest.expect(core.identical(d1, d1), true);
411 minitest.expect(core.identical(d1, o1), true);
412 minitest.expect(core.identical(d1, e2), false);
413 minitest.expect(core.identical(d1, d2), false);
414 minitest.expect(core.identical(d1, o2), false);
415 minitest.expect(core.identical(o1, e1), true);
416 minitest.expect(core.identical(o1, d1), true);
417 minitest.expect(core.identical(o1, o1), true);
418 minitest.expect(core.identical(o1, e2), false);
419 minitest.expect(core.identical(o1, d2), false);
420 minitest.expect(core.identical(o1, o2), false);
421 }, VoidToNull()));
422 minitest.test('Identical bool/bool (non-null)', dart.fn(() => {
423 let e1 = true;
424 let e2 = false;
425 let d1 = true;
426 let d2 = false;
427 let o1 = true;
428 let o2 = false;
429 minitest.expect(e1 === e1, true);
430 minitest.expect(e1 === d1, true);
431 minitest.expect(e1 === o1, true);
432 minitest.expect(e1 === e2, false);
433 minitest.expect(e1 === o2, false);
434 minitest.expect(e1 === d2, false);
435 minitest.expect(e1 === e2, false);
436 minitest.expect(d1 === e1, true);
437 minitest.expect(d1 === d1, true);
438 minitest.expect(d1 === o1, true);
439 minitest.expect(d1 === e2, false);
440 minitest.expect(d1 === d2, false);
441 minitest.expect(d1 === o2, false);
442 minitest.expect(o1 === e1, true);
443 minitest.expect(o1 === d1, true);
444 minitest.expect(o1 === o1, true);
445 minitest.expect(o1 === e2, false);
446 minitest.expect(o1 === d2, false);
447 minitest.expect(o1 === o2, false);
448 }, VoidToNull()));
449 minitest.test('Identical bool/other (static, nullable)', dart.fn(() => {
450 let e1 = identity_test.hideNull(core.bool)(true);
451 let s1 = identity_test.hideNull(core.String)("hello");
452 let s2 = identity_test.hideNull(core.String)("");
453 let i1 = identity_test.hideNull(core.int)(3);
454 let i2 = identity_test.hideNull(core.int)(0);
455 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
456 let b1 = identity_test.hideNull(identity_test.BluesBrother)(new identity _test._Norman.new());
457 minitest.expect(core.identical(e1, s1), false);
458 minitest.expect(core.identical(e1, s2), false);
459 minitest.expect(core.identical(e1, i1), false);
460 minitest.expect(core.identical(e1, i2), false);
461 minitest.expect(core.identical(e1, l1), false);
462 minitest.expect(core.identical(e1, b1), false);
463 minitest.expect(core.identical(s1, e1), false);
464 minitest.expect(core.identical(s2, e1), false);
465 minitest.expect(core.identical(i1, e1), false);
466 minitest.expect(core.identical(i2, e1), false);
467 minitest.expect(core.identical(l1, e1), false);
468 minitest.expect(core.identical(b1, e1), false);
469 }, VoidToNull()));
470 minitest.test('Identical bool/other (static, non-null)', dart.fn(() => {
471 let e1 = true;
472 let s1 = "hello";
473 let s2 = "";
474 let i1 = 3;
475 let i2 = 0;
476 let l1 = core.List.new(3);
477 let b1 = new identity_test._Norman.new();
478 minitest.expect(e1 === s1, false);
479 minitest.expect(e1 === s2, false);
480 minitest.expect(e1 === i1, false);
481 minitest.expect(e1 === i2, false);
482 minitest.expect(e1 === l1, false);
483 minitest.expect(e1 === b1, false);
484 minitest.expect(s1 === e1, false);
485 minitest.expect(s2 === e1, false);
486 minitest.expect(i1 === e1, false);
487 minitest.expect(i2 === e1, false);
488 minitest.expect(l1 === e1, false);
489 minitest.expect(b1 === e1, false);
490 }, VoidToNull()));
491 minitest.test('Identical bool/other (dynamic, nullable)', dart.fn(() => {
492 let e1 = identity_test.hideNull(core.bool)(true);
493 let d1 = identity_test.hideNull(core.bool)(true);
494 let s1 = identity_test.hideNull(core.String)("hello");
495 let s2 = identity_test.hideNull(core.String)("");
496 let i1 = identity_test.hideNull(core.int)(3);
497 let i2 = identity_test.hideNull(core.int)(0);
498 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
499 let b1 = identity_test.hideNull(identity_test._Norman)(new identity_test ._Norman.new());
500 minitest.expect(core.identical(e1, s1), false);
501 minitest.expect(core.identical(e1, s2), false);
502 minitest.expect(core.identical(e1, i1), false);
503 minitest.expect(core.identical(e1, i2), false);
504 minitest.expect(core.identical(e1, l1), false);
505 minitest.expect(core.identical(e1, b1), false);
506 minitest.expect(core.identical(s1, e1), false);
507 minitest.expect(core.identical(s2, e1), false);
508 minitest.expect(core.identical(i1, e1), false);
509 minitest.expect(core.identical(i2, e1), false);
510 minitest.expect(core.identical(l1, e1), false);
511 minitest.expect(core.identical(b1, e1), false);
512 minitest.expect(core.identical(d1, s1), false);
513 minitest.expect(core.identical(d1, s2), false);
514 minitest.expect(core.identical(d1, i1), false);
515 minitest.expect(core.identical(d1, i2), false);
516 minitest.expect(core.identical(d1, l1), false);
517 minitest.expect(core.identical(d1, b1), false);
518 minitest.expect(core.identical(s1, d1), false);
519 minitest.expect(core.identical(s2, d1), false);
520 minitest.expect(core.identical(i1, d1), false);
521 minitest.expect(core.identical(i2, d1), false);
522 minitest.expect(core.identical(l1, d1), false);
523 minitest.expect(core.identical(b1, d1), false);
524 }, VoidToNull()));
525 minitest.test('Identical bool/other (dynamic, non-null)', dart.fn(() => {
526 let e1 = true;
527 let d1 = true;
528 let s1 = "hello";
529 let s2 = "";
530 let i1 = 3;
531 let i2 = 0;
532 let l1 = core.List.new(3);
533 let b1 = new identity_test._Norman.new();
534 minitest.expect(e1 === s1, false);
535 minitest.expect(e1 === s2, false);
536 minitest.expect(e1 === i1, false);
537 minitest.expect(e1 === i2, false);
538 minitest.expect(e1 === l1, false);
539 minitest.expect(e1 === b1, false);
540 minitest.expect(s1 === e1, false);
541 minitest.expect(s2 === e1, false);
542 minitest.expect(i1 === e1, false);
543 minitest.expect(i2 === e1, false);
544 minitest.expect(l1 === e1, false);
545 minitest.expect(b1 === e1, false);
546 minitest.expect(d1 === s1, false);
547 minitest.expect(d1 === s2, false);
548 minitest.expect(d1 === i1, false);
549 minitest.expect(d1 === i2, false);
550 minitest.expect(d1 === l1, false);
551 minitest.expect(d1 === b1, false);
552 minitest.expect(s1 === d1, false);
553 minitest.expect(s2 === d1, false);
554 minitest.expect(i1 === d1, false);
555 minitest.expect(i2 === d1, false);
556 minitest.expect(l1 === d1, false);
557 minitest.expect(b1 === d1, false);
558 }, VoidToNull()));
559 }, VoidToNull()));
560 minitest.group('String identity', dart.fn(() => {
561 minitest.test('Identical string/string (nullable)', dart.fn(() => {
562 let e1 = identity_test.hideNull(core.String)("The");
563 let e2 = identity_test.hideNull(core.String)("Band");
564 let d1 = identity_test.hideNull(core.String)("The");
565 let d2 = identity_test.hideNull(core.String)("Band");
566 let o1 = identity_test.hideNull(core.Object)("The");
567 let o2 = identity_test.hideNull(core.Object)("Band");
568 minitest.expect(e1 == e1, true);
569 minitest.expect(core.identical(e1, d1), true);
570 minitest.expect(core.identical(e1, o1), true);
571 minitest.expect(e1 == e2, false);
572 minitest.expect(core.identical(e1, o2), false);
573 minitest.expect(core.identical(e1, d2), false);
574 minitest.expect(e1 == e2, false);
575 minitest.expect(core.identical(d1, e1), true);
576 minitest.expect(core.identical(d1, d1), true);
577 minitest.expect(core.identical(d1, o1), true);
578 minitest.expect(core.identical(d1, e2), false);
579 minitest.expect(core.identical(d1, d2), false);
580 minitest.expect(core.identical(d1, o2), false);
581 minitest.expect(core.identical(o1, e1), true);
582 minitest.expect(core.identical(o1, d1), true);
583 minitest.expect(core.identical(o1, o1), true);
584 minitest.expect(core.identical(o1, e2), false);
585 minitest.expect(core.identical(o1, d2), false);
586 minitest.expect(core.identical(o1, o2), false);
587 }, VoidToNull()));
588 minitest.test('Identical string/string (non-null)', dart.fn(() => {
589 let e1 = "The";
590 let e2 = "Band";
591 let d1 = "The";
592 let d2 = "Band";
593 let o1 = "The";
594 let o2 = "Band";
595 minitest.expect(e1 === e1, true);
596 minitest.expect(e1 === d1, true);
597 minitest.expect(e1 === o1, true);
598 minitest.expect(e1 === e2, false);
599 minitest.expect(e1 === o2, false);
600 minitest.expect(e1 === d2, false);
601 minitest.expect(e1 === e2, false);
602 minitest.expect(d1 === e1, true);
603 minitest.expect(d1 === d1, true);
604 minitest.expect(d1 === o1, true);
605 minitest.expect(d1 === e2, false);
606 minitest.expect(d1 === d2, false);
607 minitest.expect(d1 === o2, false);
608 minitest.expect(o1 === e1, true);
609 minitest.expect(o1 === d1, true);
610 minitest.expect(o1 === o1, true);
611 minitest.expect(o1 === e2, false);
612 minitest.expect(o1 === d2, false);
613 minitest.expect(o1 === o2, false);
614 }, VoidToNull()));
615 minitest.test('Identical string/other (static, nullable)', dart.fn(() => {
616 let e1 = identity_test.hideNull(core.String)("The");
617 let s1 = identity_test.hideNull(core.String)("hello");
618 let s2 = identity_test.hideNull(core.String)("");
619 let i1 = identity_test.hideNull(core.int)(3);
620 let i2 = identity_test.hideNull(core.int)(0);
621 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
622 let b1 = identity_test.hideNull(identity_test.BluesBrother)(new identity _test._Norman.new());
623 minitest.expect(e1 == s1, false);
624 minitest.expect(e1 == s2, false);
625 minitest.expect(core.identical(e1, i1), false);
626 minitest.expect(core.identical(e1, i2), false);
627 minitest.expect(core.identical(e1, l1), false);
628 minitest.expect(core.identical(e1, b1), false);
629 minitest.expect(s1 == e1, false);
630 minitest.expect(s2 == e1, false);
631 minitest.expect(core.identical(i1, e1), false);
632 minitest.expect(core.identical(i2, e1), false);
633 minitest.expect(core.identical(l1, e1), false);
634 minitest.expect(core.identical(b1, e1), false);
635 }, VoidToNull()));
636 minitest.test('Identical string/other (static, non-null)', dart.fn(() => {
637 let e1 = "The";
638 let s1 = "hello";
639 let s2 = "";
640 let i1 = 3;
641 let i2 = 0;
642 let l1 = core.List.new(3);
643 let b1 = new identity_test._Norman.new();
644 minitest.expect(e1 === s1, false);
645 minitest.expect(e1 === s2, false);
646 minitest.expect(e1 === i1, false);
647 minitest.expect(e1 === i2, false);
648 minitest.expect(e1 === l1, false);
649 minitest.expect(e1 === b1, false);
650 minitest.expect(s1 === e1, false);
651 minitest.expect(s2 === e1, false);
652 minitest.expect(i1 === e1, false);
653 minitest.expect(i2 === e1, false);
654 minitest.expect(l1 === e1, false);
655 minitest.expect(b1 === e1, false);
656 }, VoidToNull()));
657 minitest.test('Identical string/other (dynamic, nullable)', dart.fn(() => {
658 let e1 = identity_test.hideNull(core.String)("The");
659 let d1 = identity_test.hideNull(core.String)("The");
660 let s1 = identity_test.hideNull(core.String)("hello");
661 let s2 = identity_test.hideNull(core.String)("");
662 let i1 = identity_test.hideNull(core.int)(3);
663 let i2 = identity_test.hideNull(core.int)(0);
664 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
665 let b1 = identity_test.hideNull(identity_test._Norman)(new identity_test ._Norman.new());
666 minitest.expect(core.identical(e1, s1), false);
667 minitest.expect(core.identical(e1, s2), false);
668 minitest.expect(core.identical(e1, i1), false);
669 minitest.expect(core.identical(e1, i2), false);
670 minitest.expect(core.identical(e1, l1), false);
671 minitest.expect(core.identical(e1, b1), false);
672 minitest.expect(core.identical(s1, e1), false);
673 minitest.expect(core.identical(s2, e1), false);
674 minitest.expect(core.identical(i1, e1), false);
675 minitest.expect(core.identical(i2, e1), false);
676 minitest.expect(core.identical(l1, e1), false);
677 minitest.expect(core.identical(b1, e1), false);
678 minitest.expect(core.identical(d1, s1), false);
679 minitest.expect(core.identical(d1, s2), false);
680 minitest.expect(core.identical(d1, i1), false);
681 minitest.expect(core.identical(d1, i2), false);
682 minitest.expect(core.identical(d1, l1), false);
683 minitest.expect(core.identical(d1, b1), false);
684 minitest.expect(core.identical(s1, d1), false);
685 minitest.expect(core.identical(s2, d1), false);
686 minitest.expect(core.identical(i1, d1), false);
687 minitest.expect(core.identical(i2, d1), false);
688 minitest.expect(core.identical(l1, d1), false);
689 minitest.expect(core.identical(b1, d1), false);
690 }, VoidToNull()));
691 minitest.test('Identical string/other (dynamic, non-null)', dart.fn(() => {
692 let e1 = "The";
693 let d1 = "The";
694 let s1 = "hello";
695 let s2 = "";
696 let i1 = 3;
697 let i2 = 0;
698 let l1 = core.List.new(3);
699 let b1 = new identity_test._Norman.new();
700 minitest.expect(e1 === s1, false);
701 minitest.expect(e1 === s2, false);
702 minitest.expect(e1 === i1, false);
703 minitest.expect(e1 === i2, false);
704 minitest.expect(e1 === l1, false);
705 minitest.expect(e1 === b1, false);
706 minitest.expect(s1 === e1, false);
707 minitest.expect(s2 === e1, false);
708 minitest.expect(i1 === e1, false);
709 minitest.expect(i2 === e1, false);
710 minitest.expect(l1 === e1, false);
711 minitest.expect(b1 === e1, false);
712 minitest.expect(d1 === s1, false);
713 minitest.expect(d1 === s2, false);
714 minitest.expect(d1 === i1, false);
715 minitest.expect(d1 === i2, false);
716 minitest.expect(d1 === l1, false);
717 minitest.expect(d1 === b1, false);
718 minitest.expect(s1 === d1, false);
719 minitest.expect(s2 === d1, false);
720 minitest.expect(i1 === d1, false);
721 minitest.expect(i2 === d1, false);
722 minitest.expect(l1 === d1, false);
723 minitest.expect(b1 === d1, false);
724 }, VoidToNull()));
725 }, VoidToNull()));
726 minitest.group('Number identity', dart.fn(() => {
727 minitest.test('Identical int/int (nullable)', dart.fn(() => {
728 let e1 = identity_test.hideNull(core.int)(11);
729 let e2 = identity_test.hideNull(core.int)(12);
730 let d1 = identity_test.hideNull(core.int)(11);
731 let d2 = identity_test.hideNull(core.int)(12);
732 let o1 = identity_test.hideNull(core.Object)(11);
733 let o2 = identity_test.hideNull(core.Object)(12);
734 minitest.expect(e1 == e1, true);
735 minitest.expect(core.identical(e1, d1), true);
736 minitest.expect(core.identical(e1, o1), true);
737 minitest.expect(e1 == e2, false);
738 minitest.expect(core.identical(e1, o2), false);
739 minitest.expect(core.identical(e1, d2), false);
740 minitest.expect(e1 == e2, false);
741 minitest.expect(core.identical(d1, e1), true);
742 minitest.expect(core.identical(d1, d1), true);
743 minitest.expect(core.identical(d1, o1), true);
744 minitest.expect(core.identical(d1, e2), false);
745 minitest.expect(core.identical(d1, d2), false);
746 minitest.expect(core.identical(d1, o2), false);
747 minitest.expect(core.identical(o1, e1), true);
748 minitest.expect(core.identical(o1, d1), true);
749 minitest.expect(core.identical(o1, o1), true);
750 minitest.expect(core.identical(o1, e2), false);
751 minitest.expect(core.identical(o1, d2), false);
752 minitest.expect(core.identical(o1, o2), false);
753 }, VoidToNull()));
754 minitest.test('Identical int/int (non-null)', dart.fn(() => {
755 let e1 = 11;
756 let e2 = 12;
757 let d1 = 11;
758 let d2 = 12;
759 let o1 = 11;
760 let o2 = 12;
761 minitest.expect(e1 === e1, true);
762 minitest.expect(e1 === d1, true);
763 minitest.expect(e1 === o1, true);
764 minitest.expect(e1 === e2, false);
765 minitest.expect(e1 === o2, false);
766 minitest.expect(e1 === d2, false);
767 minitest.expect(e1 === e2, false);
768 minitest.expect(d1 === e1, true);
769 minitest.expect(d1 === d1, true);
770 minitest.expect(d1 === o1, true);
771 minitest.expect(d1 === e2, false);
772 minitest.expect(d1 === d2, false);
773 minitest.expect(d1 === o2, false);
774 minitest.expect(o1 === e1, true);
775 minitest.expect(o1 === d1, true);
776 minitest.expect(o1 === o1, true);
777 minitest.expect(o1 === e2, false);
778 minitest.expect(o1 === d2, false);
779 minitest.expect(o1 === o2, false);
780 }, VoidToNull()));
781 minitest.test('Identical int/other (static, nullable)', dart.fn(() => {
782 let e1 = identity_test.hideNull(core.int)(11);
783 let s1 = identity_test.hideNull(core.String)("hello");
784 let s2 = identity_test.hideNull(core.String)("");
785 let i1 = identity_test.hideNull(core.int)(3);
786 let i2 = identity_test.hideNull(core.int)(0);
787 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
788 let b1 = identity_test.hideNull(identity_test.BluesBrother)(new identity _test._Norman.new());
789 minitest.expect(core.identical(e1, s1), false);
790 minitest.expect(core.identical(e1, s2), false);
791 minitest.expect(e1 == i1, false);
792 minitest.expect(e1 == i2, false);
793 minitest.expect(core.identical(e1, l1), false);
794 minitest.expect(core.identical(e1, b1), false);
795 minitest.expect(core.identical(s1, e1), false);
796 minitest.expect(core.identical(s2, e1), false);
797 minitest.expect(i1 == e1, false);
798 minitest.expect(i2 == e1, false);
799 minitest.expect(core.identical(l1, e1), false);
800 minitest.expect(core.identical(b1, e1), false);
801 }, VoidToNull()));
802 minitest.test('Identical int/other (static, non-null)', dart.fn(() => {
803 let e1 = 11;
804 let s1 = "hello";
805 let s2 = "";
806 let i1 = 3;
807 let i2 = 0;
808 let l1 = core.List.new(3);
809 let b1 = new identity_test._Norman.new();
810 minitest.expect(e1 === s1, false);
811 minitest.expect(e1 === s2, false);
812 minitest.expect(e1 === i1, false);
813 minitest.expect(e1 === i2, false);
814 minitest.expect(e1 === l1, false);
815 minitest.expect(e1 === b1, false);
816 minitest.expect(s1 === e1, false);
817 minitest.expect(s2 === e1, false);
818 minitest.expect(i1 === e1, false);
819 minitest.expect(i2 === e1, false);
820 minitest.expect(l1 === e1, false);
821 minitest.expect(b1 === e1, false);
822 }, VoidToNull()));
823 minitest.test('Identical int/other (dynamic, nullable)', dart.fn(() => {
824 let e1 = identity_test.hideNull(core.int)(11);
825 let d1 = identity_test.hideNull(core.int)(11);
826 let s1 = identity_test.hideNull(core.String)("hello");
827 let s2 = identity_test.hideNull(core.String)("");
828 let i1 = identity_test.hideNull(core.int)(3);
829 let i2 = identity_test.hideNull(core.int)(0);
830 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
831 let b1 = identity_test.hideNull(identity_test._Norman)(new identity_test ._Norman.new());
832 minitest.expect(core.identical(e1, s1), false);
833 minitest.expect(core.identical(e1, s2), false);
834 minitest.expect(core.identical(e1, i1), false);
835 minitest.expect(core.identical(e1, i2), false);
836 minitest.expect(core.identical(e1, l1), false);
837 minitest.expect(core.identical(e1, b1), false);
838 minitest.expect(core.identical(s1, e1), false);
839 minitest.expect(core.identical(s2, e1), false);
840 minitest.expect(core.identical(i1, e1), false);
841 minitest.expect(core.identical(i2, e1), false);
842 minitest.expect(core.identical(l1, e1), false);
843 minitest.expect(core.identical(b1, e1), false);
844 minitest.expect(core.identical(d1, s1), false);
845 minitest.expect(core.identical(d1, s2), false);
846 minitest.expect(core.identical(d1, i1), false);
847 minitest.expect(core.identical(d1, i2), false);
848 minitest.expect(core.identical(d1, l1), false);
849 minitest.expect(core.identical(d1, b1), false);
850 minitest.expect(core.identical(s1, d1), false);
851 minitest.expect(core.identical(s2, d1), false);
852 minitest.expect(core.identical(i1, d1), false);
853 minitest.expect(core.identical(i2, d1), false);
854 minitest.expect(core.identical(l1, d1), false);
855 minitest.expect(core.identical(b1, d1), false);
856 }, VoidToNull()));
857 minitest.test('Identical int/other (dynamic, non-null)', dart.fn(() => {
858 let e1 = 11;
859 let d1 = 11;
860 let s1 = "hello";
861 let s2 = "";
862 let i1 = 3;
863 let i2 = 0;
864 let l1 = core.List.new(3);
865 let b1 = new identity_test._Norman.new();
866 minitest.expect(e1 === s1, false);
867 minitest.expect(e1 === s2, false);
868 minitest.expect(e1 === i1, false);
869 minitest.expect(e1 === i2, false);
870 minitest.expect(e1 === l1, false);
871 minitest.expect(e1 === b1, false);
872 minitest.expect(s1 === e1, false);
873 minitest.expect(s2 === e1, false);
874 minitest.expect(i1 === e1, false);
875 minitest.expect(i2 === e1, false);
876 minitest.expect(l1 === e1, false);
877 minitest.expect(b1 === e1, false);
878 minitest.expect(d1 === s1, false);
879 minitest.expect(d1 === s2, false);
880 minitest.expect(d1 === i1, false);
881 minitest.expect(d1 === i2, false);
882 minitest.expect(d1 === l1, false);
883 minitest.expect(d1 === b1, false);
884 minitest.expect(s1 === d1, false);
885 minitest.expect(s2 === d1, false);
886 minitest.expect(i1 === d1, false);
887 minitest.expect(i2 === d1, false);
888 minitest.expect(l1 === d1, false);
889 minitest.expect(b1 === d1, false);
890 }, VoidToNull()));
891 }, VoidToNull()));
892 minitest.group('Object identity', dart.fn(() => {
893 minitest.test('Identical object/object (nullable)', dart.fn(() => {
894 let e1 = identity_test.hideNull(identity_test._Jake)(new identity_test._ Jake.new());
895 let e2 = identity_test.hideNull(identity_test._Elwood)(new identity_test ._Elwood.new());
896 let d1 = identity_test.hideNull(identity_test._Jake)(e1);
897 let d2 = identity_test.hideNull(identity_test._Elwood)(new identity_test ._Elwood.new());
898 let o1 = identity_test.hideNull(core.Object)(e1);
899 let o2 = identity_test.hideNull(core.Object)(new identity_test._Elwood.n ew());
900 minitest.expect(e1 == e1, true);
901 minitest.expect(core.identical(e1, d1), true);
902 minitest.expect(core.identical(e1, o1), true);
903 minitest.expect(e1 == e2, false);
904 minitest.expect(core.identical(e1, o2), false);
905 minitest.expect(core.identical(e1, d2), false);
906 minitest.expect(e1 == e2, false);
907 minitest.expect(core.identical(d1, e1), true);
908 minitest.expect(core.identical(d1, d1), true);
909 minitest.expect(core.identical(d1, o1), true);
910 minitest.expect(core.identical(d1, e2), false);
911 minitest.expect(core.identical(d1, d2), false);
912 minitest.expect(core.identical(d1, o2), false);
913 minitest.expect(core.identical(o1, e1), true);
914 minitest.expect(core.identical(o1, d1), true);
915 minitest.expect(core.identical(o1, o1), true);
916 minitest.expect(core.identical(o1, e2), false);
917 minitest.expect(core.identical(o1, d2), false);
918 minitest.expect(core.identical(o1, o2), false);
919 }, VoidToNull()));
920 minitest.test('Identical object/object (non-null)', dart.fn(() => {
921 let e1 = new identity_test._Jake.new();
922 let e2 = new identity_test._Elwood.new();
923 let d1 = e1;
924 let d2 = new identity_test._Elwood.new();
925 let o1 = e1;
926 let o2 = new identity_test._Elwood.new();
927 minitest.expect(e1 === e1, true);
928 minitest.expect(e1 === d1, true);
929 minitest.expect(e1 === o1, true);
930 minitest.expect(e1 === e2, false);
931 minitest.expect(e1 === o2, false);
932 minitest.expect(e1 === d2, false);
933 minitest.expect(e1 === e2, false);
934 minitest.expect(d1 === e1, true);
935 minitest.expect(d1 === d1, true);
936 minitest.expect(d1 === o1, true);
937 minitest.expect(d1 === e2, false);
938 minitest.expect(d1 === d2, false);
939 minitest.expect(d1 === o2, false);
940 minitest.expect(o1 === e1, true);
941 minitest.expect(o1 === d1, true);
942 minitest.expect(o1 === o1, true);
943 minitest.expect(o1 === e2, false);
944 minitest.expect(o1 === d2, false);
945 minitest.expect(o1 === o2, false);
946 }, VoidToNull()));
947 minitest.test('Identical object/other (static, nullable)', dart.fn(() => {
948 let e1 = identity_test.hideNull(identity_test._Jake)(new identity_test._ Jake.new());
949 let s1 = identity_test.hideNull(core.String)("hello");
950 let s2 = identity_test.hideNull(core.String)("");
951 let i1 = identity_test.hideNull(core.int)(3);
952 let i2 = identity_test.hideNull(core.int)(0);
953 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
954 let b1 = identity_test.hideNull(identity_test.BluesBrother)(new identity _test._Norman.new());
955 minitest.expect(core.identical(e1, s1), false);
956 minitest.expect(core.identical(e1, s2), false);
957 minitest.expect(core.identical(e1, i1), false);
958 minitest.expect(core.identical(e1, i2), false);
959 minitest.expect(e1 == l1, false);
960 minitest.expect(e1 == b1, false);
961 minitest.expect(core.identical(s1, e1), false);
962 minitest.expect(core.identical(s2, e1), false);
963 minitest.expect(core.identical(i1, e1), false);
964 minitest.expect(core.identical(i2, e1), false);
965 minitest.expect(l1 == e1, false);
966 minitest.expect(b1 == e1, false);
967 }, VoidToNull()));
968 minitest.test('Identical object/other (static, non-null)', dart.fn(() => {
969 let e1 = new identity_test._Jake.new();
970 let s1 = "hello";
971 let s2 = "";
972 let i1 = 3;
973 let i2 = 0;
974 let l1 = core.List.new(3);
975 let b1 = new identity_test._Norman.new();
976 minitest.expect(e1 === s1, false);
977 minitest.expect(e1 === s2, false);
978 minitest.expect(e1 === i1, false);
979 minitest.expect(e1 === i2, false);
980 minitest.expect(e1 === l1, false);
981 minitest.expect(e1 === b1, false);
982 minitest.expect(s1 === e1, false);
983 minitest.expect(s2 === e1, false);
984 minitest.expect(i1 === e1, false);
985 minitest.expect(i2 === e1, false);
986 minitest.expect(l1 === e1, false);
987 minitest.expect(b1 === e1, false);
988 }, VoidToNull()));
989 minitest.test('Identical object/other (dynamic, nullable)', dart.fn(() => {
990 let e1 = identity_test.hideNull(identity_test._Jake)(new identity_test._ Jake.new());
991 let d1 = identity_test.hideNull(identity_test._Jake)(new identity_test._ Jake.new());
992 let s1 = identity_test.hideNull(core.String)("hello");
993 let s2 = identity_test.hideNull(core.String)("");
994 let i1 = identity_test.hideNull(core.int)(3);
995 let i2 = identity_test.hideNull(core.int)(0);
996 let l1 = identity_test.hideNull(core.List)(core.List.new(3));
997 let b1 = identity_test.hideNull(identity_test._Norman)(new identity_test ._Norman.new());
998 minitest.expect(core.identical(e1, s1), false);
999 minitest.expect(core.identical(e1, s2), false);
1000 minitest.expect(core.identical(e1, i1), false);
1001 minitest.expect(core.identical(e1, i2), false);
1002 minitest.expect(core.identical(e1, l1), false);
1003 minitest.expect(core.identical(e1, b1), false);
1004 minitest.expect(core.identical(s1, e1), false);
1005 minitest.expect(core.identical(s2, e1), false);
1006 minitest.expect(core.identical(i1, e1), false);
1007 minitest.expect(core.identical(i2, e1), false);
1008 minitest.expect(core.identical(l1, e1), false);
1009 minitest.expect(core.identical(b1, e1), false);
1010 minitest.expect(core.identical(d1, s1), false);
1011 minitest.expect(core.identical(d1, s2), false);
1012 minitest.expect(core.identical(d1, i1), false);
1013 minitest.expect(core.identical(d1, i2), false);
1014 minitest.expect(core.identical(d1, l1), false);
1015 minitest.expect(core.identical(d1, b1), false);
1016 minitest.expect(core.identical(s1, d1), false);
1017 minitest.expect(core.identical(s2, d1), false);
1018 minitest.expect(core.identical(i1, d1), false);
1019 minitest.expect(core.identical(i2, d1), false);
1020 minitest.expect(core.identical(l1, d1), false);
1021 minitest.expect(core.identical(b1, d1), false);
1022 }, VoidToNull()));
1023 minitest.test('Identical object/other (dynamic, non-null)', dart.fn(() => {
1024 let e1 = new identity_test._Jake.new();
1025 let d1 = new identity_test._Jake.new();
1026 let s1 = "hello";
1027 let s2 = "";
1028 let i1 = 3;
1029 let i2 = 0;
1030 let l1 = core.List.new(3);
1031 let b1 = new identity_test._Norman.new();
1032 minitest.expect(e1 === s1, false);
1033 minitest.expect(e1 === s2, false);
1034 minitest.expect(e1 === i1, false);
1035 minitest.expect(e1 === i2, false);
1036 minitest.expect(e1 === l1, false);
1037 minitest.expect(e1 === b1, false);
1038 minitest.expect(s1 === e1, false);
1039 minitest.expect(s2 === e1, false);
1040 minitest.expect(i1 === e1, false);
1041 minitest.expect(i2 === e1, false);
1042 minitest.expect(l1 === e1, false);
1043 minitest.expect(b1 === e1, false);
1044 minitest.expect(d1 === s1, false);
1045 minitest.expect(d1 === s2, false);
1046 minitest.expect(d1 === i1, false);
1047 minitest.expect(d1 === i2, false);
1048 minitest.expect(d1 === l1, false);
1049 minitest.expect(d1 === b1, false);
1050 minitest.expect(s1 === d1, false);
1051 minitest.expect(s2 === d1, false);
1052 minitest.expect(i1 === d1, false);
1053 minitest.expect(i2 === d1, false);
1054 minitest.expect(l1 === d1, false);
1055 minitest.expect(b1 === d1, false);
1056 }, VoidToNull()));
1057 }, VoidToNull()));
1058 minitest.group('Null/undefined identity', dart.fn(() => {
1059 minitest.test('Identical object/other (static, null)', dart.fn(() => {
1060 let n = identity_test.hideNull(identity_test.BluesBrother)(null);
1061 let u1 = identity_test.getUndefined(core.String)();
1062 let u2 = identity_test.getUndefined(core.int)();
1063 let u3 = identity_test.getUndefined(core.bool)();
1064 let u4 = identity_test.getUndefined(core.List)();
1065 minitest.expect(n == n, true);
1066 minitest.expect(core.identical(n, u1), true);
1067 minitest.expect(core.identical(n, u2), true);
1068 minitest.expect(core.identical(n, u3), true);
1069 minitest.expect(n == u4, true);
1070 minitest.expect(core.identical(u1, n), true);
1071 minitest.expect(core.identical(u2, n), true);
1072 minitest.expect(core.identical(u3, n), true);
1073 minitest.expect(u4 == n, true);
1074 }, VoidToNull()));
1075 minitest.test('Identical String/other (static, null)', dart.fn(() => {
1076 let u1 = identity_test.getUndefined(identity_test.BluesBrother)();
1077 let n = identity_test.hideNull(core.String)(null);
1078 let u2 = identity_test.getUndefined(core.int)();
1079 let u3 = identity_test.getUndefined(core.bool)();
1080 let u4 = identity_test.getUndefined(core.List)();
1081 minitest.expect(n == n, true);
1082 minitest.expect(core.identical(n, u1), true);
1083 minitest.expect(core.identical(n, u2), true);
1084 minitest.expect(core.identical(n, u3), true);
1085 minitest.expect(core.identical(n, u4), true);
1086 minitest.expect(core.identical(u1, n), true);
1087 minitest.expect(core.identical(u2, n), true);
1088 minitest.expect(core.identical(u3, n), true);
1089 minitest.expect(core.identical(u4, n), true);
1090 }, VoidToNull()));
1091 minitest.test('Identical int/other (static, null)', dart.fn(() => {
1092 let u1 = identity_test.getUndefined(identity_test.BluesBrother)();
1093 let u2 = identity_test.getUndefined(core.String)();
1094 let n = identity_test.hideNull(core.int)(null);
1095 let u3 = identity_test.getUndefined(core.bool)();
1096 let u4 = identity_test.getUndefined(core.List)();
1097 minitest.expect(n == n, true);
1098 minitest.expect(core.identical(n, u1), true);
1099 minitest.expect(core.identical(n, u2), true);
1100 minitest.expect(core.identical(n, u3), true);
1101 minitest.expect(core.identical(n, u4), true);
1102 minitest.expect(core.identical(u1, n), true);
1103 minitest.expect(core.identical(u2, n), true);
1104 minitest.expect(core.identical(u3, n), true);
1105 minitest.expect(core.identical(u4, n), true);
1106 }, VoidToNull()));
1107 minitest.test('Identical bool/other (static, null)', dart.fn(() => {
1108 let u1 = identity_test.getUndefined(identity_test.BluesBrother)();
1109 let u2 = identity_test.getUndefined(core.String)();
1110 let u3 = identity_test.getUndefined(core.int)();
1111 let n = identity_test.hideNull(core.bool)(null);
1112 let u4 = identity_test.getUndefined(core.List)();
1113 minitest.expect(n == n, true);
1114 minitest.expect(core.identical(n, u1), true);
1115 minitest.expect(core.identical(n, u2), true);
1116 minitest.expect(core.identical(n, u3), true);
1117 minitest.expect(core.identical(n, u4), true);
1118 minitest.expect(core.identical(u1, n), true);
1119 minitest.expect(core.identical(u2, n), true);
1120 minitest.expect(core.identical(u3, n), true);
1121 minitest.expect(core.identical(u4, n), true);
1122 }, VoidToNull()));
1123 minitest.test('Identical List/other (static, null)', dart.fn(() => {
1124 let u1 = identity_test.getUndefined(identity_test.BluesBrother)();
1125 let u2 = identity_test.getUndefined(core.String)();
1126 let u3 = identity_test.getUndefined(core.int)();
1127 let u4 = identity_test.getUndefined(core.bool)();
1128 let n = identity_test.hideNull(core.List)(null);
1129 minitest.expect(n == n, true);
1130 minitest.expect(n == u1, true);
1131 minitest.expect(core.identical(n, u2), true);
1132 minitest.expect(core.identical(n, u3), true);
1133 minitest.expect(core.identical(n, u4), true);
1134 minitest.expect(u1 == n, true);
1135 minitest.expect(core.identical(u2, n), true);
1136 minitest.expect(core.identical(u3, n), true);
1137 minitest.expect(core.identical(u4, n), true);
1138 }, VoidToNull()));
1139 }, VoidToNull()));
1140 };
1141 dart.fn(identity_test.main, VoidTodynamic());
1142 dart.trackLibraries("identity_test", {
1143 "identity_test.dart": identity_test
1144 }, null);
1145 // Exports:
1146 return {
1147 identity_test: identity_test
1148 };
1149 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698