blob: a6cd4eafa3699765682c117565418804efbe2e1d [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);
}