Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Unified Diff: tests/corelib/queue_test.dart

Issue 1001863002: Fix DoubleLinkedQueue so that appending to entries also update the queue length. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix type warnings. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/collection/queue.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/corelib/queue_test.dart
diff --git a/tests/corelib/queue_test.dart b/tests/corelib/queue_test.dart
index cb4f2c7634857bd32b5760b7e82db4b257bbf0cf..e9a96b8dc66c586ee0d4d7b5ffa7ca9bfe288521 100644
--- a/tests/corelib/queue_test.dart
+++ b/tests/corelib/queue_test.dart
@@ -399,7 +399,7 @@ class DoubleLinkedQueueTest extends QueueTest {
}
void testQueueElements() {
- DoubleLinkedQueue<int> queue1 = new DoubleLinkedQueue<int>.from([1, 2, 4]);
+ DoubleLinkedQueue<int> queue1 = new DoubleLinkedQueue<int>.from([1, 2, 3]);
DoubleLinkedQueue<int> queue2 = new DoubleLinkedQueue<int>();
queue2.addAll(queue1);
@@ -412,11 +412,67 @@ class DoubleLinkedQueueTest extends QueueTest {
entry2 = entry2.nextEntry();
}
Expect.equals(null, entry2);
+
+ var firstEntry = queue1.firstEntry();
+ var secondEntry = queue1.firstEntry().nextEntry();
+ var thirdEntry = queue1.lastEntry();
+ firstEntry.prepend(4);
+ firstEntry.append(5);
+ secondEntry.prepend(6);
+ secondEntry.append(7);
+ thirdEntry.prepend(8);
+ thirdEntry.append(9);
+ Expect.equals(9, queue1.length);
+ Expect.listEquals(queue1.toList(), [4, 1, 5, 6, 2, 7, 8, 3, 9]);
+ Expect.equals(1, firstEntry.remove());
+ Expect.equals(2, secondEntry.remove());
+ Expect.equals(3, thirdEntry.remove());
+ Expect.equals(6, queue1.length);
+ Expect.listEquals(queue1.toList(), [4, 5, 6, 7, 8, 9]);
}
}
+void linkEntryTest() {
+ var entry = new DoubleLinkedQueueEntry(42);
+ Expect.equals(null, entry.previousEntry());
+ Expect.equals(null, entry.nextEntry());
+
+ entry.append(37);
+ entry.prepend(87);
+ var prev = entry.previousEntry();
+ var next = entry.nextEntry();
+ Expect.equals(42, entry.element);
+ Expect.equals(37, next.element);
+ Expect.equals(87, prev.element);
+ Expect.identical(entry, prev.nextEntry());
+ Expect.identical(entry, next.previousEntry());
+ Expect.equals(null, next.nextEntry());
+ Expect.equals(null, prev.previousEntry());
+
+ entry.element = 117;
+ Expect.equals(117, entry.element);
+ Expect.identical(next, entry.nextEntry());
+ Expect.identical(prev, entry.previousEntry());
+
+ Expect.equals(117, entry.remove());
+ Expect.identical(next, prev.nextEntry());
+ Expect.identical(prev, next.previousEntry());
+ Expect.equals(null, next.nextEntry());
+ Expect.equals(null, prev.previousEntry());
+ Expect.equals(37, next.element);
+ Expect.equals(87, prev.element);
+
+ Expect.equals(37, next.remove());
+ Expect.equals(87, prev.element);
+ Expect.equals(null, prev.nextEntry());
+ Expect.equals(null, prev.previousEntry());
+
+ Expect.equals(87, prev.remove());
+}
+
main() {
new DoubleLinkedQueueTest().testMain();
new ListQueueTest().testMain();
+ linkEntryTest();
}
« no previous file with comments | « sdk/lib/collection/queue.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698