@Override public LongBidirectionalIterator iterator(long key) { return keys.keyIterator(keys.findUpperBound(key)); }
public EntryIter(long k) { this(); // skip past the item int idx = keys.findUpperBound(k); iter.skip(idx); }
@Test public void testSomeKeysUpperBound() { SortedKeyIndex keys = SortedKeyIndex.create(5, 6, 8); assertThat(keys.findUpperBound(0), equalTo(0)); assertThat(keys.findUpperBound(5), equalTo(1)); assertThat(keys.findUpperBound(6), equalTo(2)); assertThat(keys.findUpperBound(7), equalTo(2)); assertThat(keys.findUpperBound(8), equalTo(3)); assertThat(keys.findUpperBound(10), equalTo(3)); }
@Test public void testSingletonUpperBound() { SortedKeyIndex keys = SortedKeyIndex.create(5); assertThat(keys.findUpperBound(0), equalTo(0)); assertThat(keys.findUpperBound(5), equalTo(1)); assertThat(keys.findUpperBound(7), equalTo(1)); }
@Test public void testEmptyUpperBound() { SortedKeyIndex keys = SortedKeyIndex.empty(); assertThat(keys.findUpperBound(0), equalTo(0)); }
@Test public void testSubViewLowerBound() { SortedKeyIndex keys = SortedKeyIndex.create(0, 1, 2, 3, 4, 5, 6, 7); SortedKeyIndex subk = keys.subIndex(1, 5); assertThat(subk.getLowerBound(), equalTo(1)); assertThat(subk.getUpperBound(), equalTo(5)); assertThat(subk.tryGetIndex(1), equalTo(1)); assertThat(subk.tryGetIndex(4), equalTo(4)); assertThat(subk.tryGetIndex(5), lessThan(0)); assertThat(subk.tryGetIndex(6), lessThan(0)); assertThat(subk.tryGetIndex(0), lessThan(0)); assertThat(subk.findLowerBound(1L), equalTo(1)); assertThat(subk.findLowerBound(0L), equalTo(1)); assertThat(subk.findLowerBound(2L), equalTo(2)); assertThat(subk.findLowerBound(7L), equalTo(5)); assertThat(subk.findUpperBound(1), equalTo(2)); assertThat(subk.findUpperBound(5), equalTo(5)); assertThat(subk.findUpperBound(4), equalTo(5)); } }
@Override public LongBidirectionalIterator iterator(long key) { return keys.keyIterator(keys.findUpperBound(key)); }
public EntryIter(long k) { this(); // skip past the item int idx = keys.findUpperBound(k); iter.skip(idx); }