From f274f75f32349642fff582c641aec731de939eff Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Mon, 21 May 2007 00:12:37 +0000 Subject: Added ViewCursor class. --- .../com/amazon/carbonado/cursor/TestCursors.java | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) 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 view; + + // Empty source. + view = new ViewCursor(createElements(), 10, 100); + compareElements(view); + view = new ViewCursor(createElements(), 10, 10); + compareElements(view); + + // start at zero + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 0, 100); + compareElements(view, 1, 2, 3, 4, 5); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 0, 5); + compareElements(view, 1, 2, 3, 4, 5); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 0, 4); + compareElements(view, 1, 2, 3, 4); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 0, 1); + compareElements(view, 1); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 0, 0); + compareElements(view); + + // start after zero + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 1, 100); + compareElements(view, 2, 3, 4, 5); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 1, 5); + compareElements(view, 2, 3, 4, 5); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 1, 4); + compareElements(view, 2, 3, 4); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 1, 2); + compareElements(view, 2); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 1, 1); + compareElements(view); + + // start too high + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 5, 100); + compareElements(view); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 50, 100); + compareElements(view); + + // start in middle but end high + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 2, 100); + compareElements(view, 3, 4, 5); + + // start after zero and skip + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 2, 100); + assertEquals(1, view.skipNext(1)); + compareElements(view, 4, 5); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 2, 4); + assertEquals(1, view.skipNext(1)); + compareElements(view, 4); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 2, 100); + assertEquals(2, view.skipNext(2)); + compareElements(view, 5); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 2, 100); + assertEquals(3, view.skipNext(3)); + compareElements(view); + view = new ViewCursor(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(createElements(1, 2, 3, 4, 5), 2, 100); + assertEquals(2, view.skipNext(2)); + compareElements(view, 5); + + // start too high and skip + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 5, 100); + assertEquals(0, view.skipNext(1)); + compareElements(view); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 5, 5); + assertEquals(0, view.skipNext(1)); + compareElements(view); + view = new ViewCursor(createElements(1, 2, 3, 4, 5), 500, 600); + assertEquals(0, view.skipNext(1)); + compareElements(view); + } + public void testUnion() throws Exception { Cursor left, right, union; -- cgit v1.2.3