@Override public Aggregator[][] build() { Pair<Integer, Integer> startEnd = computeStartEnd(cardinality); Arrays.fill(expansionAggs, 0, startEnd.lhs, EMPTY_ARRAY); Arrays.fill(expansionAggs, startEnd.lhs, startEnd.rhs, null); Arrays.fill(expansionAggs, startEnd.rhs, expansionAggs.length, EMPTY_ARRAY); return expansionAggs; } }
@Override public Aggregator[][] getDimExtractionRowSelector(TopNQuery query, TopNParams params, StorageAdapter storageAdapter) { if (params.getCardinality() < 0) { throw new UnsupportedOperationException("Cannot operate on a dimension with unknown cardinality"); } // This method is used for the DimExtractionTopNAlgorithm only. // Unlike regular topN we cannot rely on ordering to optimize. // Optimization possibly requires a reverse lookup from value to ID, which is // not possible when applying an extraction function final BaseTopNAlgorithm.AggregatorArrayProvider provider = new BaseTopNAlgorithm.AggregatorArrayProvider( (DimensionSelector) params.getSelectorPlus().getSelector(), query, params.getCardinality(), storageAdapter ); return provider.build(); }
@Override public Aggregator[][] build() { Pair<Integer, Integer> startEnd = computeStartEnd(cardinality); Arrays.fill(expansionAggs, 0, startEnd.lhs, EMPTY_ARRAY); Arrays.fill(expansionAggs, startEnd.lhs, startEnd.rhs, null); Arrays.fill(expansionAggs, startEnd.rhs, expansionAggs.length, EMPTY_ARRAY); return expansionAggs; } }
BaseTopNAlgorithm.AggregatorArrayProvider arrayProviderToTest = new BaseTopNAlgorithm.AggregatorArrayProvider( dimSelector, query, ); arrayProviderToTest.ignoreAfterThreshold(); Pair<Integer, Integer> thePair = arrayProviderToTest.computeStartEnd(cardinality); Assert.assertEquals(new Integer(0), thePair.lhs); Assert.assertEquals(new Integer(cardinality), thePair.rhs);
BaseTopNAlgorithm.AggregatorArrayProvider arrayProviderToTest = new BaseTopNAlgorithm.AggregatorArrayProvider( dimSelector, query, ); arrayProviderToTest.ignoreAfterThreshold(); Pair<Integer, Integer> thePair = arrayProviderToTest.computeStartEnd(cardinality); Assert.assertEquals(new Integer(0), thePair.lhs); Assert.assertEquals(new Integer(threshold), thePair.rhs);
DimensionSelector dimSelector = makeFakeDimSelector(cardinality); BaseTopNAlgorithm.AggregatorArrayProvider arrayProviderToTest = new BaseTopNAlgorithm.AggregatorArrayProvider( dimSelector, query, ); arrayProviderToTest.ignoreAfterThreshold(); Pair<Integer, Integer> thePair = arrayProviderToTest.computeStartEnd(cardinality); Assert.assertEquals(new Integer(0), thePair.lhs); Assert.assertEquals(new Integer(cardinality), thePair.rhs);
BaseTopNAlgorithm.AggregatorArrayProvider arrayProviderToTest = new BaseTopNAlgorithm.AggregatorArrayProvider( dimSelector, query, ); Pair<Integer, Integer> thePair = arrayProviderToTest.computeStartEnd(cardinality); Assert.assertEquals(new Integer(0), thePair.lhs); Assert.assertEquals(new Integer(cardinality), thePair.rhs);
DimensionSelector dimSelector = makeFakeDimSelector(cardinality); BaseTopNAlgorithm.AggregatorArrayProvider arrayProviderToTest = new BaseTopNAlgorithm.AggregatorArrayProvider( dimSelector, query, ); arrayProviderToTest.ignoreAfterThreshold(); Pair<Integer, Integer> thePair = arrayProviderToTest.computeStartEnd(cardinality); Assert.assertEquals(new Integer(0), thePair.lhs); Assert.assertEquals(new Integer(threshold), thePair.rhs);
@Override public Aggregator[][] getDimExtractionRowSelector(TopNQuery query, TopNParams params, StorageAdapter storageAdapter) { if (params.getCardinality() < 0) { throw new UnsupportedOperationException("Cannot operate on a dimension with unknown cardinality"); } // This method is used for the DimExtractionTopNAlgorithm only. // Unlike regular topN we cannot rely on ordering to optimize. // Optimization possibly requires a reverse lookup from value to ID, which is // not possible when applying an extraction function final BaseTopNAlgorithm.AggregatorArrayProvider provider = new BaseTopNAlgorithm.AggregatorArrayProvider( (DimensionSelector) params.getSelectorPlus().getSelector(), query, params.getCardinality(), storageAdapter ); return provider.build(); }