Search in sources :

Example 6 with Cursor

use of jetbrains.exodus.env.Cursor in project xodus by JetBrains.

the class TreeCursorDuplicatesTest method testGetSearchBothRange2.

@Test
public void testGetSearchBothRange2() throws IOException {
    final TreeAwareRunnable getSearchBothRange = new TreeAwareRunnable(getTreeMutable()) {

        @Override
        public void run() {
            Cursor c = _t.openCursor();
            // miss
            assertEquals(null, c.getSearchBothRange(key(0), value("v1")));
            // found
            assertEquals(value("v1"), c.getSearchBothRange(key(1), value("v0")));
            assertEquals(key(1), c.getKey());
            assertEquals(value("v1"), c.getValue());
            // miss
            assertEquals(null, c.getSearchBothRange(key(2), value("v21")));
            // check keep prev state
            assertEquals(key(1), c.getKey());
            assertEquals(value("v51"), c.getSearchBothRange(key(5), value("v50")));
            assertEquals(key(5), c.getKey());
            assertEquals(value("v51"), c.getSearchBothRange(key(5), value("v51")));
            assertEquals(key(5), c.getKey());
            assertEquals(value("v53"), c.getSearchBothRange(key(5), value("v521")));
            assertEquals(key(5), c.getKey());
            assertEquals(null, c.getSearchBothRange(key(5), value("v54")));
            assertEquals(value("v53"), c.getValue());
        }
    };
    getSearchBothRange.run();
    long a = saveTree();
    getSearchBothRange.run();
    reopen();
    getSearchBothRange.setTree(openTree(a, true));
    getSearchBothRange.run();
}
Also used : Cursor(jetbrains.exodus.env.Cursor) Test(org.junit.Test)

Example 7 with Cursor

use of jetbrains.exodus.env.Cursor in project xodus by JetBrains.

the class TreeCursorDuplicatesTest method testGetNextDup2.

@Test
public void testGetNextDup2() throws IOException {
    Cursor c = tm.openCursor();
    assertEquals(value("v1"), c.getSearchKey(key(1)));
    assertFalse(c.getNextDup());
    // 51
    c.getSearchKey(key(5));
    // 52
    c.getNextDup();
    // 53
    c.getNextDup();
    c.deleteCurrent();
    assertFalse(c.getNextDup());
}
Also used : Cursor(jetbrains.exodus.env.Cursor) Test(org.junit.Test)

Example 8 with Cursor

use of jetbrains.exodus.env.Cursor in project xodus by JetBrains.

the class TreeCursorDuplicatesTest method testGetNext.

@Test
public void testGetNext() throws IOException {
    final TreeAwareRunnable getNext = new TreeAwareRunnable(getTreeMutable()) {

        @Override
        public void run() {
            Cursor c = _t.openCursor();
            for (INode ln : values) {
                assertEquals(true, c.getNext());
                assertEquals(ln.getValue(), c.getValue());
                assertEquals(ln.getKey(), c.getKey());
            }
            assertEquals(false, c.getNext());
        }
    };
    getNext.run();
    long a = saveTree();
    getNext.run();
    reopen();
    getNext.setTree(openTree(a, true));
    getNext.run();
}
Also used : Cursor(jetbrains.exodus.env.Cursor) Test(org.junit.Test)

Example 9 with Cursor

use of jetbrains.exodus.env.Cursor in project xodus by JetBrains.

the class TreeCursorDuplicatesTest method testCount.

@Test
public void testCount() throws IOException {
    final TreeAwareRunnable count = new TreeAwareRunnable(getTreeMutable()) {

        @Override
        public void run() {
            Cursor c = _t.openCursor();
            assertEquals(value("v1"), c.getSearchKey(key(1)));
            assertEquals(1, c.count());
            assertEquals(value("v51"), c.getSearchKey(key(5)));
            assertEquals(3, c.count());
            assertEquals(value("v12"), c.getSearchKey(key(12)));
            assertEquals(1, c.count());
        }
    };
    count.run();
    long a = saveTree();
    count.run();
    reopen();
    count.setTree(openTree(a, true));
    count.run();
}
Also used : Cursor(jetbrains.exodus.env.Cursor) Test(org.junit.Test)

Example 10 with Cursor

use of jetbrains.exodus.env.Cursor in project xodus by JetBrains.

the class TreeCursorDuplicatesTest method testGetSearchBothRange3.

@Test
public void testGetSearchBothRange3() throws IOException {
    tm = createMutableTree(true, 1);
    getTreeMutable().put(kv(5, "v51"));
    getTreeMutable().put(kv(5, "v52"));
    getTreeMutable().put(kv(6, "v61"));
    getTreeMutable().put(kv(6, "v62"));
    // assertMatches(getTreeMutable(), IP(BP(3), BP(3)));
    final TreeAwareRunnable getSearchKeyRange = new TreeAwareRunnable(getTreeMutable()) {

        @Override
        public void run() {
            Cursor c = _t.openCursor();
            assertEquals(value("v51"), c.getSearchKeyRange(key(4)));
            assertEquals(key(5), c.getKey());
            assertEquals(null, c.getSearchBothRange(key(5), value("v54")));
            // key unchanged
            assertEquals(key(5), c.getKey());
        }
    };
    getSearchKeyRange.run();
    long a = saveTree();
    getSearchKeyRange.run();
    reopen();
    getSearchKeyRange.setTree(openTree(a, true));
    getSearchKeyRange.run();
}
Also used : Cursor(jetbrains.exodus.env.Cursor) Test(org.junit.Test)

Aggregations

Cursor (jetbrains.exodus.env.Cursor)57 Test (org.junit.Test)46 ByteIterable (jetbrains.exodus.ByteIterable)7 ArrayByteIterable (jetbrains.exodus.ArrayByteIterable)6 NotNull (org.jetbrains.annotations.NotNull)4 Store (jetbrains.exodus.env.Store)3 Transaction (jetbrains.exodus.env.Transaction)3 File (java.io.File)2 TestFor (jetbrains.exodus.TestFor)2 TransactionalExecutable (jetbrains.exodus.env.TransactionalExecutable)2 CyclicBarrier (java.util.concurrent.CyclicBarrier)1 ComparableBinding (jetbrains.exodus.bindings.ComparableBinding)1 Job (jetbrains.exodus.core.execution.Job)1 JobProcessor (jetbrains.exodus.core.execution.JobProcessor)1 BlobsTable (jetbrains.exodus.entitystore.tables.BlobsTable)1 PropertyValue (jetbrains.exodus.entitystore.tables.PropertyValue)1 TreeCursorNoDuplicatesTest (jetbrains.exodus.tree.TreeCursorNoDuplicatesTest)1