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

Side by Side Diff: test/equality_test.dart

Issue 1213723007: Update to test package, make test work on dart2js. (Closed) Base URL: https://github.com/dart-lang/collection.git@master
Patch Set: Also update version. Created 5 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 | « test/canonicalized_map_test.dart ('k') | test/iterable_zip_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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 // Tests equality utilities. 5 // Tests equality utilities.
6 6
7 import "dart:collection"; 7 import "dart:collection";
8 import "package:collection/collection.dart"; 8 import "package:collection/collection.dart";
9 import "package:unittest/unittest.dart"; 9 import "package:test/test.dart";
10 10
11 main() { 11 main() {
12 o(id) => new Element(id);
13
14 // Lists that are point-wise equal, but not identical.
15 var list1 = [o(1), o(2), o(3), o(4), o(5)];
16 var list2 = [o(1), o(2), o(3), o(4), o(5)];
17 // Similar length list with equal elements in different order.
18 var list3 = [o(1), o(3), o(5), o(4), o(2)];
19
12 test("IterableEquality - List", () { 20 test("IterableEquality - List", () {
13 var l1 = [1, 2, 3, 4, 5]; 21 expect(const IterableEquality().equals(list1, list2), isTrue);
14 var l2 = [1.0, 2.0, 3.0, 4.0, 5.0];
15 expect(const IterableEquality().equals(l1, l2), isTrue);
16 Equality iterId = const IterableEquality(const IdentityEquality()); 22 Equality iterId = const IterableEquality(const IdentityEquality());
17 expect(iterId.equals(l1, l2), isFalse); /// 01: ok 23 expect(iterId.equals(list1, list2), isFalse);
Søren Gjesse 2015/07/01 12:23:25 Are these "status-file" comments leftovers, or sho
Lasse Reichstein Nielsen 2015/07/03 12:53:01 They were basically left-overs because the status
18 }); 24 });
19 25
20 test("IterableEquality - LinkedSet", () { 26 test("IterableEquality - LinkedSet", () {
21 var l1 = new LinkedHashSet.from([1, 2, 3, 4, 5]); 27 var l1 = new LinkedHashSet.from(list1);
22 var l2 = new LinkedHashSet.from([1.0, 2.0, 3.0, 4.0, 5.0]); 28 var l2 = new LinkedHashSet.from(list2);
23 expect(const IterableEquality().equals(l1, l2), isTrue); 29 expect(const IterableEquality().equals(l1, l2), isTrue);
24 Equality iterId = const IterableEquality(const IdentityEquality()); 30 Equality iterId = const IterableEquality(const IdentityEquality());
25 expect(iterId.equals(l1, l2), isFalse); /// 02: ok 31 expect(iterId.equals(l1, l2), isFalse);
26 }); 32 });
27 33
28 test("ListEquality", () { 34 test("ListEquality", () {
29 var l1 = [1, 2, 3, 4, 5]; 35 expect(const ListEquality().equals(list1, list2),
30 var l2 = [1.0, 2.0, 3.0, 4.0, 5.0];
31 expect(const ListEquality().equals(l1, l2),
32 isTrue); 36 isTrue);
33 Equality listId = const ListEquality(const IdentityEquality()); 37 Equality listId = const ListEquality(const IdentityEquality());
34 expect(listId.equals(l1, l2), isFalse); /// 03: ok 38 expect(listId.equals(list1, list2), isFalse);
35 }); 39 });
36 40
37 test("ListInequality length", () { 41 test("ListInequality length", () {
38 var l1 = [1, 2, 3, 4, 5]; 42 var list4 = [o(1), o(2), o(3), o(4), o(5), o(6)];
39 var l2 = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]; 43 expect(const ListEquality().equals(list1, list4),
40 expect(const ListEquality().equals(l1, l2),
41 isFalse); 44 isFalse);
42 expect(const ListEquality(const IdentityEquality()).equals(l1, l2), 45 expect(const ListEquality(const IdentityEquality()).equals(list1, list4),
43 isFalse); 46 isFalse);
44 }); 47 });
45 48
46 test("ListInequality value", () { 49 test("ListInequality value", () {
47 var l1 = [1, 2, 3, 4, 5]; 50 var list5 = [o(1), o(2), o(3), o(4), o(6)];
48 var l2 = [1.0, 2.0, 3.0, 4.0, 6.0]; 51 expect(const ListEquality().equals(list1, list5),
49 expect(const ListEquality().equals(l1, l2),
50 isFalse); 52 isFalse);
51 expect(const ListEquality(const IdentityEquality()).equals(l1, l2), 53 expect(const ListEquality(const IdentityEquality()).equals(list1, list5),
52 isFalse); 54 isFalse);
53 }); 55 });
54 56
55 test("UnorderedIterableEquality", () { 57 test("UnorderedIterableEquality", () {
56 var l1 = [1, 2, 3, 4, 5]; 58 expect(const UnorderedIterableEquality().equals(list1, list3),
57 var l2 = [1.0, 3.0, 5.0, 4.0, 2.0];
58 expect(const UnorderedIterableEquality().equals(l1, l2),
59 isTrue); 59 isTrue);
60 Equality uniterId = 60 Equality uniterId =
61 const UnorderedIterableEquality(const IdentityEquality()); 61 const UnorderedIterableEquality(const IdentityEquality());
62 expect(uniterId.equals(l1, l2), isFalse); /// 04: ok 62 expect(uniterId.equals(list1, list3), isFalse);
63 }); 63 });
64 64
65 test("UnorderedIterableInequality length", () { 65 test("UnorderedIterableInequality length", () {
66 var l1 = [1, 2, 3, 4, 5]; 66 var list6 = [o(1), o(3), o(5), o(4), o(2), o(1)];
67 var l2 = [1.0, 3.0, 5.0, 4.0, 2.0, 1.0]; 67 expect(const UnorderedIterableEquality().equals(list1, list6),
68 expect(const UnorderedIterableEquality().equals(l1, l2),
69 isFalse); 68 isFalse);
70 expect(const UnorderedIterableEquality(const IdentityEquality()) 69 expect(const UnorderedIterableEquality(const IdentityEquality())
71 .equals(l1, l2), 70 .equals(list1, list6),
72 isFalse); 71 isFalse);
73 }); 72 });
74 73
75 test("UnorderedIterableInequality values", () { 74 test("UnorderedIterableInequality values", () {
76 var l1 = [1, 2, 3, 4, 5]; 75 var list7 = [o(1), o(3), o(5), o(4), o(6)];
77 var l2 = [1.0, 3.0, 5.0, 4.0, 6.0]; 76 expect(const UnorderedIterableEquality().equals(list1, list7),
78 expect(const UnorderedIterableEquality().equals(l1, l2),
79 isFalse); 77 isFalse);
80 expect(const UnorderedIterableEquality(const IdentityEquality()) 78 expect(const UnorderedIterableEquality(const IdentityEquality())
81 .equals(l1, l2), 79 .equals(list1, list7),
82 isFalse); 80 isFalse);
83 }); 81 });
84 82
85 test("SetEquality", () { 83 test("SetEquality", () {
86 var l1 = new HashSet.from([1, 2, 3, 4, 5]); 84 var set1 = new HashSet.from(list1);
87 var l2 = new LinkedHashSet.from([1.0, 3.0, 5.0, 4.0, 2.0]); 85 var set2 = new LinkedHashSet.from(list3);
88 expect(const SetEquality().equals(l1, l2), 86 expect(const SetEquality().equals(set1, set2), isTrue);
89 isTrue);
90 Equality setId = const SetEquality(const IdentityEquality()); 87 Equality setId = const SetEquality(const IdentityEquality());
91 expect(setId.equals(l1, l2), isFalse); /// 05: ok 88 expect(setId.equals(set1, set2), isFalse);
92 }); 89 });
93 90
94 test("SetInequality length", () { 91 test("SetInequality length", () {
95 var l1 = new HashSet.from([1, 2, 3, 4, 5]); 92 var list8 = [o(1), o(3), o(5), o(4), o(2), o(6)];
96 var l2 = new LinkedHashSet.from([1.0, 3.0, 5.0, 4.0, 2.0, 6.0]); 93 var set1 = new HashSet.from(list1);
97 expect(const SetEquality().equals(l1, l2), 94 var set2 = new LinkedHashSet.from(list8);
95 expect(const SetEquality().equals(set1, set2),
98 isFalse); 96 isFalse);
99 expect(const SetEquality(const IdentityEquality()).equals(l1, l2), 97 expect(const SetEquality(const IdentityEquality()).equals(set1, set2),
100 isFalse); 98 isFalse);
101 }); 99 });
102 100
103 test("SetInequality value", () { 101 test("SetInequality value", () {
104 var l1 = new HashSet.from([1, 2, 3, 4, 5]); 102 var list7 = [o(1), o(3), o(5), o(4), o(6)];
105 var l2 = new LinkedHashSet.from([1.0, 3.0, 5.0, 4.0, 6.0]); 103 var set1 = new HashSet.from(list1);
106 expect(const SetEquality().equals(l1, l2), 104 var set2 = new LinkedHashSet.from(list7);
105 expect(const SetEquality().equals(set1, set2),
107 isFalse); 106 isFalse);
108 expect(const SetEquality(const IdentityEquality()).equals(l1, l2), 107 expect(const SetEquality(const IdentityEquality()).equals(set1, set2),
109 isFalse); 108 isFalse);
110 }); 109 });
111 110
112 var map1a = {"x": [1, 2, 3], "y": [true, false, null]}; 111 var map1a = {"x": [o(1), o(2), o(3)], "y": [true, false, null]};
113 var map1b = {"x": [4.0, 5.0, 6.0], "y": [false, true, null]}; 112 var map1b = {"x": [o(4), o(5), o(6)], "y": [false, true, null]};
114 var map2a = {"x": [3.0, 2.0, 1.0], "y": [false, true, null]}; 113 var map2a = {"x": [o(3), o(2), o(1)], "y": [false, true, null]};
115 var map2b = {"x": [6, 5, 4], "y": [null, false, true]}; 114 var map2b = {"x": [o(6), o(5), o(4)], "y": [null, false, true]};
116 var l1 = [map1a, map1b]; 115 var l1 = [map1a, map1b];
117 var l2 = [map2a, map2b]; 116 var l2 = [map2a, map2b];
118 var s1 = new Set.from(l1); 117 var s1 = new Set.from(l1);
119 var s2 = new Set.from([map2b, map2a]); 118 var s2 = new Set.from([map2b, map2a]);
120 119
121 test("RecursiveEquality", () { 120 test("RecursiveEquality", () {
122 const unordered = const UnorderedIterableEquality(); 121 const unordered = const UnorderedIterableEquality();
123 expect(unordered.equals(map1a["x"], map2a["x"]), 122 expect(unordered.equals(map1a["x"], map2a["x"]),
124 isTrue); 123 isTrue);
125 expect(unordered.equals(map1a["y"], map2a["y"]), 124 expect(unordered.equals(map1a["y"], map2a["y"]),
(...skipping 29 matching lines...) Expand all
155 expect(colleq.equals(map1a, map2a), 154 expect(colleq.equals(map1a, map2a),
156 isTrue); 155 isTrue);
157 expect(colleq.equals(map1b, map2b), 156 expect(colleq.equals(map1b, map2b),
158 isTrue); 157 isTrue);
159 expect(colleq.equals(l1, l2), 158 expect(colleq.equals(l1, l2),
160 isTrue); 159 isTrue);
161 expect(colleq.equals(s1, s2), 160 expect(colleq.equals(s1, s2),
162 isTrue); 161 isTrue);
163 }); 162 });
164 } 163 }
164
165 /// Wrapper objects for an `id` value.
166 ///
167 /// Compares the `id` value by equality and for comparison.
168 /// Allows creating simple objects that are equal without being identical.
169 class Element implements Comparable<Element> {
170 final Comparable id;
171 const Element(this.id);
172 int get hashCode => id.hashCode;
173 bool operator==(Object other) => other is Element && id == other.id;
174 int compareTo(other) => id.compareTo(other.id);
175 }
OLDNEW
« no previous file with comments | « test/canonicalized_map_test.dart ('k') | test/iterable_zip_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698