| // 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 class LinkedList<E extends LinkedListEntry> |
| /// Because the elements themselves contain the links of this linked list, each |
| /// element can be in only one list at a time. To add an element to another list, |
| /// it must first be removed from its current list (if any). |
| /// @description Checks that [LinkedListEntry] element cannot be in several lists |
| /// at a time. |
| /// @author iarkh@unipro.ru |
| |
| import "dart:collection"; |
| import "../../../Utils/expect.dart"; |
| import "LinkedList.lib.dart"; |
| |
| main() { |
| LinkedList<MyLinkedListEntry<int>> list1 = new LinkedList<MyLinkedListEntry<int>>(); |
| LinkedList<MyLinkedListEntry<int>> list2 = new LinkedList<MyLinkedListEntry<int>>(); |
| |
| MyLinkedListEntry<int> entry = new MyLinkedListEntry<int>(1); |
| list1.add(entry); |
| |
| Expect.throws(() { list2.add(entry); }); |
| Expect.throws(() { list1.add(entry); }); |
| |
| list1.remove(entry); |
| list2.add(entry); |
| |
| Expect.throws(() { list2.add(entry); }); |
| Expect.throws(() { list1.add(entry); }); |
| } |