/** * Returns the total count of modified elements (i.e. sum of added, changed, and removed trees * and features) */ public long count() { return featureCount() + treeCount(); }
/** * Returns the total count of modified elements (i.e. sum of added, changed, and removed trees * and features) */ public long count() { return featureCount() + treeCount(); }
@Test public void testChildrenEmpty() { assertEquals(childrenFeatureTree.size(), count(childrenFeatureTree, RevTree.EMPTY).featureCount()); assertEquals(childrenFeatureTree.size(), count(RevTree.EMPTY, childrenFeatureTree).featureCount()); }
@Test public void testChildrenEmpty() { assertEquals(childrenFeatureTree.size(), count(childrenFeatureTree, RevTree.EMPTY).featureCount()); assertEquals(childrenFeatureTree.size(), count(RevTree.EMPTY, childrenFeatureTree).featureCount()); }
@Test public void testGetUnstaged() throws Exception { List<Feature> featureList = new LinkedList<Feature>(); featureList.add(points1); featureList.add(points2); featureList.add(points3); insert(featureList); assertEquals(3, workTree.countUnstaged(null).featureCount()); assertEquals(1, workTree.countUnstaged(null).treeCount()); try (AutoCloseableIterator<DiffEntry> changes = workTree.getUnstaged(null)) { assertNotNull(changes); assertEquals(4, Iterators.size(changes)); } }
@Test public void testGetUnstaged() throws Exception { List<Feature> featureList = new LinkedList<Feature>(); featureList.add(points1); featureList.add(points2); featureList.add(points3); insert(featureList); assertEquals(3, workTree.countUnstaged(null).featureCount()); assertEquals(1, workTree.countUnstaged(null).treeCount()); try (AutoCloseableIterator<DiffEntry> changes = workTree.getUnstaged(null)) { assertNotNull(changes); assertEquals(4, Iterators.size(changes)); } }
@Test public void testSameTree() { DiffObjectCount count = count(childrenFeatureTree, childrenFeatureTree); assertEquals(0, count.featureCount()); assertEquals(0, count.treeCount()); }
@Test public void testChildrenChildren() { CanonicalTreeBuilder builder = CanonicalTreeBuilder.create(odb, childrenFeatureTree); RevTree changed = builder.remove("3").build(); assertEquals(1, count(childrenFeatureTree, changed).featureCount()); assertEquals(1, count(changed, childrenFeatureTree).featureCount()); builder = CanonicalTreeBuilder.create(odb, changed); builder.put(Node.create("new", FAKE_FEATURE_ID, ObjectId.NULL, TYPE.FEATURE, null)); changed = builder.build(); assertEquals(2, count(childrenFeatureTree, changed).featureCount()); assertEquals(2, count(changed, childrenFeatureTree).featureCount()); builder = CanonicalTreeBuilder.create(odb, changed); builder.put(Node.create("1", FAKE_FEATURE_ID_CHANGED, ObjectId.NULL, TYPE.FEATURE, null)); changed = builder.build(); assertEquals(3, count(childrenFeatureTree, changed).featureCount()); assertEquals(3, count(changed, childrenFeatureTree).featureCount()); }
@Test public void testSameTree() { DiffObjectCount count = count(childrenFeatureTree, childrenFeatureTree); assertEquals(0, count.featureCount()); assertEquals(0, count.treeCount()); }
@Test public void testChildrenChildren() { CanonicalTreeBuilder builder = CanonicalTreeBuilder.create(odb, childrenFeatureTree); RevTree changed = builder.remove("3").build(); assertEquals(1, count(childrenFeatureTree, changed).featureCount()); assertEquals(1, count(changed, childrenFeatureTree).featureCount()); builder = CanonicalTreeBuilder.create(odb, changed); builder.put(RevObjectFactory.defaultInstance().createNode("new", FAKE_FEATURE_ID, ObjectId.NULL, TYPE.FEATURE, null, null)); changed = builder.build(); assertEquals(2, count(childrenFeatureTree, changed).featureCount()); assertEquals(2, count(changed, childrenFeatureTree).featureCount()); builder = CanonicalTreeBuilder.create(odb, changed); builder.put(RevObjectFactory.defaultInstance().createNode("1", FAKE_FEATURE_ID_CHANGED, ObjectId.NULL, TYPE.FEATURE, null, null)); changed = builder.build(); assertEquals(3, count(childrenFeatureTree, changed).featureCount()); assertEquals(3, count(changed, childrenFeatureTree).featureCount()); }
@Test public void testBucketChildren() { CanonicalTreeBuilder builder = CanonicalTreeBuilder.create(odb, bucketsFeatureTree); RevTree changed; int normalizedSizeLimit = CanonicalNodeNameOrder.normalizedSizeLimit(0); for (int i = 0; i < normalizedSizeLimit; i++) { builder.remove(String.valueOf(i)); } changed = builder.build(); odb.put(changed); assertEquals(normalizedSizeLimit, changed.size()); assertEquals(0, changed.bucketsSize()); assertEquals(normalizedSizeLimit, count(bucketsFeatureTree, changed).getFeaturesRemoved()); assertEquals(normalizedSizeLimit, count(bucketsFeatureTree, changed).featureCount()); assertEquals(normalizedSizeLimit, count(changed, bucketsFeatureTree).featureCount()); }
@Test public void testBucketChildren() { CanonicalTreeBuilder builder = CanonicalTreeBuilder.create(odb, bucketsFeatureTree); RevTree changed; int normalizedSizeLimit = CanonicalNodeNameOrder.normalizedSizeLimit(0); for (int i = 0; i < normalizedSizeLimit; i++) { builder.remove(String.valueOf(i)); } changed = builder.build(); odb.put(changed); assertEquals(normalizedSizeLimit, changed.size()); assertTrue(changed.buckets().isEmpty()); assertEquals(normalizedSizeLimit, count(bucketsFeatureTree, changed).getFeaturesRemoved()); assertEquals(normalizedSizeLimit, count(bucketsFeatureTree, changed).featureCount()); assertEquals(normalizedSizeLimit, count(changed, bucketsFeatureTree).featureCount()); }
@Test public void testAddTreeDeletion() throws Exception { insert(points1); insert(points2); geogig.command(AddOp.class).call(); repo.workingTree().delete(pointsName); geogig.command(AddOp.class).call(); List<DiffEntry> staged = toList(repo.index().getStaged(Lists.newArrayList(pointsName))); assertEquals(0, staged.size()); assertEquals(0, repo.index().countStaged(null).featureCount()); assertEquals(0, repo.index().countStaged(null).treeCount()); }
@Test public void testAddTreeDeletion() throws Exception { insert(points1); insert(points2); geogig.command(AddOp.class).call(); repo.workingTree().delete(pointsName); geogig.command(AddOp.class).call(); List<DiffEntry> staged = toList(repo.index().getStaged(Lists.newArrayList(pointsName))); assertEquals(0, staged.size()); assertEquals(0, repo.index().countStaged(null).featureCount()); assertEquals(0, repo.index().countStaged(null).treeCount()); }
@Test public void testBucketBucketRemove() { CanonicalTreeBuilder builder = CanonicalTreeBuilder.create(odb, bucketsFeatureTree); RevTree changed; changed = builder.remove("3").build(); odb.put(changed); assertEquals(1, count(bucketsFeatureTree, changed).featureCount()); assertEquals(1, count(changed, bucketsFeatureTree).featureCount()); builder = CanonicalTreeBuilder.create(odb, changed); for (int i = 0; i < CanonicalNodeNameOrder.normalizedSizeLimit(0) - 1; i++) { builder.remove(String.valueOf(i)); } changed = builder.build(); odb.put(changed); assertEquals(CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1, changed.size()); assertNotEquals(0, changed.bucketsSize()); assertEquals(CanonicalNodeNameOrder.normalizedSizeLimit(0) - 1, count(bucketsFeatureTree, changed).featureCount()); assertEquals(CanonicalNodeNameOrder.normalizedSizeLimit(0) - 1, count(changed, bucketsFeatureTree).featureCount()); builder = CanonicalTreeBuilder.create(odb, changed); builder.remove(String.valueOf(CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1)); changed = builder.build(); odb.put(changed); assertEquals(CanonicalNodeNameOrder.normalizedSizeLimit(0), changed.size()); assertEquals(0, changed.bucketsSize()); }
@Test public void testBucketBucketRemove() { CanonicalTreeBuilder builder = CanonicalTreeBuilder.create(odb, bucketsFeatureTree); RevTree changed; changed = builder.remove("3").build(); odb.put(changed); assertEquals(1, count(bucketsFeatureTree, changed).featureCount()); assertEquals(1, count(changed, bucketsFeatureTree).featureCount()); builder = CanonicalTreeBuilder.create(odb, changed); for (int i = 0; i < CanonicalNodeNameOrder.normalizedSizeLimit(0) - 1; i++) { builder.remove(String.valueOf(i)); } changed = builder.build(); odb.put(changed); assertEquals(CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1, changed.size()); assertFalse(changed.buckets().isEmpty()); assertEquals(CanonicalNodeNameOrder.normalizedSizeLimit(0) - 1, count(bucketsFeatureTree, changed).featureCount()); assertEquals(CanonicalNodeNameOrder.normalizedSizeLimit(0) - 1, count(changed, bucketsFeatureTree).featureCount()); builder = CanonicalTreeBuilder.create(odb, changed); builder.remove(String.valueOf(CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1)); changed = builder.build(); odb.put(changed); assertEquals(CanonicalNodeNameOrder.normalizedSizeLimit(0), changed.size()); assertTrue(changed.buckets().isEmpty()); }
assertEquals(1, count.featureCount()); assertEquals(0, count.treeCount()); count = count(changed, bucketsFeatureTree); assertEquals(1, count.featureCount()); assertEquals(0, count.treeCount()); assertEquals(expected, count(bucketsFeatureTree, changed).featureCount()); assertEquals(expected, count(changed, bucketsFeatureTree).featureCount());
@Test public void testConstructorAndAccessors() { DiffObjectCount count = new DiffObjectCount(); assertEquals(0, count.getFeaturesAdded()); assertEquals(0, count.getFeaturesChanged()); assertEquals(0, count.getFeaturesRemoved()); assertEquals(0, count.getTreesAdded()); assertEquals(0, count.getTreesChanged()); assertEquals(0, count.getTreesRemoved()); assertEquals(0, count.featureCount()); assertEquals(0, count.treeCount()); assertEquals(0, count.count()); }
@Test public void testBucketBucketAdd() { RevTreeBuilder builder = CanonicalTreeBuilder.create(odb, bucketsFeatureTree); final int initialSize = (int) bucketsFeatureTree.size(); final int added = 1 + 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); for (int i = initialSize; i < (initialSize + added); i++) { builder.put(featureRef("", i)); } RevTree changed = builder.build(); odb.put(changed); assertEquals(initialSize + added, changed.size()); assertEquals(added, count(bucketsFeatureTree, changed).featureCount()); assertEquals(added, count(changed, bucketsFeatureTree).featureCount()); assertEquals(added, count(bucketsFeatureTree, changed).getFeaturesAdded()); assertEquals(0, count(bucketsFeatureTree, changed).getFeaturesChanged()); assertEquals(0, count(bucketsFeatureTree, changed).getFeaturesRemoved()); // invert the comparison assertEquals(0, count(changed, bucketsFeatureTree).getFeaturesAdded()); assertEquals(added, count(changed, bucketsFeatureTree).getFeaturesRemoved()); assertEquals(0, count(changed, bucketsFeatureTree).getFeaturesChanged()); }
@Test public void testBucketBucketAdd() { RevTreeBuilder builder = CanonicalTreeBuilder.create(odb, bucketsFeatureTree); final int initialSize = (int) bucketsFeatureTree.size(); final int added = 1 + 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); for (int i = initialSize; i < (initialSize + added); i++) { builder.put(featureRef("", i)); } RevTree changed = builder.build(); odb.put(changed); assertEquals(initialSize + added, changed.size()); assertEquals(added, count(bucketsFeatureTree, changed).featureCount()); assertEquals(added, count(changed, bucketsFeatureTree).featureCount()); assertEquals(added, count(bucketsFeatureTree, changed).getFeaturesAdded()); assertEquals(0, count(bucketsFeatureTree, changed).getFeaturesChanged()); assertEquals(0, count(bucketsFeatureTree, changed).getFeaturesRemoved()); // invert the comparison assertEquals(0, count(changed, bucketsFeatureTree).getFeaturesAdded()); assertEquals(added, count(changed, bucketsFeatureTree).getFeaturesRemoved()); assertEquals(0, count(changed, bucketsFeatureTree).getFeaturesChanged()); }