private static void assertRange(double min, double max) { DoubleRange range = new DoubleRange(min, max); assertEquals(range.getMin(), min); assertEquals(range.getMax(), max); } }
private void assertClose(Object actual, Object expected, String comparedValue) { if (actual instanceof Slice) { assertEquals(actual.getClass(), expected.getClass(), comparedValue); assertEquals(((Slice) actual).toStringUtf8(), ((Slice) expected).toStringUtf8()); } else if (actual instanceof DoubleRange) { DoubleRange actualRange = (DoubleRange) actual; DoubleRange expectedRange = (DoubleRange) expected; assertClose(actualRange.getMin(), expectedRange.getMin(), comparedValue); assertClose(actualRange.getMax(), expectedRange.getMax(), comparedValue); } else { double actualDouble = toDouble(actual); double expectedDouble = toDouble(expected); assertEquals(actualDouble, expectedDouble, expectedDouble * tolerance, comparedValue); } }
private SymbolStatsEstimate toSymbolStatistics(TableStatistics tableStatistics, ColumnStatistics columnStatistics) { double nullsFraction = columnStatistics.getNullsFraction().getValue(); double nonNullRowsCount = tableStatistics.getRowCount().getValue() * (1.0 - nullsFraction); double averageRowSize = nonNullRowsCount == 0 ? 0 : columnStatistics.getDataSize().getValue() / nonNullRowsCount; SymbolStatsEstimate.Builder result = SymbolStatsEstimate.builder(); result.setNullsFraction(nullsFraction); result.setDistinctValuesCount(columnStatistics.getDistinctValuesCount().getValue()); result.setAverageRowSize(averageRowSize); columnStatistics.getRange().ifPresent(range -> { result.setLowValue(range.getMin()); result.setHighValue(range.getMax()); }); return result.build(); } }
private void assertClose(Object actual, Object expected, String comparedValue) { if (actual instanceof Slice) { assertEquals(actual.getClass(), expected.getClass(), comparedValue); assertEquals(((Slice) actual).toStringUtf8(), ((Slice) expected).toStringUtf8()); } else if (actual instanceof DoubleRange) { DoubleRange actualRange = (DoubleRange) actual; DoubleRange expectedRange = (DoubleRange) expected; assertClose(actualRange.getMin(), expectedRange.getMin(), comparedValue); assertClose(actualRange.getMax(), expectedRange.getMax(), comparedValue); } else { double actualDouble = toDouble(actual); double expectedDouble = toDouble(expected); assertEquals(actualDouble, expectedDouble, expectedDouble * tolerance, comparedValue); } }