OLD | NEW |
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:expect/expect.dart"; | 5 import "package:expect/expect.dart"; |
6 import 'dart:collection'; | 6 import 'dart:collection'; |
7 import 'dart:typed_data'; | 7 import 'dart:typed_data'; |
8 | 8 |
9 class MyList extends ListBase { | 9 class MyList extends ListBase { |
10 List list; | 10 List list; |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 testModification(base, modify, transform) { | 116 testModification(base, modify, transform) { |
117 var iterable = transform(base); | 117 var iterable = transform(base); |
118 Expect.throws(() { | 118 Expect.throws(() { |
119 iterable.fold(0, (x, y) { | 119 iterable.fold(0, (x, y) { |
120 modify(base); | 120 modify(base); |
121 return x + y; | 121 return x + y; |
122 }); | 122 }); |
123 }, (e) => e is ConcurrentModificationError); | 123 }, (e) => e is ConcurrentModificationError); |
124 } | 124 } |
125 | 125 |
126 void add4(collection) { if (collection.length < 10) collection.add(4); } | 126 void add4(collection) { collection.add(4); } |
127 void addList4(collection) { if (collection.length < 10) collection.add([4]); } | |
128 void put4(map) { map[4] = 4; } | 127 void put4(map) { map[4] = 4; } |
129 | 128 |
130 testModification([1, 2, 3], add4, id); | 129 testModification([1, 2, 3], add4, id); |
131 testModification(new HashSet()..add(1)..add(2)..add(3), add4, id); | 130 testModification(new HashSet()..add(1)..add(2)..add(3), add4, id); |
132 testModification(new LinkedHashSet()..add(1)..add(2)..add(3), add4, id); | 131 testModification(new LinkedHashSet()..add(1)..add(2)..add(3), add4, id); |
133 testModification(new SplayTreeSet()..add(1)..add(2)..add(3), add4, id); | 132 testModification(new SplayTreeSet()..add(1)..add(2)..add(3), add4, id); |
134 testModification(new MyList([1, 2, 3]), add4, id); | 133 testModification(new MyList([1, 2, 3]), add4, id); |
135 | 134 |
136 testModification([0, 1, 2, 3], add4, (x) => x.where((x) => x > 0)); | 135 testModification([0, 1, 2, 3], add4, (x) => x.where((x) => x > 0)); |
137 testModification([0, 1, 2], add4, (x) => x.map((x) => x + 1)); | 136 testModification([0, 1, 2], add4, (x) => x.map((x) => x + 1)); |
138 testModification([[1, 2], [3]], addList4, (x) => x.expand((x) => x)); | 137 testModification([[1, 2], [3]], add4, (x) => x.expand((x) => x)); |
139 testModification([3, 2, 1], add4, (x) => x.reversed); | 138 testModification([3, 2, 1], add4, (x) => x.reversed); |
140 testModification({1: 1, 2: 2, 3: 3}, put4, (x) => x.keys); | 139 testModification({1: 1, 2: 2, 3: 3}, put4, (x) => x.keys); |
141 testModification({1: 1, 2: 2, 3: 3}, put4, (x) => x.values); | 140 testModification({1: 1, 2: 2, 3: 3}, put4, (x) => x.values); |
142 var hashMap = new HashMap()..[1] = 1..[2] = 2..[3] = 3; | 141 var hashMap = new HashMap()..[1] = 1..[2] = 2..[3] = 3; |
143 testModification(hashMap, put4, (x) => x.keys); | 142 testModification(hashMap, put4, (x) => x.keys); |
144 hashMap = new HashMap()..[1] = 1..[2] = 2..[3] = 3; | 143 hashMap = new HashMap()..[1] = 1..[2] = 2..[3] = 3; |
145 testModification(hashMap, put4, (x) => x.values); | 144 testModification(hashMap, put4, (x) => x.values); |
146 var splayMap = new SplayTreeMap()..[1] = 1..[2] = 2..[3] = 3; | 145 var splayMap = new SplayTreeMap()..[1] = 1..[2] = 2..[3] = 3; |
147 testModification(splayMap, put4, (x) => x.keys); | 146 testModification(splayMap, put4, (x) => x.keys); |
148 splayMap = new SplayTreeMap()..[1] = 1..[2] = 2..[3] = 3; | 147 splayMap = new SplayTreeMap()..[1] = 1..[2] = 2..[3] = 3; |
149 testModification(splayMap, put4, (x) => x.values); | 148 testModification(splayMap, put4, (x) => x.values); |
150 } | 149 } |
OLD | NEW |