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

		assertEquals(-3, entrySet.first().getKey().longValue());
		assertEquals(entrySet.first(), rEntrySet.last());
		assertEquals(3, entrySet.last().getKey().longValue());
		assertEquals(entrySet.last(), rEntrySet.first());

		assertEquals(-1, entrySet.lower(ent(0)).getKey().longValue());
		assertEquals(entrySet.lower(ent(0)), rEntrySet.higher(ent(0)));
		assertEquals(-1, entrySet.lower(ent(1)).getKey().longValue());
		assertEquals(entrySet.lower(ent(1)), rEntrySet.higher(ent(1)));

		assertEquals(-1, entrySet.floor(ent(0)).getKey().longValue());
		assertEquals(entrySet.floor(ent(0)), rEntrySet.ceiling(ent(0)));
		assertEquals(1, entrySet.floor(ent(1)).getKey().longValue());
		assertEquals(entrySet.floor(ent(1)), rEntrySet.ceiling(ent(1)));

		assertEquals(1, entrySet.ceiling(ent(0)).getKey().longValue());
		assertEquals(entrySet.ceiling(ent(0)), rEntrySet.floor(ent(0)));
		assertEquals(1, entrySet.ceiling(ent(1)).getKey().longValue());
		assertEquals(entrySet.ceiling(ent(1)), rEntrySet.floor(ent(1)));

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