| // 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) |
| * An error occurs if the start and end are not valid ranges at the time of the |
| * call to this method. |
| * @description Checks that an error is thrown if the start and end are not |
| * valid ranges. |
| * @author vasya |
| */ |
| library getRange_A03_t01; |
| |
| import "../../../Utils/expect.dart"; |
| |
| test(List<E> create<E>([int length, E fill])) { |
| |
| void check1(List list, int start, int length) { |
| Expect.throws(() {list.getRange(start, start + length);}, |
| (e) => e is RangeError); |
| } |
| |
| void check(List a0, int start, int end) { |
| List list = create(); |
| list.addAll(a0); |
| check1(list, start, end); |
| |
| list = create(a0.length, 0); |
| list.setRange(0, a0.length, a0); |
| check1(list, start, end); |
| } |
| |
| check(new List.filled(0, 0), 0, 1); |
| check(new List.filled(10, 0), 1, 10); |
| check(new List.filled(1099, 0), 0, 1100); |
| check(new List.filled(10789, 0), 10000, 10000); |
| |
| List l = new List.empty(growable: true); |
| check(l, 0, 1); |
| l.length = 10; |
| check(l, 1, 10); |
| l.length = 1099; |
| check(l, 0, 1100); |
| l.length = 10789; |
| check(l, 10000, 10000); |
| |
| l = []; |
| check(l, 0, 1); |
| l.length = 10; |
| check(l, 1, 10); |
| l.length = 1099; |
| check(l, 0, 1100); |
| l.length = 10789; |
| check(l, 10000, 10000); |
| } |