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

Unified Diff: packages/collection/test/equality_test.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « packages/collection/test/equality_set_test.dart ('k') | packages/collection/test/functions_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packages/collection/test/equality_test.dart
diff --git a/packages/collection/test/equality_test.dart b/packages/collection/test/equality_test.dart
index e6096085a9d761ba4094fdfa4730a2de37581299..63399c1f18ce260ecdf754f679330b7dcf0dff2e 100644
--- a/packages/collection/test/equality_test.dart
+++ b/packages/collection/test/equality_test.dart
@@ -32,31 +32,27 @@ main() {
});
test("ListEquality", () {
- expect(const ListEquality().equals(list1, list2),
- isTrue);
+ expect(const ListEquality().equals(list1, list2), isTrue);
Equality listId = const ListEquality(const IdentityEquality());
expect(listId.equals(list1, list2), isFalse);
});
test("ListInequality length", () {
var list4 = [o(1), o(2), o(3), o(4), o(5), o(6)];
- expect(const ListEquality().equals(list1, list4),
- isFalse);
+ expect(const ListEquality().equals(list1, list4), isFalse);
expect(const ListEquality(const IdentityEquality()).equals(list1, list4),
- isFalse);
+ isFalse);
});
test("ListInequality value", () {
var list5 = [o(1), o(2), o(3), o(4), o(6)];
- expect(const ListEquality().equals(list1, list5),
- isFalse);
+ expect(const ListEquality().equals(list1, list5), isFalse);
expect(const ListEquality(const IdentityEquality()).equals(list1, list5),
- isFalse);
+ isFalse);
});
test("UnorderedIterableEquality", () {
- expect(const UnorderedIterableEquality().equals(list1, list3),
- isTrue);
+ expect(const UnorderedIterableEquality().equals(list1, list3), isTrue);
Equality uniterId =
const UnorderedIterableEquality(const IdentityEquality());
expect(uniterId.equals(list1, list3), isFalse);
@@ -64,20 +60,20 @@ main() {
test("UnorderedIterableInequality length", () {
var list6 = [o(1), o(3), o(5), o(4), o(2), o(1)];
- expect(const UnorderedIterableEquality().equals(list1, list6),
- isFalse);
- expect(const UnorderedIterableEquality(const IdentityEquality())
- .equals(list1, list6),
- isFalse);
+ expect(const UnorderedIterableEquality().equals(list1, list6), isFalse);
+ expect(
+ const UnorderedIterableEquality(const IdentityEquality())
+ .equals(list1, list6),
+ isFalse);
});
test("UnorderedIterableInequality values", () {
var list7 = [o(1), o(3), o(5), o(4), o(6)];
- expect(const UnorderedIterableEquality().equals(list1, list7),
- isFalse);
- expect(const UnorderedIterableEquality(const IdentityEquality())
- .equals(list1, list7),
- isFalse);
+ expect(const UnorderedIterableEquality().equals(list1, list7), isFalse);
+ expect(
+ const UnorderedIterableEquality(const IdentityEquality())
+ .equals(list1, list7),
+ isFalse);
});
test("SetEquality", () {
@@ -92,73 +88,145 @@ main() {
var list8 = [o(1), o(3), o(5), o(4), o(2), o(6)];
var set1 = new HashSet.from(list1);
var set2 = new LinkedHashSet.from(list8);
- expect(const SetEquality().equals(set1, set2),
- isFalse);
+ expect(const SetEquality().equals(set1, set2), isFalse);
expect(const SetEquality(const IdentityEquality()).equals(set1, set2),
- isFalse);
+ isFalse);
});
test("SetInequality value", () {
var list7 = [o(1), o(3), o(5), o(4), o(6)];
var set1 = new HashSet.from(list1);
var set2 = new LinkedHashSet.from(list7);
- expect(const SetEquality().equals(set1, set2),
- isFalse);
+ expect(const SetEquality().equals(set1, set2), isFalse);
expect(const SetEquality(const IdentityEquality()).equals(set1, set2),
- isFalse);
+ isFalse);
});
- var map1a = {"x": [o(1), o(2), o(3)], "y": [true, false, null]};
- var map1b = {"x": [o(4), o(5), o(6)], "y": [false, true, null]};
- var map2a = {"x": [o(3), o(2), o(1)], "y": [false, true, null]};
- var map2b = {"x": [o(6), o(5), o(4)], "y": [null, false, true]};
+ var map1a = {
+ "x": [o(1), o(2), o(3)],
+ "y": [true, false, null]
+ };
+ var map1b = {
+ "x": [o(4), o(5), o(6)],
+ "y": [false, true, null]
+ };
+ var map2a = {
+ "x": [o(3), o(2), o(1)],
+ "y": [false, true, null]
+ };
+ var map2b = {
+ "x": [o(6), o(5), o(4)],
+ "y": [null, false, true]
+ };
var l1 = [map1a, map1b];
var l2 = [map2a, map2b];
- var s1 = new Set.from(l1);
- var s2 = new Set.from([map2b, map2a]);
+ var s1 = new Set<Map>.from(l1);
+ var s2 = new Set<Map>.from([map2b, map2a]);
test("RecursiveEquality", () {
const unordered = const UnorderedIterableEquality();
- expect(unordered.equals(map1a["x"], map2a["x"]),
- isTrue);
- expect(unordered.equals(map1a["y"], map2a["y"]),
- isTrue);
- expect(unordered.equals(map1b["x"], map2b["x"]),
- isTrue);
- expect(unordered.equals(map1b["y"], map2b["y"]),
- isTrue);
+ expect(unordered.equals(map1a["x"], map2a["x"]), isTrue);
+ expect(unordered.equals(map1a["y"], map2a["y"]), isTrue);
+ expect(unordered.equals(map1b["x"], map2b["x"]), isTrue);
+ expect(unordered.equals(map1b["y"], map2b["y"]), isTrue);
const mapval = const MapEquality(values: unordered);
- expect(
- mapval.equals(map1a, map2a),
- isTrue);
- expect(mapval.equals(map1b, map2b),
- isTrue);
+ expect(mapval.equals(map1a, map2a), isTrue);
+ expect(mapval.equals(map1b, map2b), isTrue);
const listmapval = const ListEquality(mapval);
- expect(listmapval.equals(l1, l2),
- isTrue);
- const setmapval = const SetEquality(mapval);
- expect(setmapval.equals(s1, s2),
- isTrue);
+ expect(listmapval.equals(l1, l2), isTrue);
+ const setmapval = const SetEquality<Map>(mapval);
+ expect(setmapval.equals(s1, s2), isTrue);
});
test("DeepEquality", () {
var colleq = const DeepCollectionEquality.unordered();
- expect(colleq.equals(map1a["x"], map2a["x"]),
- isTrue);
- expect(colleq.equals(map1a["y"], map2a["y"]),
- isTrue);
- expect(colleq.equals(map1b["x"], map2b["x"]),
- isTrue);
- expect(colleq.equals(map1b["y"], map2b["y"]),
- isTrue);
- expect(colleq.equals(map1a, map2a),
- isTrue);
- expect(colleq.equals(map1b, map2b),
- isTrue);
- expect(colleq.equals(l1, l2),
- isTrue);
- expect(colleq.equals(s1, s2),
- isTrue);
+ expect(colleq.equals(map1a["x"], map2a["x"]), isTrue);
+ expect(colleq.equals(map1a["y"], map2a["y"]), isTrue);
+ expect(colleq.equals(map1b["x"], map2b["x"]), isTrue);
+ expect(colleq.equals(map1b["y"], map2b["y"]), isTrue);
+ expect(colleq.equals(map1a, map2a), isTrue);
+ expect(colleq.equals(map1b, map2b), isTrue);
+ expect(colleq.equals(l1, l2), isTrue);
+ expect(colleq.equals(s1, s2), isTrue);
+ });
+
+ test("CaseInsensitiveEquality", () {
+ var equality = const CaseInsensitiveEquality();
+ expect(equality.equals("foo", "foo"), isTrue);
+ expect(equality.equals("fOo", "FoO"), isTrue);
+ expect(equality.equals("FoO", "fOo"), isTrue);
+ expect(equality.equals("foo", "bar"), isFalse);
+ expect(equality.equals("fÕÕ", "fõõ"), isFalse);
+
+ expect(equality.hash("foo"), equals(equality.hash("foo")));
+ expect(equality.hash("fOo"), equals(equality.hash("FoO")));
+ expect(equality.hash("FoO"), equals(equality.hash("fOo")));
+ expect(equality.hash("foo"), isNot(equals(equality.hash("bar"))));
+ expect(equality.hash("fÕÕ"), isNot(equals(equality.hash("fõõ"))));
+ });
+
+ group("EqualityBy should use a derived value for ", () {
+ var firstEquality = new EqualityBy<List<String>, String>((e) => e.first);
+ var firstInsensitiveEquality = new EqualityBy<List<String>, String>(
+ (e) => e.first, const CaseInsensitiveEquality());
+ var firstObjectEquality = new EqualityBy<List<Object>, Object>(
+ (e) => e.first, const IterableEquality());
+
+ test("equality", () {
+ expect(firstEquality.equals(["foo", "foo"], ["foo", "bar"]), isTrue);
+ expect(firstEquality.equals(["foo", "foo"], ["bar", "bar"]), isFalse);
+ });
+
+ test("equality with an inner equality", () {
+ expect(firstInsensitiveEquality.equals(["fOo"], ["FoO"]), isTrue);
+ expect(firstInsensitiveEquality.equals(["foo"], ["ffõõ"]), isFalse);
+ });
+
+ test("hash", () {
+ expect(firstEquality.hash(["foo", "bar"]), "foo".hashCode);
+ });
+
+ test("hash with an inner equality", () {
+ expect(firstInsensitiveEquality.hash(["fOo"]),
+ const CaseInsensitiveEquality().hash("foo"));
+ });
+
+ test("isValidKey", () {
+ expect(firstEquality.isValidKey(["foo"]), isTrue);
+ expect(firstEquality.isValidKey("foo"), isFalse);
+ expect(firstEquality.isValidKey([1]), isFalse);
+ });
+
+ test('isValidKey with an inner equality', () {
+ expect(firstObjectEquality.isValidKey([[]]), isTrue);
+ expect(firstObjectEquality.isValidKey([{}]), isFalse);
+ });
+ });
+
+ test("Equality accepts null", () {
+ var ie = new IterableEquality();
+ var le = new ListEquality();
+ var se = new SetEquality();
+ var me = new MapEquality();
+ expect(ie.equals(null, null), true);
+ expect(ie.equals([], null), false);
+ expect(ie.equals(null, []), false);
+ expect(ie.hash(null), null.hashCode);
+
+ expect(le.equals(null, null), true);
+ expect(le.equals([], null), false);
+ expect(le.equals(null, []), false);
+ expect(le.hash(null), null.hashCode);
+
+ expect(se.equals(null, null), true);
+ expect(se.equals(new Set(), null), false);
+ expect(se.equals(null, new Set()), false);
+ expect(se.hash(null), null.hashCode);
+
+ expect(me.equals(null, null), true);
+ expect(me.equals({}, null), false);
+ expect(me.equals(null, {}), false);
+ expect(me.hash(null), null.hashCode);
});
}
@@ -170,6 +238,6 @@ class Element implements Comparable<Element> {
final Comparable id;
const Element(this.id);
int get hashCode => id.hashCode;
- bool operator==(Object other) => other is Element && id == other.id;
+ bool operator ==(Object other) => other is Element && id == other.id;
int compareTo(other) => id.compareTo(other.id);
}
« no previous file with comments | « packages/collection/test/equality_set_test.dart ('k') | packages/collection/test/functions_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698