Examples of RevTreeBuilder


Examples of org.locationtech.geogig.api.RevTreeBuilder

        final int splitThreshold = RevTree.NORMALIZED_SIZE_LIMIT;
        List<Node> expectedOrder = nodes(splitThreshold + 1);
        Collections.sort(expectedOrder, new NodeStorageOrder());

        final List<Node> flat = expectedOrder.subList(0, splitThreshold);
        RevTreeBuilder flatTreeBuilder = new RevTreeBuilder(odb);
        RevTreeBuilder bucketTreeBuilder = new RevTreeBuilder(odb);

        for (Node n : flat) {
            flatTreeBuilder.put(n);
            bucketTreeBuilder.put(n);
        }
        bucketTreeBuilder.put(expectedOrder.get(expectedOrder.size() - 1));
        RevTree flatTree = flatTreeBuilder.build();
        RevTree bucketTree = bucketTreeBuilder.build();
        assertFalse(flatTree.buckets().isPresent());
        assertTrue(bucketTree.buckets().isPresent());
        odb.put(flatTree);
        odb.put(bucketTree);
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        }
        return nodes;
    }

    private RevTreeBuilder tree(int nfeatures) {
        RevTreeBuilder b = new RevTreeBuilder(odb);
        for (Node n : nodes(nfeatures)) {
            b.put(n);
        }
        return b;
    }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

    @Before
    public void setUp() {
        odb = new HeapObjectDatabse();
        odb.open();
        {
            RevTreeBuilder builder = createFeaturesTree("", 10);
            this.childrenFeatureTree = builder.build();
        }
        {
            RevTreeBuilder rootBuilder = new RevTreeBuilder(odb);
            childTree1 = createFeaturesTree("tree1", 10);
            createFeatureTypesTree(rootBuilder, "tree1", childTree1);
            childTree2 = createFeaturesTree("tree2", 5);
            createFeatureTypesTree(rootBuilder, "tree2", childTree2);
            childrenFeatureTypesTree = rootBuilder.build();
        }

        {
            RevTreeBuilder builder = createFeaturesTree("", 2 * RevTree.NORMALIZED_SIZE_LIMIT);
            this.bucketsFeatureTree = builder.build();
            assertTrue(bucketsFeatureTree.buckets().isPresent());
        }
    }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

                .featureCount());
    }

    @Test
    public void testChildrenChildren() {
        RevTreeBuilder builder = new RevTreeBuilder(odb, childrenFeatureTree);
        RevTree changed = builder.remove("3").build();
        assertEquals(1, count(childrenFeatureTree, changed).featureCount());
        assertEquals(1, count(changed, childrenFeatureTree).featureCount());

        changed = builder.put(
                Node.create("new", FAKE_FEATURE_ID, ObjectId.NULL, TYPE.FEATURE, null)).build();
        assertEquals(2, count(childrenFeatureTree, changed).featureCount());
        assertEquals(2, count(changed, childrenFeatureTree).featureCount());

        changed = builder.put(
                Node.create("1", FAKE_FEATURE_ID_CHANGED, ObjectId.NULL, TYPE.FEATURE, null))
                .build();
        assertEquals(3, count(childrenFeatureTree, changed).featureCount());
        assertEquals(3, count(changed, childrenFeatureTree).featureCount());
    }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        assertEquals(3, count(changed, childrenFeatureTree).featureCount());
    }

    @Test
    public void testChildrenChildrenNestedTrees() {
        RevTreeBuilder rootBuilder = new RevTreeBuilder(odb, childrenFeatureTypesTree);
        childTree1.put(featureRef("tree1", 1000));
        createFeatureTypesTree(rootBuilder, "tree1", childTree1);
        RevTree newRoot = rootBuilder.build();

        assertEquals(1, count(childrenFeatureTypesTree, newRoot).featureCount());

        childTree2.remove("tree2/2");
        createFeatureTypesTree(rootBuilder, "tree2", childTree2);
        newRoot = rootBuilder.build();
        assertEquals(2, count(childrenFeatureTypesTree, newRoot).featureCount());

        childTree2.put(Node.create("tree2/1", FAKE_FEATURE_ID_CHANGED, ObjectId.NULL, TYPE.FEATURE,
                null));
        createFeatureTypesTree(rootBuilder, "tree2", childTree2);
        newRoot = rootBuilder.build();
        assertEquals(3, count(childrenFeatureTypesTree, newRoot).featureCount());
    }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        assertEquals(3, count(childrenFeatureTypesTree, newRoot).featureCount());
    }

    @Test
    public void testBucketBucketAdd() {
        RevTreeBuilder builder = new RevTreeBuilder(odb, bucketsFeatureTree);

        final int initialSize = (int) bucketsFeatureTree.size();
        final int added = 1 + 2 * RevTree.NORMALIZED_SIZE_LIMIT;
        for (int i = initialSize; i < (initialSize + added); i++) {
            builder.put(featureRef("", i));
        }

        RevTree changed = builder.build();
        assertEquals(initialSize + added, changed.size());

        assertEquals(added, count(bucketsFeatureTree, changed).featureCount());
        assertEquals(added, count(changed, bucketsFeatureTree).featureCount());

View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        assertEquals(0, count(changed, bucketsFeatureTree).getFeaturesChanged());
    }

    @Test
    public void testBucketBucketRemove() {
        RevTreeBuilder builder = new RevTreeBuilder(odb, bucketsFeatureTree);

        RevTree changed;
        changed = builder.remove("3").build();
        assertEquals(1, count(bucketsFeatureTree, changed).featureCount());
        assertEquals(1, count(changed, bucketsFeatureTree).featureCount());

        for (int i = 0; i < RevTree.NORMALIZED_SIZE_LIMIT - 1; i++) {
            builder.remove(String.valueOf(i));
        }
        changed = builder.build();
        assertEquals(RevTree.NORMALIZED_SIZE_LIMIT + 1, changed.size());
        assertTrue(changed.buckets().isPresent());

        assertEquals(RevTree.NORMALIZED_SIZE_LIMIT - 1, count(bucketsFeatureTree, changed)
                .featureCount());
        assertEquals(RevTree.NORMALIZED_SIZE_LIMIT - 1, count(changed, bucketsFeatureTree)
                .featureCount());

        builder.remove(String.valueOf(RevTree.NORMALIZED_SIZE_LIMIT + 1));

        changed = builder.build();
        assertEquals(RevTree.NORMALIZED_SIZE_LIMIT, changed.size());
        assertFalse(changed.buckets().isPresent());
    }
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        assertFalse(changed.buckets().isPresent());
    }

    @Test
    public void testBucketBucketChange() {
        RevTreeBuilder builder;
        RevTree changed;

        builder = new RevTreeBuilder(odb, bucketsFeatureTree);

        changed = builder.put(
                Node.create("1023", FAKE_FEATURE_ID_CHANGED, ObjectId.NULL, TYPE.FEATURE, null))
                .build();
        DiffObjectCount count = count(bucketsFeatureTree, changed);
        assertEquals(1, count.featureCount());
        assertEquals(0, count.treeCount());
        count = count(changed, bucketsFeatureTree);
        assertEquals(1, count.featureCount());
        assertEquals(0, count.treeCount());

        builder = new RevTreeBuilder(odb, bucketsFeatureTree);
        int expected = 0;
        for (int i = 0; i < bucketsFeatureTree.size(); i += 2) {
            changed = builder.put(
                    Node.create(String.valueOf(i), FAKE_FEATURE_ID_CHANGED, ObjectId.NULL,
                            TYPE.FEATURE, null)).build();
            expected++;
        }
        changed = builder.build();
        assertEquals(expected, count(bucketsFeatureTree, changed).featureCount());
        assertEquals(expected, count(changed, bucketsFeatureTree).featureCount());

        assertEquals(expected, count(bucketsFeatureTree, changed).getFeaturesChanged());
        assertEquals(expected, count(changed, bucketsFeatureTree).getFeaturesChanged());
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

        assertEquals(0, count(changed, bucketsFeatureTree).getFeaturesRemoved());
    }

    @Test
    public void testBucketChildren() {
        RevTreeBuilder builder = new RevTreeBuilder(odb, bucketsFeatureTree);
        RevTree changed;
        for (int i = 0; i < RevTree.NORMALIZED_SIZE_LIMIT; i++) {
            builder.remove(String.valueOf(i));
        }
        changed = builder.build();
        assertEquals(RevTree.NORMALIZED_SIZE_LIMIT, changed.size());
        assertFalse(changed.buckets().isPresent());

        assertEquals(RevTree.NORMALIZED_SIZE_LIMIT, count(bucketsFeatureTree, changed)
                .featureCount());
View Full Code Here

Examples of org.locationtech.geogig.api.RevTreeBuilder

         // levels of buckets)
            final int maxDepth = depth(deepTree, 0);
            assertTrue(maxDepth > 1);
        }

        RevTreeBuilder builder = new RevTreeBuilder(odb, deepTree);
        {
            final int count = (int) (deepTree.size() - RevTree.NORMALIZED_SIZE_LIMIT);
            for (int i = 0; i < count; i++) {
                String path = String.valueOf(i);
                builder.remove(path);
            }
        }
        RevTree changed = builder.build();
        assertEquals(RevTree.NORMALIZED_SIZE_LIMIT, changed.size());
        // sanity check
        assertTrue(changed.features().isPresent());
        assertFalse(changed.buckets().isPresent());
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.