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

Side by Side Diff: packages/collection/test/canonicalized_map_test.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 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
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 import "package:collection/collection.dart"; 5 import "package:collection/collection.dart";
6 import "package:test/test.dart"; 6 import "package:test/test.dart";
7 7
8 void main() { 8 void main() {
9 group("with an empty canonicalized map", () { 9 group("with an empty canonicalized map", () {
10 var map; 10 var map;
11 setUp(() { 11 setUp(() {
12 map = new CanonicalizedMap<int, String, String>(int.parse, 12 map = new CanonicalizedMap<int, String, String>(int.parse,
13 isValidKey: new RegExp(r"^\d+$").hasMatch); 13 isValidKey: (s) => new RegExp(r"^\d+$").hasMatch(s));
14 }); 14 });
15 15
16 test("canonicalizes keys on set and get", () { 16 test("canonicalizes keys on set and get", () {
17 map["1"] = "value"; 17 map["1"] = "value";
18 expect(map["01"], equals("value")); 18 expect(map["01"], equals("value"));
19 }); 19 });
20 20
21 test("get returns null for uncanonicalizable key", () { 21 test("get returns null for uncanonicalizable key", () {
22 expect(map["foo"], isNull); 22 expect(map["foo"], isNull);
23 }); 23 });
24 24
25 test("set affects nothing for uncanonicalizable key", () {
26 map["foo"] = "value";
27 expect(map["foo"], isNull);
28 expect(map.containsKey("foo"), isFalse);
29 expect(map.length, equals(0));
30 });
31
25 test("canonicalizes keys for addAll", () { 32 test("canonicalizes keys for addAll", () {
26 map.addAll({ 33 map.addAll({"1": "value 1", "2": "value 2", "3": "value 3"});
27 "1": "value 1",
28 "2": "value 2",
29 "3": "value 3"
30 });
31 expect(map["01"], equals("value 1")); 34 expect(map["01"], equals("value 1"));
32 expect(map["02"], equals("value 2")); 35 expect(map["02"], equals("value 2"));
33 expect(map["03"], equals("value 3")); 36 expect(map["03"], equals("value 3"));
34 }); 37 });
35 38
36 test("uses the final value for addAll collisions", () { 39 test("uses the final value for addAll collisions", () {
37 map.addAll({ 40 map.addAll({"1": "value 1", "01": "value 2", "001": "value 3"});
38 "1": "value 1",
39 "01": "value 2",
40 "001": "value 3"
41 });
42 expect(map.length, equals(1)); 41 expect(map.length, equals(1));
43 expect(map["0001"], equals("value 3")); 42 expect(map["0001"], equals("value 3"));
44 }); 43 });
45 44
46 test("clear clears the map", () { 45 test("clear clears the map", () {
47 map.addAll({ 46 map.addAll({"1": "value 1", "2": "value 2", "3": "value 3"});
48 "1": "value 1",
49 "2": "value 2",
50 "3": "value 3"
51 });
52 expect(map, isNot(isEmpty)); 47 expect(map, isNot(isEmpty));
53 map.clear(); 48 map.clear();
54 expect(map, isEmpty); 49 expect(map, isEmpty);
55 }); 50 });
56 51
57 test("canonicalizes keys for containsKey", () { 52 test("canonicalizes keys for containsKey", () {
58 map["1"] = "value"; 53 map["1"] = "value";
59 expect(map.containsKey("01"), isTrue); 54 expect(map.containsKey("01"), isTrue);
60 expect(map.containsKey("2"), isFalse); 55 expect(map.containsKey("2"), isFalse);
61 }); 56 });
62 57
63 test("containsKey returns false for uncanonicalizable key", () { 58 test("containsKey returns false for uncanonicalizable key", () {
64 expect(map.containsKey("foo"), isFalse); 59 expect(map.containsKey("foo"), isFalse);
65 }); 60 });
66 61
67 test("canonicalizes keys for putIfAbsent", () { 62 test("canonicalizes keys for putIfAbsent", () {
68 map["1"] = "value"; 63 map["1"] = "value";
69 expect(map.putIfAbsent("01", () => throw "shouldn't run"), 64 expect(
70 equals("value")); 65 map.putIfAbsent("01", () => throw "shouldn't run"), equals("value"));
71 expect(map.putIfAbsent("2", () => "new value"), equals("new value")); 66 expect(map.putIfAbsent("2", () => "new value"), equals("new value"));
72 }); 67 });
73 68
74 test("canonicalizes keys for remove", () { 69 test("canonicalizes keys for remove", () {
75 map["1"] = "value"; 70 map["1"] = "value";
76 expect(map.remove("2"), isNull); 71 expect(map.remove("2"), isNull);
77 expect(map.remove("01"), equals("value")); 72 expect(map.remove("01"), equals("value"));
78 expect(map, isEmpty); 73 expect(map, isEmpty);
79 }); 74 });
80 75
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 test("uses original keys for forEach", () { 118 test("uses original keys for forEach", () {
124 map["001"] = "value 1"; 119 map["001"] = "value 1";
125 map["02"] = "value 2"; 120 map["02"] = "value 2";
126 121
127 var keys = []; 122 var keys = [];
128 map.forEach((key, value) => keys.add(key)); 123 map.forEach((key, value) => keys.add(key));
129 expect(keys, equals(["001", "02"])); 124 expect(keys, equals(["001", "02"]));
130 }); 125 });
131 126
132 test("values returns all values in the map", () { 127 test("values returns all values in the map", () {
133 map.addAll({ 128 map.addAll(
134 "1": "value 1", 129 {"1": "value 1", "01": "value 01", "2": "value 2", "03": "value 03"});
135 "01": "value 01",
136 "2": "value 2",
137 "03": "value 03"
138 });
139 130
140 expect(map.values, equals(["value 01", "value 2", "value 03"])); 131 expect(map.values, equals(["value 01", "value 2", "value 03"]));
141 }); 132 });
142 }); 133 });
143 134
144 group("CanonicalizedMap.from", () { 135 group("CanonicalizedMap.from", () {
145 test("canonicalizes its keys", () { 136 test("canonicalizes its keys", () {
146 var map = new CanonicalizedMap.from({ 137 var map = new CanonicalizedMap.from(
147 "1": "value 1", 138 {"1": "value 1", "2": "value 2", "3": "value 3"}, int.parse);
148 "2": "value 2",
149 "3": "value 3"
150 }, int.parse);
151 expect(map["01"], equals("value 1")); 139 expect(map["01"], equals("value 1"));
152 expect(map["02"], equals("value 2")); 140 expect(map["02"], equals("value 2"));
153 expect(map["03"], equals("value 3")); 141 expect(map["03"], equals("value 3"));
154 }); 142 });
155 143
156 test("uses the final value for collisions", () { 144 test("uses the final value for collisions", () {
157 var map = new CanonicalizedMap.from({ 145 var map = new CanonicalizedMap.from(
158 "1": "value 1", 146 {"1": "value 1", "01": "value 2", "001": "value 3"}, int.parse);
159 "01": "value 2",
160 "001": "value 3"
161 }, int.parse);
162 expect(map.length, equals(1)); 147 expect(map.length, equals(1));
163 expect(map["0001"], equals("value 3")); 148 expect(map["0001"], equals("value 3"));
164 }); 149 });
165 }); 150 });
166 } 151 }
OLDNEW
« no previous file with comments | « packages/collection/test/algorithms_test.dart ('k') | packages/collection/test/combined_wrapper/iterable_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698