| Index: test/codegen/corelib/for_in_test.dart
|
| diff --git a/test/codegen/corelib/for_in_test.dart b/test/codegen/corelib/for_in_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..616d7211c284114f6c248c8d8102f7c0104d7556
|
| --- /dev/null
|
| +++ b/test/codegen/corelib/for_in_test.dart
|
| @@ -0,0 +1,96 @@
|
| +// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| +// for details. All rights reserved. Use of this source code is governed by a
|
| +// BSD-style license that can be found in the LICENSE file.
|
| +
|
| +import "package:expect/expect.dart";
|
| +
|
| +class ForInTest {
|
| + static testMain() {
|
| + testSimple();
|
| + testBreak();
|
| + testContinue();
|
| + testClosure();
|
| + }
|
| +
|
| + static Set<int> getSmallSet() {
|
| + Set<int> set = new Set<int>();
|
| + set.add(1);
|
| + set.add(2);
|
| + set.add(4);
|
| + return set;
|
| + }
|
| +
|
| + static void testSimple() {
|
| + Set<int> set = getSmallSet();
|
| + int count = 0;
|
| + for (final i in set) {
|
| + count += i;
|
| + }
|
| + Expect.equals(7, count);
|
| +
|
| + count = 0;
|
| + for (var i in set) {
|
| + count += i;
|
| + }
|
| + Expect.equals(7, count);
|
| +
|
| + count = 0;
|
| + for (int i in set) {
|
| + count += i;
|
| + }
|
| + Expect.equals(7, count);
|
| +
|
| + count = 0;
|
| + for (final int i in set) {
|
| + count += i;
|
| + }
|
| + Expect.equals(7, count);
|
| +
|
| + count = 0;
|
| + int i = 0;
|
| + Expect.equals(false, set.contains(i)); // Used to test [i] after loop.
|
| + for (i in set) {
|
| + count += i;
|
| + }
|
| + Expect.equals(7, count);
|
| + Expect.equals(true, set.contains(i));
|
| + // The default implementation of [Set] preserves order.
|
| + Expect.equals(4, i);
|
| + }
|
| +
|
| + static void testBreak() {
|
| + Set<int> set = getSmallSet();
|
| + int count = 0;
|
| + for (final i in set) {
|
| + if (i == 4) break;
|
| + count += i;
|
| + }
|
| + Expect.equals(true, count < 4);
|
| + }
|
| +
|
| + static void testContinue() {
|
| + Set<int> set = getSmallSet();
|
| + int count = 0;
|
| + for (final i in set) {
|
| + if (i < 4) continue;
|
| + count += i;
|
| + }
|
| + Expect.equals(4, count);
|
| + }
|
| +
|
| + static void testClosure() {
|
| + Set<int> set = getSmallSet();
|
| + List<Function> closures = new List(set.length);
|
| + int index = 0;
|
| + for (var i in set) {
|
| + closures[index++] = () => i;
|
| + }
|
| +
|
| + Expect.equals(index, set.length);
|
| + Expect.equals(7, closures[0]() + closures[1]() + closures[2]());
|
| + }
|
| +}
|
| +
|
| +main() {
|
| + ForInTest.testMain();
|
| +}
|
|
|