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

Side by Side Diff: tests/corelib/list_as_map_test.dart

Issue 2994543002: Migrated test block 13 to Dart 2.0. (Closed)
Patch Set: Address Bob's nits 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
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 import "package:expect/expect.dart";
6
7 void testListMapCorrespondence(List list, Map map) {
8 Expect.equals(list.length, map.length);
9 for (int i = 0; i < list.length; i++) {
10 Expect.equals(list[i], map[i]);
11 }
12 Expect.isNull(map[list.length]);
13 Expect.isNull(map[-1]);
14
15 Iterable keys = map.keys;
16 Iterable values = map.values;
17 Expect.isFalse(keys is List);
18 Expect.isFalse(values is List);
19 Expect.equals(list.length, keys.length);
20 Expect.equals(list.length, values.length);
21 for (int i = 0; i < list.length; i++) {
22 Expect.equals(i, keys.elementAt(i));
23 Expect.equals(list[i], values.elementAt(i));
24 }
25
26 int forEachCount = 0;
27 map.forEach((key, value) {
28 Expect.equals(forEachCount, key);
29 Expect.equals(list[key], value);
30 forEachCount++;
31 });
32
33 for (int i = 0; i < list.length; i++) {
34 Expect.isTrue(map.containsKey(i));
35 Expect.isTrue(map.containsValue(list[i]));
36 }
37 Expect.isFalse(map.containsKey(-1));
38 Expect.isFalse(map.containsKey(list.length));
39
40 Expect.equals(list.length, forEachCount);
41
42 Expect.equals(list.isEmpty, map.isEmpty);
43 }
44
45 void testConstAsMap(List list) {
46 Map<int, dynamic> map = list.asMap();
47
48 testListMapCorrespondence(list, map);
49
50 Expect.throws(() => map[0] = 499, (e) => e is UnsupportedError);
51 Expect.throws(
52 () => map.putIfAbsent(0, () => 499), (e) => e is UnsupportedError);
53 Expect.throws(() => map.clear(), (e) => e is UnsupportedError);
54 }
55
56 void testFixedAsMap(List list) {
57 testConstAsMap(list);
58
59 Map<int, dynamic> map = list.asMap();
60
61 if (!list.isEmpty) {
62 list[0] = 499;
63 // Check again to make sure the map is backed by the list.
64 testListMapCorrespondence(list, map);
65 }
66 }
67
68 void testAsMap(List list) {
69 testFixedAsMap(list);
70
71 Map<int, dynamic> map = list.asMap();
72
73 Iterable keys = map.keys;
74 Iterable values = map.values;
75
76 list.add(42);
77 // Check again to make sure the map is backed by the list and that the
78 // length is not cached.
79 testListMapCorrespondence(list, map);
80 // Also check that the keys and values iterable from the map are backed by
81 // the list.
82 Expect.equals(list.length, keys.length);
83 Expect.equals(values.length, values.length);
84 }
85
86 main() {
87 testConstAsMap(const [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
88 testAsMap([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
89 List list = new List(10);
90 for (int i = 0; i < 10; i++) list[i] = i + 1;
91 testFixedAsMap(list);
92
93 testConstAsMap(const []);
94 testAsMap([]);
95 testFixedAsMap(new List(0));
96 }
OLDNEW
« no previous file with comments | « tests/corelib/linked_hash_map_test.dart ('k') | tests/corelib/list_contains_argument_order_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698