@Test
	public void testAsKeySetHeadSet() {
		assertEquals(map.headMap(1L).keySet().keySpan, keySet.headSet(1L).keySpan);
		assertEquals(rMap.headMap(1L).keySet().keySpan, rKeySet.headSet(1L).keySpan);
		assertEquals(map.headMap(1L).keySet().direction, keySet.headSet(1L).direction);
		assertEquals(rMap.headMap(1L).keySet().direction, rKeySet.headSet(1L).direction);

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

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

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

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