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

Side by Side Diff: test/codegen/corelib/for_in_test.dart

Issue 1945153002: Add corelib tests (Closed) Base URL: https://github.com/dart-lang/dev_compiler@master
Patch Set: error_test and range_error_test now pass Created 4 years, 7 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) 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 import "package:expect/expect.dart";
6
7 class ForInTest {
8 static testMain() {
9 testSimple();
10 testBreak();
11 testContinue();
12 testClosure();
13 }
14
15 static Set<int> getSmallSet() {
16 Set<int> set = new Set<int>();
17 set.add(1);
18 set.add(2);
19 set.add(4);
20 return set;
21 }
22
23 static void testSimple() {
24 Set<int> set = getSmallSet();
25 int count = 0;
26 for (final i in set) {
27 count += i;
28 }
29 Expect.equals(7, count);
30
31 count = 0;
32 for (var i in set) {
33 count += i;
34 }
35 Expect.equals(7, count);
36
37 count = 0;
38 for (int i in set) {
39 count += i;
40 }
41 Expect.equals(7, count);
42
43 count = 0;
44 for (final int i in set) {
45 count += i;
46 }
47 Expect.equals(7, count);
48
49 count = 0;
50 int i = 0;
51 Expect.equals(false, set.contains(i)); // Used to test [i] after loop.
52 for (i in set) {
53 count += i;
54 }
55 Expect.equals(7, count);
56 Expect.equals(true, set.contains(i));
57 // The default implementation of [Set] preserves order.
58 Expect.equals(4, i);
59 }
60
61 static void testBreak() {
62 Set<int> set = getSmallSet();
63 int count = 0;
64 for (final i in set) {
65 if (i == 4) break;
66 count += i;
67 }
68 Expect.equals(true, count < 4);
69 }
70
71 static void testContinue() {
72 Set<int> set = getSmallSet();
73 int count = 0;
74 for (final i in set) {
75 if (i < 4) continue;
76 count += i;
77 }
78 Expect.equals(4, count);
79 }
80
81 static void testClosure() {
82 Set<int> set = getSmallSet();
83 List<Function> closures = new List(set.length);
84 int index = 0;
85 for (var i in set) {
86 closures[index++] = () => i;
87 }
88
89 Expect.equals(index, set.length);
90 Expect.equals(7, closures[0]() + closures[1]() + closures[2]());
91 }
92 }
93
94 main() {
95 ForInTest.testMain();
96 }
OLDNEW
« no previous file with comments | « test/codegen/corelib/file_resource_test.dart ('k') | test/codegen/corelib/format_exception_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698