private void testPoints(final int size) { List<Node> nodes = createPointNodes(nodeRange(size)); testCreateQuadTree(maxBounds, nodes); }
private void testPoints(final int size) { List<Node> nodes = createPointNodes(nodeRange(size)); testCreateQuadTree(maxBounds, nodes); }
final int ncount = 1000; final List<Node> oldNodes = createPointNodes(nodeRange(ncount)); final List<Node> newNodes = new ArrayList<>(oldNodes); final Set<Node> expectedRemoves = new HashSet<>(); newNodeIds.add(ncount + i); expectedAdditions.addAll(createPointNodes(newNodeIds)); newNodes.addAll(expectedAdditions);
final int ncount = 1000; final List<Node> oldNodes = createPointNodes(nodeRange(ncount)); final List<Node> newNodes = new ArrayList<>(oldNodes); final Set<Node> expectedRemoves = new HashSet<>(); newNodeIds.add(ncount + i); expectedAdditions.addAll(createPointNodes(newNodeIds)); newNodes.addAll(expectedAdditions);
private void testRemove(final int ncount) { final Set<Node> nodes = new HashSet<>(createPointNodes(nodeRange(ncount))); RevTreeBuilder initialTreeBuilder = createQuadTree(maxBounds, nodes); final RevTree tree = initialTreeBuilder.build(); final Set<Node> removedNodes; RevTreeBuilder builder = RevTreeBuilder.quadBuilder(objectStore, objectStore, tree, maxBounds); // collect some keys to remove { Set<Node> treeNodes = RevObjectTestSupport.getTreeNodes(tree, objectStore); assertEquals(nodes, treeNodes); List<Node> list = new ArrayList<>(treeNodes); Collections.shuffle(list); int removeCount = ncount / 10; removedNodes = ImmutableSet.copyOf(list.subList(0, removeCount)); for (Node node : removedNodes) { boolean removed = builder.remove(node); assertTrue("Not removed: " + node, removed); } assertFalse(removedNodes.isEmpty()); } final RevTree result = builder.build(); Set<Node> resultNodes = getNodes(result); SetView<Node> difference = Sets.difference(nodes, resultNodes); assertEquals(removedNodes.size(), difference.size()); assertEquals(removedNodes, difference); }
private void testRemove(final int ncount) { final Set<Node> nodes = new HashSet<>(createPointNodes(nodeRange(ncount))); QuadTreeBuilder initialTreeBuilder = createQuadTree(maxBounds, nodes); initialTreeBuilder.clusteringStrategy(); final RevTree tree = initialTreeBuilder.build(); final Set<Node> removedNodes; QuadTreeBuilder builder = QuadTreeBuilder.create(objectStore, objectStore, tree, maxBounds); // collect some keys to remove { Set<Node> treeNodes = RevObjectTestSupport.getTreeNodes(tree, objectStore); assertEquals(nodes, treeNodes); List<Node> list = new ArrayList<>(treeNodes); Collections.shuffle(list); int removeCount = ncount / 10; removedNodes = ImmutableSet.copyOf(list.subList(0, removeCount)); for (Node node : removedNodes) { boolean removed = builder.remove(node); assertTrue("Not removed: " + node, removed); } assertFalse(removedNodes.isEmpty()); } final RevTree result = builder.build(); Set<Node> resultNodes = getNodes(result); SetView<Node> difference = Sets.difference(nodes, resultNodes); assertEquals(removedNodes.size(), difference.size()); assertEquals(removedNodes, difference); }
public @Test void testNullGeometriesGoToRootUnpromotablesTree() { int size = 128; List<Node> nodes = createPointNodes(nodeRange(size)); RevTreeBuilder builder = createQuadTree(maxBounds, nodes); Node nullEnvNode = createNode(10000, null); builder.put(nullEnvNode); RevTree tree = builder.build(); assertNotEquals(0, tree.bucketsSize()); List<Node> matches = findNode(nullEnvNode.getName(), tree, objectStore); assertEquals(1, matches.size()); Integer unpromotablesBucketIndex = Integer.valueOf(4); assertTrue(tree.getBucket(unpromotablesBucketIndex).isPresent()); RevTree unpromotables = objectStore .getTree(tree.getBucket(unpromotablesBucketIndex).get().getObjectId()); matches = findNode(nullEnvNode.getName(), unpromotables, objectStore); assertEquals(1, matches.size()); }
@Test public void testUpdate() throws Exception { final int ncount = 1000; final Set<Node> origNodes = new HashSet<>(createPointNodes(nodeRange(ncount)));
@Test public void testUpdate() throws Exception { final int ncount = 1000; final Set<Node> origNodes = new HashSet<>(createPointNodes(nodeRange(ncount)));
public @Test void testNullGeometriesGoToRootUnpromotablesTree() { int size = 128; List<Node> nodes = createPointNodes(nodeRange(size)); RevTreeBuilder builder = createQuadTree(maxBounds, nodes); Node nullEnvNode = createNode(10000, null); builder.put(nullEnvNode); RevTree tree = builder.build(); assertFalse(tree.buckets().isEmpty()); List<Node> matches = findNode(nullEnvNode.getName(), tree, objectStore); assertEquals(1, matches.size()); Integer unpromotablesBucketIndex = Integer.valueOf(4); assertTrue(tree.buckets().keySet().contains(unpromotablesBucketIndex)); RevTree unpromotables = objectStore .getTree(tree.buckets().get(unpromotablesBucketIndex).getObjectId()); matches = findNode(nullEnvNode.getName(), unpromotables, objectStore); assertEquals(1, matches.size()); }