@Test public void testEmptyCollection() { SortedKeyIndex keys = SortedKeyIndex.fromCollection(LongLists.EMPTY_LIST); assertThat(keys.size(), equalTo(0)); assertThat(keys.size(), equalTo(0)); assertThat(keys.keySet(), hasSize(0)); assertThat(keys.getKeyList(), hasSize(0)); }
@Test public void testEmptyArray() { long[] rawKeys = {}; SortedKeyIndex keys = SortedKeyIndex.wrap(rawKeys, 0); assertThat(keys.size(), equalTo(0)); assertThat(keys.size(), equalTo(0)); assertThat(keys.keySet(), hasSize(0)); assertThat(keys.getKeyList(), hasSize(0)); assertThat(keys.tryGetIndex(42), lessThan(0)); }
@Theory public void testABunch(KeyData data) { long[] rawKeys = data.getKeys(10); List<Long> keyList = new LongArrayList(rawKeys); SortedKeyIndex keys = SortedKeyIndex.wrap(rawKeys, rawKeys.length); assertThat(keys.size(), equalTo(10)); assertThat(keys.size(), equalTo(10)); assertThat(keys.getKeyList(), contains(keyList.toArray())); assertThat(keys.keySet(), contains(keyList.toArray())); assertThat(keys.tryGetIndex(data.getLow()), lessThan(0)); for (int i = 0; i < 10; i++) { assumeThat(keys.tryGetIndex(rawKeys[i]), equalTo(i)); assertThat(keys.tryGetIndex(data.getAfter(i)), lessThan(0)); } } }
@Theory public void testSingleton(KeyData data) { assumeThat(data, notNullValue()); long key = data.getKey(); // key to use long low = data.getLow(); // unused low key long high = data.getAfter(1); // unused high key long[] rawKeys = {key}; SortedKeyIndex keys = SortedKeyIndex.wrap(rawKeys, 1); assertThat(keys.size(), equalTo(1)); assertThat(keys.size(), equalTo(1)); assertThat(keys.keySet(), hasSize(1)); assertThat(keys.tryGetIndex(key), equalTo(0)); assertThat(keys.tryGetIndex(low), lessThan(0)); assertThat(keys.tryGetIndex(high), lessThan(0)); assertThat(keys.getKeyList(), contains(key)); }
@Theory public void testMultiple(KeyData data) { long[] rawKeys = data.getKeys(3); long k1 = rawKeys[0]; long k2 = rawKeys[1]; long k3 = rawKeys[2]; SortedKeyIndex keys = SortedKeyIndex.wrap(rawKeys, 3); assertThat(keys.size(), equalTo(3)); assertThat(keys.size(), equalTo(3)); assertThat(keys.getKeyList(), contains(k1, k2, k3)); assertThat(keys.keySet(), contains(k1, k2, k3)); assertThat(keys.tryGetIndex(k1), equalTo(0)); assertThat(keys.tryGetIndex(k2), equalTo(1)); assertThat(keys.tryGetIndex(k3), equalTo(2)); assertThat(keys.tryGetIndex(data.getLow()), lessThan(0)); assertThat(keys.tryGetIndex(data.getAfter(0)), lessThan(0)); assertThat(keys.tryGetIndex(data.getAfter(1)), lessThan(0)); assertThat(keys.tryGetIndex(data.getAfter(2)), lessThan(0)); }