| // Copyright (c) 2016, 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 Iterable<E> where(bool f(E element)) |
| /// ... |
| /// The matching elements have the same order in the returned iterable as they |
| /// have in iterator. |
| /// @description Checks that all elements of the returned have the same order as |
| /// they have in iterator |
| /// @author sgrekhov@unipro.ru |
| |
| library where_A02_t01; |
| |
| import "../../../Utils/expect.dart"; |
| |
| test(Iterable create([Iterable content])) { |
| |
| void check(Iterable source, bool f(element), Iterable expected) { |
| Iterable ret = create(source).where(f); |
| Iterator it = ret.iterator; |
| while(it.moveNext()) { |
| Expect.isTrue(f(it.current)); |
| } |
| Expect.iterableEquals(create(expected), ret); |
| } |
| |
| bool f(var e) { return (e >= 0); } |
| check([-1, 0, 1, 2, 3, 4], f, [0, 1, 2, 3, 4]); |
| check([-1, 0, 1, -2, 3, 4], f, [0, 1, 3, 4]); |
| check([1, 0, -1, 2, -3, 4], f, [1, 0, 2, 4]); |
| } |