@Test
	public void testAsMapNavigable() {
		assertNull(map.firstEntry());
		assertNull(map.firstKey());
		assertNull(map.lastEntry());
		assertNull(map.lastKey());
		assertNull(rMap.firstEntry());
		assertNull(rMap.firstKey());
		assertNull(rMap.lastEntry());
		assertNull(rMap.lastKey());

		populateStore(-3, -1, 1, 3);

		assertEquals(-3, map.firstEntry().getKey().longValue());
		assertEquals(map.firstEntry(), rMap.lastEntry());
		assertEquals(-3, map.firstKey().longValue());
		assertEquals(map.firstKey(), rMap.lastKey());
		assertEquals(3, map.lastEntry().getKey().longValue());
		assertEquals(map.lastEntry(), rMap.firstEntry());
		assertEquals(3, map.lastKey().longValue());
		assertEquals(map.lastKey(), rMap.firstKey());

		assertEquals(-1, map.lowerEntry(0L).getKey().longValue());
		assertEquals(map.lowerEntry(0L), rMap.higherEntry(0L));
		assertEquals(-1, map.lowerEntry(1L).getKey().longValue());
		assertEquals(map.lowerEntry(1L), rMap.higherEntry(1L));
		assertEquals(-1, map.lowerKey(0L).longValue());
		assertEquals(map.lowerKey(0L), rMap.higherKey(0L));
		assertEquals(-1, map.lowerKey(1L).longValue());
		assertEquals(map.lowerKey(1L), rMap.higherKey(1L));

		assertEquals(-1, map.floorEntry(0L).getKey().longValue());
		assertEquals(map.floorEntry(0L), rMap.ceilingEntry(0L));
		assertEquals(1, map.floorEntry(1L).getKey().longValue());
		assertEquals(map.floorEntry(1L), rMap.ceilingEntry(1L));
		assertEquals(-1, map.floorKey(0L).longValue());
		assertEquals(map.floorKey(0L), rMap.ceilingKey(0L));
		assertEquals(1, map.floorKey(1L).longValue());
		assertEquals(map.floorKey(1L), rMap.ceilingKey(1L));

		assertEquals(1, map.ceilingEntry(0L).getKey().longValue());
		assertEquals(map.ceilingEntry(0L), rMap.floorEntry(0L));
		assertEquals(1, map.ceilingEntry(1L).getKey().longValue());
		assertEquals(map.floorEntry(1L), rMap.ceilingEntry(1L));
		assertEquals(1, map.ceilingKey(0L).longValue());
		assertEquals(map.ceilingKey(0L), rMap.floorKey(0L));
		assertEquals(1, map.ceilingKey(1L).longValue());
		assertEquals(map.ceilingKey(1L), rMap.floorKey(1L));

		assertEquals(1, map.higherEntry(0L).getKey().longValue());
		assertEquals(map.higherEntry(0L), rMap.lowerEntry(0L));
		assertEquals(3, map.higherEntry(1L).getKey().longValue());
		assertEquals(map.higherEntry(1L), rMap.lowerEntry(1L));
		assertEquals(1, map.higherKey(0L).longValue());
		assertEquals(map.higherKey(0L), rMap.lowerKey(0L));
		assertEquals(3, map.higherKey(1L).longValue());
		assertEquals(map.higherKey(1L), rMap.lowerKey(1L));
	}
This exists to verify behavior in {@link #testAsValuesSubIterator()}
Ghidra/Debug/ProposedUtils/src/test/java/ghidra/util/database/DBCachedObjectStoreTest.java