@Test
	public void testAsKeySetTailSet() {
		assertEquals(map.tailMap(1L).keySet().keySpan, keySet.tailSet(1L).keySpan);
		assertEquals(rMap.tailMap(1L).keySet().keySpan, rKeySet.tailSet(1L).keySpan);
		assertEquals(map.tailMap(1L).keySet().direction, keySet.tailSet(1L).direction);
		assertEquals(rMap.tailMap(1L).keySet().direction, rKeySet.tailSet(1L).direction);

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

		assertEquals(List.of(3L, 5L), new ArrayList<>(keySet.tailSet(1L, false)));
		assertEquals(List.of(-3L, -5L), new ArrayList<>(rKeySet.tailSet(-1L, false)));

		assertEquals(List.of(1L, 3L, 5L), new ArrayList<>(keySet.tailSet(1L, true)));
		assertEquals(List.of(-1L, -3L, -5L), new ArrayList<>(rKeySet.tailSet(-1L, true)));

		assertEquals(List.of(1L, 3L, 5L), new ArrayList<>(keySet.tailSet(1L)));
		assertEquals(List.of(-1L, -3L, -5L), new ArrayList<>(rKeySet.tailSet(-1L)));
	}
This exists to verify behavior in {@link #testAsValuesSubIterator()}
Ghidra/Debug/ProposedUtils/src/test/java/ghidra/util/database/DBCachedObjectStoreTest.java