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 library queue.test; | 5 library queue.test; |
6 | 6 |
7 import "package:expect/expect.dart"; | 7 import "package:expect/expect.dart"; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 | 9 |
10 abstract class QueueTest { | 10 abstract class QueueTest { |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 } | 218 } |
219 | 219 |
220 for (int i = 1; i <= 5; i++) { | 220 for (int i = 1; i <= 5; i++) { |
221 Expect.equals(11 - i, queue.removeLast()); | 221 Expect.equals(11 - i, queue.removeLast()); |
222 testLength(35 - i, queue); | 222 testLength(35 - i, queue); |
223 } | 223 } |
224 | 224 |
225 queue.remove(10); | 225 queue.remove(10); |
226 testLength(29, queue); | 226 testLength(29, queue); |
227 | 227 |
228 queue.removeAll([4, 6]); | 228 queue.removeWhere((x) => x == 7); |
| 229 testLength(26, queue); |
| 230 |
| 231 queue.retainWhere((x) => x != 3); |
229 testLength(23, queue); | 232 testLength(23, queue); |
230 | 233 |
231 queue.retainAll([1, 3, 5, 7, 9, 10]); // Remove 2 and 8. | 234 Expect.listEquals( |
232 testLength(17, queue); | 235 [6, 8, 9, 1, 2, 4, 5, 6, 8, 9, 10, 1, 2, 4, 5, 6, 8, 9, 10, 1, 2, 4, 5], |
233 | 236 queue.toList()); |
234 queue.removeWhere((x) => x == 7); | |
235 testLength(14, queue); | |
236 | |
237 queue.retainWhere((x) => x != 3); | |
238 testLength(11, queue); | |
239 | |
240 Expect.listEquals([9, 1, 5, 9, 10, 1, 5, 9, 10, 1, 5], queue.toList()); | |
241 } | 237 } |
242 | 238 |
243 void testLarge() { | 239 void testLarge() { |
244 int N = 10000; | 240 int N = 10000; |
245 Set set = new Set(); | 241 Set set = new Set(); |
246 | 242 |
247 Queue queue = newQueue(); | 243 Queue queue = newQueue(); |
248 Expect.isTrue(queue.isEmpty); | 244 Expect.isTrue(queue.isEmpty); |
249 | 245 |
250 for (int i = 0; i < N; i++) { | 246 for (int i = 0; i < N; i++) { |
(...skipping 13 matching lines...) Expand all Loading... |
264 Expect.equals(-i, mapped.first); | 260 Expect.equals(-i, mapped.first); |
265 Expect.equals(i + 1, skip1.first); | 261 Expect.equals(i + 1, skip1.first); |
266 Expect.equals(i, queue.removeFirst()); | 262 Expect.equals(i, queue.removeFirst()); |
267 Expect.equals(i + 1, take1.first); | 263 Expect.equals(i + 1, take1.first); |
268 Expect.equals(-i - 1, mapped.first); | 264 Expect.equals(-i - 1, mapped.first); |
269 Expect.equals(N - 1 - i, queue.last); | 265 Expect.equals(N - 1 - i, queue.last); |
270 Expect.equals(N - 1 - i, queue.removeLast()); | 266 Expect.equals(N - 1 - i, queue.removeLast()); |
271 } | 267 } |
272 Expect.equals(N - 1000, queue.length); | 268 Expect.equals(N - 1000, queue.length); |
273 | 269 |
274 queue.retainAll(set); | |
275 Expect.equals(N - 1000, queue.length); | |
276 | |
277 queue.remove(N >> 1); | 270 queue.remove(N >> 1); |
278 Expect.equals(N - 1001, queue.length); | 271 Expect.equals(N - 1001, queue.length); |
279 | 272 |
280 queue.removeAll(set); | 273 queue.clear(); |
281 Expect.equals(0, queue.length); | 274 Expect.equals(0, queue.length); |
282 Expect.isTrue(queue.isEmpty); | 275 Expect.isTrue(queue.isEmpty); |
283 | 276 |
284 queue.addAll(set); | 277 queue.addAll(set); |
285 Expect.equals(N, queue.length); | 278 Expect.equals(N, queue.length); |
286 Expect.isFalse(queue.isEmpty); | 279 Expect.isFalse(queue.isEmpty); |
287 | 280 |
288 // Iterate. | 281 // Iterate. |
289 for (var element in queue) { | 282 for (var element in queue) { |
290 Expect.isTrue(set.contains(element)); | 283 Expect.isTrue(set.contains(element)); |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
405 } | 398 } |
406 Expect.equals(null, entry2); | 399 Expect.equals(null, entry2); |
407 } | 400 } |
408 } | 401 } |
409 | 402 |
410 | 403 |
411 main() { | 404 main() { |
412 new DoubleLinkedQueueTest().testMain(); | 405 new DoubleLinkedQueueTest().testMain(); |
413 new ListQueueTest().testMain(); | 406 new ListQueueTest().testMain(); |
414 } | 407 } |
OLD | NEW |