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

		Set<Entry<Long, MyObject>> tailSet = entrySet.tailSet(ent(0), true);

		Entry<Long, MyObject> entP1 = ent(store.getObjectAt(1));
		Entry<Long, MyObject> entP3 = ent(store.getObjectAt(3));

		try (Transaction tid = trans()) {
			assertFalse(entrySet.subSet(ent(0), ent(0)).retainAll(List.of()));
			assertFalse(tailSet.retainAll(List.of("Wrong type", entP3, entP1)));
			assertTrue(tailSet.retainAll(List.of("Wrong type", entP1)));
			assertFalse(tailSet.retainAll(List.of("Wrong type", entP1)));
		}

		assertEquals(3, store.getRecordCount());
		assertTrue(store.containsKey(-3));
		assertTrue(store.containsKey(-1));
		assertTrue(store.containsKey(1));
		assertFalse(store.containsKey(3));
	}
This exists to verify behavior in {@link #testAsValuesSubIterator()}
Ghidra/Debug/ProposedUtils/src/test/java/ghidra/util/database/DBCachedObjectStoreTest.java