/** * @return the max number of nodes a leaf tree can hold at depth {@code depthIndex} as mandated * by {@link CanonicalNodeNameOrder} */ @Override public int normalizedSizeLimit(final int depthIndex) { return CanonicalNodeNameOrder.normalizedSizeLimit(depthIndex); }
/** * @return the max number of nodes a leaf tree can hold at depth {@code depthIndex} as mandated * by {@link CanonicalNodeNameOrder} */ @Override public int normalizedSizeLimit(final int depthIndex) { return CanonicalNodeNameOrder.normalizedSizeLimit(depthIndex); }
private RevTree manuallyCreateLeafTree(final int nodeCount) { Preconditions.checkArgument(nodeCount <= CanonicalNodeNameOrder.normalizedSizeLimit(0)); ImmutableList.Builder<Node> nodes = ImmutableList.builder(); for (int i = 0; i < nodeCount; i++) { nodes.add(featureNode("f", i)); } return createLeafTree(nodes.build()); }
@Test public void testBucketLeafOneLevelDepth() { final int leftsize = 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); final int rightsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 100; RevTree left = createFeaturesTree(leftSource, "f", leftsize); assertDepth(left, leftSource, 1); testBucketLeafDeeper(left, rightsize, overlapCount); }
@Test public void testBucketLeafOneLevelDepth() { final int leftsize = 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); final int rightsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 100; RevTree left = testSupport.createFeaturesTree(leftSource, "f", leftsize); assertDepth(left, leftSource, 1); testBucketLeafDeeper(left, rightsize, overlapCount); }
@Test public void testLeafBucketOneLevelDepth() { final int leftsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int rightsize = 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 0; RevTree right = testSupport.createFeaturesTree(rightSource, "f", rightsize); assertDepth(right, rightSource, 1); testLeafBucketDeeper(leftsize, right, overlapCount); }
@Test public void testLeafBucketOneLevelDepth() { final int leftsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int rightsize = 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 0; RevTree right = RevObjectTestSupport.INSTANCE.createFeaturesTree(rightSource, "f", rightsize); assertDepth(right, rightSource, 1); testLeafBucketDeeper(leftsize, right, overlapCount); }
@Test public void testBucketLeafOneLevelDepth() { final int leftsize = 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); final int rightsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 100; RevTree left = RevObjectTestSupport.INSTANCE.createFeaturesTree(leftSource, "f", leftsize); assertDepth(left, leftSource, 1); testBucketLeafDeeper(left, rightsize, overlapCount); }
@Test public void testLeafBucketOneLevelDepth() { final int leftsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int rightsize = 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 0; RevTree right = createFeaturesTree(rightSource, "f", rightsize); assertDepth(right, rightSource, 1); testLeafBucketDeeper(leftsize, right, overlapCount); }
@Test public void testBucketLeafTwoLevelsDepth() { final int leftsize = CanonicalNodeNameOrder.maxBucketsForLevel(0) * CanonicalNodeNameOrder.normalizedSizeLimit(0); RevTree left = testSupport.createFeaturesTree(leftSource, "f", leftsize); assertDepth(left, leftSource, 2); final int rightsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 100; testBucketLeafDeeper(left, rightsize, overlapCount); }
@Test public void testBucketLeafTwoLevelsDepth() { final int leftsize = CanonicalNodeNameOrder.maxBucketsForLevel(0) * CanonicalNodeNameOrder.normalizedSizeLimit(0); RevTree left = RevObjectTestSupport.INSTANCE.createFeaturesTree(leftSource, "f", leftsize); assertDepth(left, leftSource, 2); final int rightsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 100; testBucketLeafDeeper(left, rightsize, overlapCount); }
@Test public void testLeafBucketTwoLevelsDepth() { final int leftsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int rightsize = CanonicalNodeNameOrder.maxBucketsForLevel(0) * CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 100; RevTree right = RevObjectTestSupport.INSTANCE.createFeaturesTree(rightSource, "f", rightsize); assertDepth(right, rightSource, 2); testLeafBucketDeeper(leftsize, right, overlapCount); }
@Test public void testLeafBucketTwoLevelsDepth() { final int leftsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int rightsize = CanonicalNodeNameOrder.maxBucketsForLevel(0) * CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 100; RevTree right = testSupport.createFeaturesTree(rightSource, "f", rightsize); assertDepth(right, rightSource, 2); testLeafBucketDeeper(leftsize, right, overlapCount); }
@Test public void testBucketLeafTwoLevelsDepth() { final int leftsize = CanonicalNodeNameOrder.maxBucketsForLevel(0) * CanonicalNodeNameOrder.normalizedSizeLimit(0); RevTree left = createFeaturesTree(leftSource, "f", leftsize); assertDepth(left, leftSource, 2); final int rightsize = CanonicalNodeNameOrder.normalizedSizeLimit(0); final int overlapCount = 100; testBucketLeafDeeper(left, rightsize, overlapCount); }
/** * Assert two trees that have the same contents resolve to the same id regardless of the order * the contents were added * * @throws Exception */ @Test public void testEquality() throws Exception { testEquality(100); testEquality(100 + CanonicalNodeNameOrder.normalizedSizeLimit(0)); }
@Test public void testFeaturesBucketsTree() { int numEntries = 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); RevTree tree = createFeaturesTree(source, "feature.", numEntries); assertEquals(numEntries, list(tree, Strategy.FEATURES_ONLY).size()); assertEquals(featuresBucketsTree.size(), list(featuresBucketsTree, Strategy.FEATURES_ONLY).size()); }
@Test public void testFalseReturnValueOnConsumerFeatureAbortsTraversal() { final int leftsize = 100;// RevTree.NORMALIZED_SIZE_LIMIT; final int rightsize = 10 * CanonicalNodeNameOrder.normalizedSizeLimit(0); final RevTree left = RevObjectTestSupport.INSTANCE.createFeaturesTree(leftSource, "f", leftsize); final RevTree right = RevObjectTestSupport.INSTANCE.createFeaturesTree(rightSource, "f", rightsize); checkFalseReturnValueOnConsumerFeatureAbortsTraversal(left, right); }
@Test public void testFeaturesBucketsTree() { int numEntries = 2 * CanonicalNodeNameOrder.normalizedSizeLimit(0); RevTree tree = RevObjectTestSupport.INSTANCE.createFeaturesTree(source, "feature.", numEntries); assertEquals(numEntries, list(tree, Strategy.FEATURES_ONLY).size()); assertEquals(featuresBucketsTree.size(), list(featuresBucketsTree, Strategy.FEATURES_ONLY).size()); }
@Test public void testFalseReturnValueOnConsumerFeatureAbortsTraversal() { final int leftsize = 100;// RevTree.NORMALIZED_SIZE_LIMIT; final int rightsize = 10 * CanonicalNodeNameOrder.normalizedSizeLimit(0); final RevTree left = testSupport.createFeaturesTree(leftSource, "f", leftsize); final RevTree right = testSupport.createFeaturesTree(rightSource, "f", rightsize); checkFalseReturnValueOnConsumerFeatureAbortsTraversal(left, right); }
@Test public void testFalseReturnValueOnConsumerFeatureAbortsTraversal() { final int leftsize = 100;// RevTree.NORMALIZED_SIZE_LIMIT; final int rightsize = 10 * CanonicalNodeNameOrder.normalizedSizeLimit(0); final RevTree left = createFeaturesTree(leftSource, "f", leftsize); final RevTree right = createFeaturesTree(rightSource, "f", rightsize); checkFalseReturnValueOnConsumerFeatureAbortsTraversal(left, right); }