// 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 E singleWhere(bool test(E element))
/// If no or more than one element match then a StateError is thrown.
/// @description Checks that a StateError is thrown if no element match.
/// @author kaigorodov

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

check(Iterable a, bool f(value)) {
  Expect.throws(() {a.singleWhere(f);}, (e) => e is StateError);
}

test(Iterable create([Iterable content])) {
  check(create([1, 2, -3, 4]), (value) => value == 0);
  check(create(const[1,2,-5,-6]), (value) => value > 2);
}
