blob: aface21bb931ac26b8518035a72bb4c7546bb143 [file] [log] [blame]
// 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.
/// @assertion abstract Iterable<E> getRange(int start, int end)
/// Returns an Iterable that iterators over the elements in the range start to
/// end exclusive. The result of this function is backed by this.
/// @description Checks lists with valid ranges.
/// @author vasya
library getRange_A01_t01;
import "../../../Utils/expect.dart";
test(List<E> create<E>([int length, E fill])) {
void check(List src, int start, int length) {
List a = create();
a.addAll(src);
Iterator dst = a.getRange(start, start+length).iterator;
for(int i = 0; dst.moveNext(); i++) {
Expect.equals(a[i+start], dst.current);
Expect.identical(a[i+start], dst.current);
}
}
List l = new List.filled(100, 0);
for (var i = 0; i < l.length; i++){
l[i] = i;
}
check(l, 0, 100);
check(l, 0, 1);
check(l, 99, 1);
check(l, 90, 9);
l = [];
for (var i = 0; i < 100; i++){
l.add(i);
}
check(l, 0, 100);
check(l, 0, 1);
check(l, 99, 1);
check(l, 90, 9);
l = new List.from([]);
for (var i = 0; i < 100; i++){
l.add(i);
}
check(l, 0, 100);
check(l, 0, 1);
check(l, 99, 1);
check(l, 90, 9);
}