summaryrefslogtreecommitdiff
path: root/src/test/java/com/amazon/carbonado
diff options
context:
space:
mode:
authorBrian S. O'Neill <bronee@gmail.com>2007-05-21 00:12:37 +0000
committerBrian S. O'Neill <bronee@gmail.com>2007-05-21 00:12:37 +0000
commitf274f75f32349642fff582c641aec731de939eff (patch)
tree7cf9059d08cfeae78307f192ee5778a59d12ecba /src/test/java/com/amazon/carbonado
parentd4969b5a1e375145e5ca399be7fe9cb6b59f39e5 (diff)
Added ViewCursor class.
Diffstat (limited to 'src/test/java/com/amazon/carbonado')
-rw-r--r--src/test/java/com/amazon/carbonado/cursor/TestCursors.java77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/cursor/TestCursors.java b/src/test/java/com/amazon/carbonado/cursor/TestCursors.java
index fa5d8a7..b93fe11 100644
--- a/src/test/java/com/amazon/carbonado/cursor/TestCursors.java
+++ b/src/test/java/com/amazon/carbonado/cursor/TestCursors.java
@@ -92,6 +92,83 @@ public class TestCursors extends TestCase {
assertFalse(cursor.hasNext());
}
+ public void testView() throws Exception {
+ Cursor<Element> view;
+
+ // Empty source.
+ view = new ViewCursor<Element>(createElements(), 10, 100);
+ compareElements(view);
+ view = new ViewCursor<Element>(createElements(), 10, 10);
+ compareElements(view);
+
+ // start at zero
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 0, 100);
+ compareElements(view, 1, 2, 3, 4, 5);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 0, 5);
+ compareElements(view, 1, 2, 3, 4, 5);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 0, 4);
+ compareElements(view, 1, 2, 3, 4);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 0, 1);
+ compareElements(view, 1);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 0, 0);
+ compareElements(view);
+
+ // start after zero
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 1, 100);
+ compareElements(view, 2, 3, 4, 5);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 1, 5);
+ compareElements(view, 2, 3, 4, 5);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 1, 4);
+ compareElements(view, 2, 3, 4);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 1, 2);
+ compareElements(view, 2);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 1, 1);
+ compareElements(view);
+
+ // start too high
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 5, 100);
+ compareElements(view);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 50, 100);
+ compareElements(view);
+
+ // start in middle but end high
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 2, 100);
+ compareElements(view, 3, 4, 5);
+
+ // start after zero and skip
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 2, 100);
+ assertEquals(1, view.skipNext(1));
+ compareElements(view, 4, 5);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 2, 4);
+ assertEquals(1, view.skipNext(1));
+ compareElements(view, 4);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 2, 100);
+ assertEquals(2, view.skipNext(2));
+ compareElements(view, 5);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 2, 100);
+ assertEquals(3, view.skipNext(3));
+ compareElements(view);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 2, 100);
+ assertEquals(3, view.skipNext(4));
+ compareElements(view);
+
+ // start in middle, end high, and skip
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 2, 100);
+ assertEquals(2, view.skipNext(2));
+ compareElements(view, 5);
+
+ // start too high and skip
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 5, 100);
+ assertEquals(0, view.skipNext(1));
+ compareElements(view);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 5, 5);
+ assertEquals(0, view.skipNext(1));
+ compareElements(view);
+ view = new ViewCursor<Element>(createElements(1, 2, 3, 4, 5), 500, 600);
+ assertEquals(0, view.skipNext(1));
+ compareElements(view);
+ }
+
public void testUnion() throws Exception {
Cursor<Element> left, right, union;