// 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 Iterable<E> where(bool f(E element))
 * Returns a lazy Iterable with all elements that satisfy the predicate f.
 * @description Checks that the given function is not executed and an empty
 * collection is returned if this Iterable is empty.
 * @author iefremov
 */
library where_A01_t03;

import "../../../Utils/expect.dart";

test(Iterable create([Iterable content])) {
  Iterable a = create([]).where((var v) {
    return true;
  });
  Iterator it = a.iterator;
  while (it.moveNext()) {}
  Expect.isTrue(a.isEmpty);

  a = create([]).where((var v) {
    Expect.fail("Should not be executed");
    return false;
  });
  it = a.iterator;
  while (it.moveNext()) {}
  Expect.isTrue(a.isEmpty);
}
