private RevTreeBuilder createTree(final int numEntries, final boolean insertInAscendingKeyOrder) { RevTreeBuilder tree = createBuiler(); final int increment = insertInAscendingKeyOrder ? 1 : -1; final int from = insertInAscendingKeyOrder ? 0 : numEntries - 1; final int breakAt = insertInAscendingKeyOrder ? numEntries : -1; for (int i = from; i != breakAt; i += increment) { addNode(tree, i); } return tree; }
private RevTreeBuilder createTree(final int numEntries, final boolean insertInAscendingKeyOrder) { RevTreeBuilder tree = createBuiler(); final int increment = insertInAscendingKeyOrder ? 1 : -1; final int from = insertInAscendingKeyOrder ? 0 : numEntries - 1; final int breakAt = insertInAscendingKeyOrder ? numEntries : -1; for (int i = from; i != breakAt; i += increment) { addNode(tree, i); } return tree; }
protected ObjectId createAndSaveTree(final List<Node> nodes, final boolean insertInListOrder) throws Exception { List<Node> insert = nodes; if (!insertInListOrder) { insert = new ArrayList<>(nodes); Collections.shuffle(insert); } RevTreeBuilder treeBuilder = createBuiler(); nodes.forEach((n) -> treeBuilder.put(n)); RevTree tree = treeBuilder.build(); assertTrue(objectStore.exists(tree.getId())); assertEquals(nodes.size(), tree.size()); return tree.getId(); }
protected ObjectId createAndSaveTree(final List<Node> nodes, final boolean insertInListOrder) throws Exception { List<Node> insert = nodes; if (!insertInListOrder) { insert = new ArrayList<>(nodes); Collections.shuffle(insert); } RevTreeBuilder treeBuilder = createBuiler(); nodes.forEach((n) -> treeBuilder.put(n)); RevTree tree = treeBuilder.build(); assertTrue(objectStore.exists(tree.getId())); assertEquals(nodes.size(), tree.size()); return tree.getId(); }
@Test public void testPutRandomGet() throws Exception { final int numEntries = 20 * CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1500; final ObjectId treeId; treeId = createAndSaveTree(numEntries, true); final RevTree tree = objectStore.getTree(treeId); { Map<Integer, Node> randomEdits = Maps.newHashMap(); Random randGen = new Random(); for (int i = 0; i < tree.size() / 2; i++) { int random; while (randomEdits.containsKey(random = randGen.nextInt(numEntries))) { ; // $codepro.audit.disable extraSemicolon } String name = "Feature." + random; ObjectId newid = RevObjectTestSupport.hashString(name + "changed"); Node ref = RevObjectFactory.defaultInstance().createNode(name, newid, ObjectId.NULL, TYPE.FEATURE, null, null); randomEdits.put(random, ref); } RevTreeBuilder mutable = createBuiler(tree); for (Node ref : randomEdits.values()) { mutable.put(ref); } mutable.build(); } }
@Test public void testPutRandomGet() throws Exception { final int numEntries = 20 * CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1500; final ObjectId treeId; treeId = createAndSaveTree(numEntries, true); final RevTree tree = objectStore.getTree(treeId); { Map<Integer, Node> randomEdits = Maps.newHashMap(); Random randGen = new Random(); for (int i = 0; i < tree.size() / 2; i++) { int random; while (randomEdits.containsKey(random = randGen.nextInt(numEntries))) { ; // $codepro.audit.disable extraSemicolon } String name = "Feature." + random; ObjectId newid = RevObjectTestSupport.hashString(name + "changed"); Node ref = Node.create(name, newid, ObjectId.NULL, TYPE.FEATURE, null); randomEdits.put(random, ref); } RevTreeBuilder mutable = createBuiler(tree); for (Node ref : randomEdits.values()) { mutable.put(ref); } mutable.build(); } }
RevTreeBuilder builder = createBuiler(tree); for (Node change : newValues.values()) { Node oldNode = oldValues.get(change.getName());
RevTreeBuilder builder = createBuiler(tree); for (Node change : newValues.values()) { Node oldNode = oldValues.get(change.getName());
private void checkTreeBounds(int size) { RevTreeBuilder b = createBuiler(); List<Node> nodes = createNodes(size); Envelope expectedBounds = new Envelope(); for (Node n : nodes) { b.put(n); n.expand(expectedBounds); } expectedBounds = RevObjects.makePrecise(expectedBounds); RevTree tree = b.build(); assertEquals(size, tree.size()); Envelope bounds = SpatialOps.boundsOf(tree); bounds = RevObjects.makePrecise(bounds); assertEquals(expectedBounds, bounds); }
private void checkTreeBounds(int size) { RevTreeBuilder b = createBuiler(); List<Node> nodes = createNodes(size); Envelope expectedBounds = new Envelope(); for (Node n : nodes) { b.put(n); n.expand(expectedBounds); } expectedBounds = Node.makePrecise(expectedBounds); RevTree tree = b.build(); assertEquals(size, tree.size()); Envelope bounds = SpatialOps.boundsOf(tree); bounds = Node.makePrecise(bounds); assertEquals(expectedBounds, bounds); }