@Test
	public void testAsKeySetNavigable() {
		populateStore(-3, -1, 1, 3);

		assertEquals(-3, keySet.first().longValue());
		assertEquals(keySet.first(), rKeySet.last());
		assertEquals(3, keySet.last().longValue());
		assertEquals(keySet.last(), rKeySet.first());

		assertEquals(-1, keySet.lower(0L).longValue());
		assertEquals(keySet.lower(0L), rKeySet.higher(0L));
		assertEquals(-1, keySet.lower(1L).longValue());
		assertEquals(keySet.lower(1L), rKeySet.higher(1L));

		assertEquals(-1, keySet.floor(0L).longValue());
		assertEquals(keySet.floor(0L), rKeySet.ceiling(0L));
		assertEquals(1, keySet.floor(1L).longValue());
		assertEquals(keySet.floor(1L), rKeySet.ceiling(1L));

		assertEquals(1, keySet.ceiling(0L).longValue());
		assertEquals(keySet.ceiling(0L), rKeySet.floor(0L));
		assertEquals(1, keySet.ceiling(1L).longValue());
		assertEquals(keySet.ceiling(1L), rKeySet.floor(1L));

		assertEquals(1, keySet.higher(0L).longValue());
		assertEquals(keySet.higher(0L), rKeySet.lower(0L));
		assertEquals(3, keySet.higher(1L).longValue());
		assertEquals(keySet.higher(1L), rKeySet.lower(1L));
	}
This exists to verify behavior in {@link #testAsValuesSubIterator()}
Ghidra/Debug/ProposedUtils/src/test/java/ghidra/util/database/DBCachedObjectStoreTest.java