@Test
	public void testAsEntrySetHeadSet() {
		assertEquals(map.headMap(1L).keySet().keySpan, entrySet.headSet(ent(1)).keySpan);
		assertEquals(rMap.headMap(1L).keySet().keySpan, rEntrySet.headSet(ent(1)).keySpan);
		assertEquals(map.headMap(1L).keySet().direction, entrySet.headSet(ent(1)).direction);
		assertEquals(rMap.headMap(1L).keySet().direction, rEntrySet.headSet(ent(1)).direction);

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

		assertEquals(List.of(-5L, -3L),
			new ArrayList<>(entrySet.headSet(ent(-1), false)).stream()
					.map(Entry::getKey)
					.collect(Collectors.toList()));
		assertEquals(List.of(5L, 3L),
			new ArrayList<>(rEntrySet.headSet(ent(1), false)).stream()
					.map(Entry::getKey)
					.collect(Collectors.toList()));

		assertEquals(List.of(-5L, -3L, -1L),
			new ArrayList<>(entrySet.headSet(ent(-1), true)).stream()
					.map(Entry::getKey)
					.collect(Collectors.toList()));
		assertEquals(List.of(5L, 3L, 1L),
			new ArrayList<>(rEntrySet.headSet(ent(1), true)).stream()
					.map(Entry::getKey)
					.collect(Collectors.toList()));

		assertEquals(List.of(-5L, -3L),
			new ArrayList<>(entrySet.headSet(ent(-1))).stream()
					.map(Entry::getKey)
					.collect(Collectors.toList()));
		assertEquals(List.of(5L, 3L),
			new ArrayList<>(rEntrySet.headSet(ent(1))).stream()
					.map(Entry::getKey)
					.collect(Collectors.toList()));
	}
This exists to verify behavior in {@link #testAsValuesSubIterator()}
Ghidra/Debug/ProposedUtils/src/test/java/ghidra/util/database/DBCachedObjectStoreTest.java