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

Side by Side Diff: tests/html/utils.dart

Issue 11361190: a === b -> identical(a, b) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 8 years, 1 month 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/html/hidden_dom_1_test.dart ('k') | tests/isolate/mandel_isolate_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 library TestUtils; 1 library TestUtils;
2 import '../../pkg/unittest/lib/unittest.dart'; 2 import '../../pkg/unittest/lib/unittest.dart';
3 3
4 /** 4 /**
5 * Verifies that [actual] has the same graph structure as [expected]. 5 * Verifies that [actual] has the same graph structure as [expected].
6 * Detects cycles and DAG structure in Maps and Lists. 6 * Detects cycles and DAG structure in Maps and Lists.
7 */ 7 */
8 verifyGraph(expected, actual) { 8 verifyGraph(expected, actual) {
9 var eItems = []; 9 var eItems = [];
10 var aItems = []; 10 var aItems = [];
11 11
12 message(path, reason) => path == '' 12 message(path, reason) => path == ''
13 ? reason 13 ? reason
14 : reason == null ? "path: $path" : "path: $path, $reason"; 14 : reason == null ? "path: $path" : "path: $path, $reason";
15 15
16 walk(path, expected, actual) { 16 walk(path, expected, actual) {
17 if (expected is String || expected is num || expected == null) { 17 if (expected is String || expected is num || expected == null) {
18 expect(actual, equals(expected), reason: message(path, 'not equal')); 18 expect(actual, equals(expected), reason: message(path, 'not equal'));
19 return; 19 return;
20 } 20 }
21 21
22 // Cycle or DAG? 22 // Cycle or DAG?
23 for (int i = 0; i < eItems.length; i++) { 23 for (int i = 0; i < eItems.length; i++) {
24 if (expected === eItems[i]) { 24 if (identical(expected, eItems[i])) {
25 expect(actual, same(aItems[i]), 25 expect(actual, same(aItems[i]),
26 reason: message(path, 'missing back or side edge')); 26 reason: message(path, 'missing back or side edge'));
27 return; 27 return;
28 } 28 }
29 } 29 }
30 for (int i = 0; i < aItems.length; i++) { 30 for (int i = 0; i < aItems.length; i++) {
31 if (actual === aItems[i]) { 31 if (identical(actual, aItems[i])) {
32 expect(expected, same(eItems[i]), 32 expect(expected, same(eItems[i]),
33 reason: message(path, 'extra back or side edge')); 33 reason: message(path, 'extra back or side edge'));
34 return; 34 return;
35 } 35 }
36 } 36 }
37 eItems.add(expected); 37 eItems.add(expected);
38 aItems.add(actual); 38 aItems.add(actual);
39 39
40 if (expected is List) { 40 if (expected is List) {
41 expect(actual, isList, reason: message(path, '$actual is List')); 41 expect(actual, isList, reason: message(path, '$actual is List'));
(...skipping 19 matching lines...) Expand all
61 } 61 }
62 } 62 }
63 return; 63 return;
64 } 64 }
65 65
66 expect(false, isTrue, reason: 'Unhandled type: $expected'); 66 expect(false, isTrue, reason: 'Unhandled type: $expected');
67 } 67 }
68 68
69 walk('', expected, actual); 69 walk('', expected, actual);
70 } 70 }
OLDNEW
« no previous file with comments | « tests/html/hidden_dom_1_test.dart ('k') | tests/isolate/mandel_isolate_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698