OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
6 import 'dart:collection'; | 6 import 'dart:collection'; |
7 | 7 |
8 main() { | 8 main() { |
9 defaultFunctionValuesTest(); | 9 defaultFunctionValuesTest(); |
10 defaultKeyFunctionTest(); | 10 defaultKeyFunctionTest(); |
11 defaultValueFunctionTest(); | 11 defaultValueFunctionTest(); |
12 noDefaultValuesTest(); | 12 noDefaultValuesTest(); |
13 emptyIterableTest(); | 13 emptyIterableTest(); |
14 equalElementsTest(); | 14 equalElementsTest(); |
15 genericTypeTest(); | 15 genericTypeTest(); |
16 } | 16 } |
17 | 17 |
18 void defaultFunctionValuesTest() { | 18 void defaultFunctionValuesTest() { |
19 var map = new LinkedHashMap.fromIterable([1, 2, 3]); | 19 var map = new LinkedHashMap.fromIterable([1, 2, 3]); |
20 | 20 |
21 Expect.isTrue(map is Map); | 21 Expect.isTrue(map is Map); |
22 Expect.isTrue(map is LinkedHashMap); | 22 Expect.isTrue(map is LinkedHashMap); |
23 Expect.isFalse(map is HashMap); | |
24 | 23 |
25 Expect.equals(3, map.length); | 24 Expect.equals(3, map.length); |
26 Expect.equals(3, map.keys.length); | 25 Expect.equals(3, map.keys.length); |
27 Expect.equals(3, map.values.length); | 26 Expect.equals(3, map.values.length); |
28 | 27 |
29 Expect.equals(1, map[1]); | 28 Expect.equals(1, map[1]); |
30 Expect.equals(2, map[2]); | 29 Expect.equals(2, map[2]); |
31 Expect.equals(3, map[3]); | 30 Expect.equals(3, map[3]); |
32 } | 31 } |
33 | 32 |
34 void defaultKeyFunctionTest() { | 33 void defaultKeyFunctionTest() { |
35 var map = new LinkedHashMap.fromIterable([1, 2, 3], value: (x) => x + 1); | 34 var map = new LinkedHashMap.fromIterable([1, 2, 3], value: (x) => x + 1); |
36 | 35 |
37 Expect.isTrue(map is Map); | 36 Expect.isTrue(map is Map); |
38 Expect.isTrue(map is LinkedHashMap); | 37 Expect.isTrue(map is LinkedHashMap); |
39 Expect.isFalse(map is HashMap); | |
40 | 38 |
41 Expect.equals(3, map.length); | 39 Expect.equals(3, map.length); |
42 Expect.equals(3, map.keys.length); | 40 Expect.equals(3, map.keys.length); |
43 Expect.equals(3, map.values.length); | 41 Expect.equals(3, map.values.length); |
44 | 42 |
45 Expect.equals(2, map[1]); | 43 Expect.equals(2, map[1]); |
46 Expect.equals(3, map[2]); | 44 Expect.equals(3, map[2]); |
47 Expect.equals(4, map[3]); | 45 Expect.equals(4, map[3]); |
48 } | 46 } |
49 | 47 |
50 void defaultValueFunctionTest() { | 48 void defaultValueFunctionTest() { |
51 var map = new LinkedHashMap.fromIterable([1, 2, 3], key: (x) => x + 1); | 49 var map = new LinkedHashMap.fromIterable([1, 2, 3], key: (x) => x + 1); |
52 | 50 |
53 Expect.isTrue(map is Map); | 51 Expect.isTrue(map is Map); |
54 Expect.isTrue(map is LinkedHashMap); | 52 Expect.isTrue(map is LinkedHashMap); |
55 Expect.isFalse(map is HashMap); | |
56 | 53 |
57 Expect.equals(3, map.length); | 54 Expect.equals(3, map.length); |
58 Expect.equals(3, map.keys.length); | 55 Expect.equals(3, map.keys.length); |
59 Expect.equals(3, map.values.length); | 56 Expect.equals(3, map.values.length); |
60 | 57 |
61 Expect.equals(1, map[2]); | 58 Expect.equals(1, map[2]); |
62 Expect.equals(2, map[3]); | 59 Expect.equals(2, map[3]); |
63 Expect.equals(3, map[4]); | 60 Expect.equals(3, map[4]); |
64 } | 61 } |
65 | 62 |
66 void noDefaultValuesTest() { | 63 void noDefaultValuesTest() { |
67 var map = new LinkedHashMap.fromIterable([1, 2, 3], | 64 var map = new LinkedHashMap.fromIterable([1, 2, 3], |
68 key: (x) => x + 1, value: (x) => x - 1); | 65 key: (x) => x + 1, value: (x) => x - 1); |
69 | 66 |
70 Expect.isTrue(map is Map); | 67 Expect.isTrue(map is Map); |
71 Expect.isTrue(map is LinkedHashMap); | 68 Expect.isTrue(map is LinkedHashMap); |
72 Expect.isFalse(map is HashMap); | |
73 | 69 |
74 Expect.equals(3, map.length); | 70 Expect.equals(3, map.length); |
75 Expect.equals(3, map.keys.length); | 71 Expect.equals(3, map.keys.length); |
76 Expect.equals(3, map.values.length); | 72 Expect.equals(3, map.values.length); |
77 | 73 |
78 Expect.equals(0, map[2]); | 74 Expect.equals(0, map[2]); |
79 Expect.equals(1, map[3]); | 75 Expect.equals(1, map[3]); |
80 Expect.equals(2, map[4]); | 76 Expect.equals(2, map[4]); |
81 } | 77 } |
82 | 78 |
83 void emptyIterableTest() { | 79 void emptyIterableTest() { |
84 var map = new LinkedHashMap.fromIterable([]); | 80 var map = new LinkedHashMap.fromIterable([]); |
85 Expect.isTrue(map is Map); | 81 Expect.isTrue(map is Map); |
86 Expect.isTrue(map is LinkedHashMap); | 82 Expect.isTrue(map is LinkedHashMap); |
87 Expect.isFalse(map is HashMap); | |
88 | 83 |
89 Expect.equals(0, map.length); | 84 Expect.equals(0, map.length); |
90 Expect.equals(0, map.keys.length); | 85 Expect.equals(0, map.keys.length); |
91 Expect.equals(0, map.values.length); | 86 Expect.equals(0, map.values.length); |
92 } | 87 } |
93 | 88 |
94 void equalElementsTest() { | 89 void equalElementsTest() { |
95 var map = new LinkedHashMap.fromIterable([1, 2, 2], key: (x) => x + 1); | 90 var map = new LinkedHashMap.fromIterable([1, 2, 2], key: (x) => x + 1); |
96 | 91 |
97 Expect.isTrue(map is Map); | 92 Expect.isTrue(map is Map); |
98 Expect.isTrue(map is LinkedHashMap); | 93 Expect.isTrue(map is LinkedHashMap); |
99 Expect.isFalse(map is HashMap); | |
100 | 94 |
101 Expect.equals(2, map.length); | 95 Expect.equals(2, map.length); |
102 Expect.equals(2, map.keys.length); | 96 Expect.equals(2, map.keys.length); |
103 Expect.equals(2, map.values.length); | 97 Expect.equals(2, map.values.length); |
104 | 98 |
105 Expect.equals(1, map[2]); | 99 Expect.equals(1, map[2]); |
106 Expect.equals(2, map[3]); | 100 Expect.equals(2, map[3]); |
107 } | 101 } |
108 | 102 |
109 void genericTypeTest() { | 103 void genericTypeTest() { |
110 var map = new LinkedHashMap<int, String>.fromIterable([1, 2, 3], value: (x) =>
'$x'); | 104 var map = new LinkedHashMap<int, String>.fromIterable([1, 2, 3], value: (x) =>
'$x'); |
111 Expect.isTrue(map is Map<int, String>); | 105 Expect.isTrue(map is Map<int, String>); |
112 Expect.isTrue(map is LinkedHashMap<int, String>); | 106 Expect.isTrue(map is LinkedHashMap<int, String>); |
113 | 107 |
114 // Make sure it is not just LinkedHashMap<dynamic, dynamic>. | 108 // Make sure it is not just LinkedHashMap<dynamic, dynamic>. |
115 Expect.isFalse(map is LinkedHashMap<String, dynamic>); | 109 Expect.isFalse(map is LinkedHashMap<String, dynamic>); |
116 Expect.isFalse(map is LinkedHashMap<dynamic, int>); | 110 Expect.isFalse(map is LinkedHashMap<dynamic, int>); |
117 } | 111 } |
118 | 112 |
OLD | NEW |