diff options
Diffstat (limited to 'src/test/java/com/amazon')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/cursor/TestCursors.java | 77 | 
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;
  | 
