OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 class ListIteratorsTest { | |
6 static void checkListIterator(List a) { | |
7 Iterator it = a.iterator(); | |
8 Expect.equals(false, it.hasNext() == a.isEmpty()); | |
9 for (int i = 0; i < a.length; i++) { | |
10 Expect.equals(true, it.hasNext()); | |
11 var elem = it.next(); | |
12 } | |
13 Expect.equals(false, it.hasNext()); | |
14 bool exceptionCaught = false; | |
15 try { | |
16 var eleme = it.next(); | |
17 } catch (NoMoreElementsException e) { | |
18 exceptionCaught = true; | |
19 } | |
20 Expect.equals(true, exceptionCaught); | |
21 } | |
22 | |
23 static testMain() { | |
24 checkListIterator([]); | |
25 checkListIterator([1, 2]); | |
26 checkListIterator(new List(0)); | |
27 checkListIterator(new List(10)); | |
28 checkListIterator(new List()); | |
29 List g = new List(); | |
30 g.addAll([1, 2]); | |
31 checkListIterator(g); | |
32 | |
33 Iterator it = g.iterator(); | |
34 Expect.equals(true, it.hasNext()); | |
35 g.removeLast(); | |
36 Expect.equals(true, it.hasNext()); | |
37 g.removeLast(); | |
38 Expect.equals(false, it.hasNext()); | |
39 | |
40 g.addAll([10, 20]); | |
41 int sum = 0; | |
42 for (var elem in g) { | |
43 sum += elem; | |
44 // Iterator must realize that g has no more elements. | |
45 g.removeLast(); | |
46 } | |
47 Expect.equals(10, sum); | |
48 } | |
49 } | |
50 | |
51 main() { | |
52 ListIteratorsTest.testMain(); | |
53 } | |
OLD | NEW |