@Test
	public void testIterator() {
		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());
			}
		}

		Map<IntRect, String> expected = new HashMap<>();
		Map<IntRect, String> actual = new HashMap<>();
		points.iterator().forEachRemaining(e -> expected.put(e.getKey(), e.getValue()));
		obj.map.entries().iterator().forEachRemaining(e -> actual.put(e.getKey(), e.getValue()));
		assertEquals(expected, actual);

		expected.clear();
		actual.clear();
		points.stream()
				.filter(e -> e.getKey().enclosedBy(rect(1, 6, 1, 12)))
				.forEach(e -> expected.put(e.getKey(), e.getValue()));
		assertEquals(72, expected.size()); // Sanity check on expected
		obj.map.reduce(IntRectQuery.enclosed(rect(1, 6, 1, 12)))
				.entries()
				.stream()
				.forEach(e -> actual.put(e.getKey(), e.getValue()));
		assertEquals(expected, actual);
	}
@throws InterruptedException maybe when Thread.sleep is uncommented
Ghidra/Debug/ProposedUtils/src/test/java/ghidra/util/database/spatial/RStarTreeMapTest.java