dart-sdk/tests/corelib_2/for_in_test.dart
Michael Thomsen e4cc3c98e5 [3.0 alpha] Remove deprecated dart:core List() constructor.
TEST=ci

Bug: Contributes to https://github.com/dart-lang/sdk/issues/49529
Change-Id: Ic129ef2d89f625d9ec6a7a1c301cffddd60b2ff7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258920
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2022-12-15 11:36:22 +00:00

99 lines
2 KiB
Dart

// 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.
// @dart = 2.9
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.filled(set.length, null);
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();
}