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();
}
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());
}
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();
}
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();
}
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();
}
Aggregations