public void LeafItemFilter_GetPredicate_FiltersToExpectedResults() { var filter = new LeafFilterNode <NumericRangeFilter>(new NumericRangeFilter(5, 10)); var values = new[] { 1, 3, 5, 9, 11 }; var expectedFilteredValues = new[] { 5, 9 }; var filterPredicate = filter.GetPredicate <NumericRangeFilter, int>(); var filteredValues = values.Where(filterPredicate); Assert.Equal(expectedFilteredValues, filteredValues); }
public void Aggregate_ReturnsExpectedResult_WhenComputingMinimumLowerBound() { var filter5To10 = new LeafFilterNode <NumericRangeFilter>(new NumericRangeFilter(5, 10)); var filter = filter5To10.Invert(); double GetLowerBound(NumericRangeFilter f) { return(f.LowerBound); } // Reduce the filter to get the length of the longest interval var result = filter.Aggregate( (lowerBounds, _) => lowerBounds.Min(), length => double.NegativeInfinity, leafFilterNode => GetLowerBound(leafFilterNode.Filter)); // Max is 15 - 8 Assert.Equal(double.NegativeInfinity, result); }