| // 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); |
| } |