public RevTree createTreesTree(ObjectStore source, int numSubTrees, int featuresPerSubtre, ObjectId metadataId) { RevTree tree = createTreesTreeBuilder(source, numSubTrees, featuresPerSubtre, metadataId) .build(); source.put(tree); return tree; }
public static RevTree createTreesTree(ObjectStore source, int numSubTrees, int featuresPerSubtre, ObjectId metadataId) { RevTree tree = createTreesTreeBuilder(source, numSubTrees, featuresPerSubtre, metadataId) .build(); source.put(tree); return tree; }
@Test public void testTrees() { assertEquals(0, list(emptyTree, Strategy.TREES_ONLY).size()); assertEquals(0, list(featuresLeafTree, Strategy.TREES_ONLY).size()); assertEquals(100, list(treesLeafTree, Strategy.TREES_ONLY).size()); assertEquals(10, list(mixedLeafTree, Strategy.TREES_ONLY).size()); assertEquals(0, list(featuresBucketsTree, Strategy.TREES_ONLY).size()); int numSubTrees = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; int featuresPerTree = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; RevTreeBuilder builder = RevObjectTestSupport.INSTANCE.createTreesTreeBuilder(source, numSubTrees, featuresPerTree, metadataId); for (int i = 0; i < 25000; i++) { builder.put(featureNode("f", i)); } RevTree mixedBucketsTree = builder.build(); assertEquals(numSubTrees, list(mixedBucketsTree, Strategy.TREES_ONLY).size()); }
@Test public void testLeafLeafWithSubStrees() { // two leaf trees ObjectId metadataId = RevObjectTestSupport.hashString("fake"); RevTree left = RevObjectTestSupport.INSTANCE .createTreesTreeBuilder(leftSource, 2, 2, metadataId).build(); RevTree right = RevObjectTestSupport.INSTANCE .createTreesTreeBuilder(rightSource, 3, 2, metadataId).build(); leftSource.put(left); rightSource.put(right); PostOrderDiffWalk visitor = new PostOrderDiffWalk(left, right, leftSource, rightSource); visitor.walk(testConsumer); List<Bounded> leftCalls = testConsumer.orderedLeft; List<Bounded> rightCalls = testConsumer.orderedRight; NodeRef lroot = nodeFor(left); NodeRef rroot = nodeFor(right); assertEquals(4, leftCalls.size()); assertEquals(4, rightCalls.size()); assertNull(leftCalls.get(0)); assertNull(leftCalls.get(1)); assertNull(leftCalls.get(2)); assertEquals(lroot, leftCalls.get(3)); assertEquals(rroot, rightCalls.get(3)); assertNotNull(rightCalls.get(2)); assertEquals(RevObject.TYPE.TREE, ((NodeRef) rightCalls.get(2)).getType()); assertEquals(RevObject.TYPE.FEATURE, ((NodeRef) rightCalls.get(1)).getType()); assertEquals(RevObject.TYPE.FEATURE, ((NodeRef) rightCalls.get(0)).getType()); }
@Test public void testLeafLeafWithSubStrees() { // two leaf trees ObjectId metadataId = RevObjectTestSupport.hashString("fake"); RevTree left = createTreesTreeBuilder(leftSource, 2, 2, metadataId).build(); RevTree right = createTreesTreeBuilder(rightSource, 3, 2, metadataId).build(); leftSource.put(left); rightSource.put(right); PostOrderDiffWalk visitor = new PostOrderDiffWalk(left, right, leftSource, rightSource); visitor.walk(testConsumer); List<Bounded> leftCalls = testConsumer.orderedLeft; List<Bounded> rightCalls = testConsumer.orderedRight; NodeRef lroot = nodeFor(left); NodeRef rroot = nodeFor(right); assertEquals(4, leftCalls.size()); assertEquals(4, rightCalls.size()); assertNull(leftCalls.get(0)); assertNull(leftCalls.get(1)); assertNull(leftCalls.get(2)); assertEquals(lroot, leftCalls.get(3)); assertEquals(rroot, rightCalls.get(3)); assertNotNull(rightCalls.get(2)); assertEquals(RevObject.TYPE.TREE, ((NodeRef) rightCalls.get(2)).getType()); assertEquals(RevObject.TYPE.FEATURE, ((NodeRef) rightCalls.get(1)).getType()); assertEquals(RevObject.TYPE.FEATURE, ((NodeRef) rightCalls.get(0)).getType()); }
@Test public void testTrees() { assertEquals(0, list(emptyTree, Strategy.TREES_ONLY).size()); assertEquals(0, list(featuresLeafTree, Strategy.TREES_ONLY).size()); assertEquals(100, list(treesLeafTree, Strategy.TREES_ONLY).size()); assertEquals(10, list(mixedLeafTree, Strategy.TREES_ONLY).size()); assertEquals(0, list(featuresBucketsTree, Strategy.TREES_ONLY).size()); int numSubTrees = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; int featuresPerTree = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; RevTreeBuilder builder = createTreesTreeBuilder(source, numSubTrees, featuresPerTree, metadataId); for (int i = 0; i < 25000; i++) { builder.put(featureNode("f", i)); } RevTree mixedBucketsTree = builder.build(); assertEquals(numSubTrees, list(mixedBucketsTree, Strategy.TREES_ONLY).size()); }
@Test public void testRecursiveTreesOnly() { assertEquals(0, list(emptyTree, Strategy.RECURSIVE_TREES_ONLY).size()); assertEquals(0, list(featuresLeafTree, Strategy.RECURSIVE_TREES_ONLY).size()); assertEquals(treesLeafTree.numTrees(), list(treesLeafTree, Strategy.RECURSIVE_TREES_ONLY).size()); assertEquals(mixedLeafTree.numTrees(), list(mixedLeafTree, Strategy.RECURSIVE_TREES_ONLY).size()); assertEquals(0, list(featuresBucketsTree, Strategy.RECURSIVE_TREES_ONLY).size()); int numSubTrees = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; int featuresPerTree = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; RevTreeBuilder builder = RevObjectTestSupport.INSTANCE.createTreesTreeBuilder(source, numSubTrees, featuresPerTree, metadataId); for (int i = 0; i < 25000; i++) { builder.put(featureNode("f", i)); } RevTree mixedBucketsTree = builder.build(); assertEquals(numSubTrees, list(mixedBucketsTree, Strategy.RECURSIVE_TREES_ONLY).size()); }
@Test public void testRecursiveTreesOnly() { assertEquals(0, list(emptyTree, Strategy.RECURSIVE_TREES_ONLY).size()); assertEquals(0, list(featuresLeafTree, Strategy.RECURSIVE_TREES_ONLY).size()); assertEquals(treesLeafTree.numTrees(), list(treesLeafTree, Strategy.RECURSIVE_TREES_ONLY).size()); assertEquals(mixedLeafTree.numTrees(), list(mixedLeafTree, Strategy.RECURSIVE_TREES_ONLY).size()); assertEquals(0, list(featuresBucketsTree, Strategy.RECURSIVE_TREES_ONLY).size()); int numSubTrees = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; int featuresPerTree = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; RevTreeBuilder builder = createTreesTreeBuilder(source, numSubTrees, featuresPerTree, metadataId); for (int i = 0; i < 25000; i++) { builder.put(featureNode("f", i)); } RevTree mixedBucketsTree = builder.build(); assertEquals(numSubTrees, list(mixedBucketsTree, Strategy.RECURSIVE_TREES_ONLY).size()); }
@Test public void testRecursiveFeaturesOnly() { assertEquals(0, list(emptyTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); assertEquals(100, list(featuresLeafTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); assertEquals(treesLeafTree.size(), list(treesLeafTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); assertEquals(mixedLeafTree.size(), list(mixedLeafTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); assertEquals(featuresBucketsTree.size(), list(featuresBucketsTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); int numSubTrees = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; int featuresPerTree = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; RevTreeBuilder builder = RevObjectTestSupport.INSTANCE.createTreesTreeBuilder(source, numSubTrees, featuresPerTree, metadataId); for (int i = 0; i < 25000; i++) { builder.put(featureNode("f", i)); } RevTree mixedBucketsTree = builder.build(); assertEquals(mixedBucketsTree.size(), list(mixedBucketsTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); }
@Test public void testRecursiveFeaturesOnly() { assertEquals(0, list(emptyTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); assertEquals(100, list(featuresLeafTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); assertEquals(treesLeafTree.size(), list(treesLeafTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); assertEquals(mixedLeafTree.size(), list(mixedLeafTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); assertEquals(featuresBucketsTree.size(), list(featuresBucketsTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); int numSubTrees = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; int featuresPerTree = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; RevTreeBuilder builder = createTreesTreeBuilder(source, numSubTrees, featuresPerTree, metadataId); for (int i = 0; i < 25000; i++) { builder.put(featureNode("f", i)); } RevTree mixedBucketsTree = builder.build(); assertEquals(mixedBucketsTree.size(), list(mixedBucketsTree, Strategy.RECURSIVE_FEATURES_ONLY).size()); }
@Test public void testRecursive() { assertEquals(0, list(emptyTree, Strategy.RECURSIVE).size()); assertEquals(100, list(featuresLeafTree, Strategy.RECURSIVE).size()); assertEquals(treesLeafTree.size() + treesLeafTree.numTrees(), list(treesLeafTree, Strategy.RECURSIVE).size()); assertEquals(mixedLeafTree.size() + mixedLeafTree.numTrees(), list(mixedLeafTree, Strategy.RECURSIVE).size()); assertEquals(featuresBucketsTree.size(), list(featuresBucketsTree, Strategy.RECURSIVE).size()); int numSubTrees = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; int featuresPerTree = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; RevTreeBuilder builder = RevObjectTestSupport.INSTANCE.createTreesTreeBuilder(source, numSubTrees, featuresPerTree, metadataId); for (int i = 0; i < 25000; i++) { builder.put(featureNode("f", i)); } RevTree mixedBucketsTree = builder.build(); assertEquals(mixedBucketsTree.size() + mixedBucketsTree.numTrees(), list(mixedBucketsTree, Strategy.RECURSIVE).size()); }
@Test public void testRecursive() { assertEquals(0, list(emptyTree, Strategy.RECURSIVE).size()); assertEquals(100, list(featuresLeafTree, Strategy.RECURSIVE).size()); assertEquals(treesLeafTree.size() + treesLeafTree.numTrees(), list(treesLeafTree, Strategy.RECURSIVE).size()); assertEquals(mixedLeafTree.size() + mixedLeafTree.numTrees(), list(mixedLeafTree, Strategy.RECURSIVE).size()); assertEquals(featuresBucketsTree.size(), list(featuresBucketsTree, Strategy.RECURSIVE).size()); int numSubTrees = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; int featuresPerTree = CanonicalNodeNameOrder.normalizedSizeLimit(0) + 1; RevTreeBuilder builder = createTreesTreeBuilder(source, numSubTrees, featuresPerTree, metadataId); for (int i = 0; i < 25000; i++) { builder.put(featureNode("f", i)); } RevTree mixedBucketsTree = builder.build(); assertEquals(mixedBucketsTree.size() + mixedBucketsTree.numTrees(), list(mixedBucketsTree, Strategy.RECURSIVE).size()); }
@Before public void setUp() { source = new HeapObjectDatabase(); source.open(); metadataId = RevObjectTestSupport.hashString("fake id"); treePath = ""; emptyTree = RevTree.EMPTY; featuresLeafTree = createFeaturesTree(source, "featuresLeafTree", 100); assertFalse(featuresLeafTree.features().isEmpty()); treesLeafTree = createTreesTree(source, 100, 10, metadataId); assertFalse(treesLeafTree.trees().isEmpty()); RevTreeBuilder builder = createTreesTreeBuilder(source, 10, 10, metadataId); for (int i = 0; i < 100; i++) { builder.put(featureNode("feature.", i)); } mixedLeafTree = builder.build(); source.put(mixedLeafTree); featuresBucketsTree = createFeaturesTree(source, "feature.", 25000); }
@Before public void setUp() { source = new HeapObjectDatabase(); source.open(); metadataId = RevObjectTestSupport.hashString("fake id"); treePath = ""; emptyTree = RevTree.EMPTY; featuresLeafTree = RevObjectTestSupport.INSTANCE.createFeaturesTree(source, "featuresLeafTree", 100); assertFalse(featuresLeafTree.features().isEmpty()); treesLeafTree = RevObjectTestSupport.INSTANCE.createTreesTree(source, 100, 10, metadataId); assertFalse(treesLeafTree.trees().isEmpty()); RevTreeBuilder builder = RevObjectTestSupport.INSTANCE.createTreesTreeBuilder(source, 10, 10, metadataId); for (int i = 0; i < 100; i++) { builder.put(featureNode("feature.", i)); } mixedLeafTree = builder.build(); source.put(mixedLeafTree); featuresBucketsTree = RevObjectTestSupport.INSTANCE.createFeaturesTree(source, "feature.", 25000); }