boolean removed = builder.remove(left); checkState(removed, "Node was not removed from index: %s", left); } else {
@Override public boolean feature(final @Nullable NodeRef left, @Nullable final NodeRef right) { final boolean cancelled = progress.isCanceled(); if (!cancelled) { if (left == null) { Node node = right.getNode(); boolean put = builder.put(node); checkState(put, "Node was not added to index: %s", node); } else if (right == null) { Node node = left.getNode(); boolean removed = builder.remove(node); checkState(removed, "Node was not removed from index: %s", node); } else { Node lnode = left.getNode(); Node rnode = right.getNode(); boolean updated = builder.update(lnode, rnode); if (!lnode.equals(rnode)) { checkState(updated, "Node %s was not updated to %s", lnode, rnode); } } progress.setProgress(count.incrementAndGet()); } return !cancelled; }
public @Test void testRemoveWorldPoints() { List<Node> nodes = IndexTestSupport.createWorldPointsNodes(5); final RevTreeBuilder builder = createBuiler(); nodes.forEach((n) -> assertTrue(builder.put(n))); RevTree tree = builder.build(); assertEquals(nodes.size(), tree.size()); List<Node> removes = nodes.subList(0, nodes.size() / 2); final RevTreeBuilder builder2 = createBuiler(tree); removes.forEach((n) -> assertTrue(builder2.remove(n))); RevTree tree2 = builder2.build(); assertEquals(nodes.size() - removes.size(), tree2.size()); }
public @Test void testRemoveWorldPointsWholeQuadrant() { List<Node> nodes = IndexTestSupport.createWorldPointsNodes(5); final RevTreeBuilder builder = createBuiler(); nodes.forEach((n) -> assertTrue(builder.put(n))); RevTree tree = builder.build(); assertEquals(nodes.size(), tree.size()); final Envelope NEBounds = new Envelope(0, 180, 0, 90); List<Node> removes = new ArrayList<>(); for (Node n : nodes) { if (NEBounds.contains(n.bounds().orNull())) { removes.add(n); } } final RevTreeBuilder builder2 = createBuiler(tree); removes.forEach((n) -> assertTrue(builder2.remove(n))); RevTree tree2 = builder2.build(); assertEquals(nodes.size() - removes.size(), tree2.size()); } }