blob: 8edeb35b483dd0e9e38151946f30f50f5fafbb59 [file] [log] [blame]
// Copyright (c) 2017, 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 reduce(E combine(E value, E element))
* The iterable must have at least one element.
* @description Checks that [StateError] is thrown if given list is empty.
* @author iarkh@unipro.ru
*/
import "../../../Utils/expect.dart";
import "dart:collection";
import "LinkedList.lib.dart";
check(combine) {
LinkedList<MyLinkedListEntry<int>> list = toLinkedList([]);
MyLinkedListEntry<int> combine2(
MyLinkedListEntry<int> value, MyLinkedListEntry<int> element) =>
new MyLinkedListEntry<int>(combine(value.value, element.value));
Expect.throws(() { list.reduce(combine2).value; }, (e) => e is StateError);
}
main() {
check((value, element) => value + element);
check((value, element) => 10);
}