blob: d58f3260d61c9ff4f79db64ad2072d449f641171 [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 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); });
}