@Test
	public void testRemove() {
		// TODO: Add a "minimal query including" abstract method to reduce search for removed item
		List<Pair<IntRect, String>> points = generatePoints(rect(1, 12, 1, 12));
		try (Transaction tx = obj.openTransaction("AddPoints")) {
			for (Entry<IntRect, String> ent : points) {
				obj.map.put(ent.getKey(), ent.getValue());
			}
		}

		try (Transaction tx = obj.openTransaction("RemovePoints")) {
			assertFalse(obj.map.reduce(IntRectQuery.enclosed(rect(6, 6, 6, 6))).isEmpty());
			obj.map.remove(rect(6, 6, 6, 6), "NotHere");
			assertFalse(obj.map.reduce(IntRectQuery.enclosed(rect(6, 6, 6, 6))).isEmpty());
			obj.map.remove(rect(6, 6, 6, 6), "Point(6,6)");
			obj.tree.checkIntegrity();
			assertTrue(obj.map.reduce(IntRectQuery.enclosed(rect(6, 6, 6, 6))).isEmpty());

			for (Entry<IntRect, String> ent : obj.map.entries()) {
				obj.map.remove(ent.getKey(), ent.getValue());
				obj.tree.checkIntegrity();
			}
		}

		assertTrue(obj.map.isEmpty());
	}
@throws InterruptedException maybe when Thread.sleep is uncommented
Ghidra/Debug/ProposedUtils/src/test/java/ghidra/util/database/spatial/RStarTreeMapTest.java