private static void assertEquivalent(double actual, double expected) { if (expected == POSITIVE_INFINITY) { assertThat(actual).isPositiveInfinity(); } else if (expected == NEGATIVE_INFINITY) { assertThat(actual).isNegativeInfinity(); } else if (Double.isNaN(expected)) { assertThat(actual).isNaN(); } else { assertThat(actual).isWithin(ALLOWED_ERROR).of(expected); } } }
/** * Asserts that {@code transformation} behaves as expected for {@link * LinearTransformation#forNaN}. */ static void assertLinearTransformationNaN(LinearTransformation transformation) { assertThat(transformation.isHorizontal()).isFalse(); assertThat(transformation.isVertical()).isFalse(); assertThat(transformation.slope()).isNaN(); assertThat(transformation.transform(0.0)).isNaN(); assertThat(transformation.inverse()).isSameAs(transformation); }
public void testScale_index_compute_doubleCollection_nan() { assertThat(Quantiles.scale(10).index(5).compute(ONE_TO_FIVE_AND_NAN)).isNaN(); }
assertThat(createSingleStats(Double.POSITIVE_INFINITY, 1.23).populationCovariance()).isNaN(); assertThat(createSingleStats(Double.NEGATIVE_INFINITY, 1.23).populationCovariance()).isNaN(); assertThat(createSingleStats(Double.NaN, 1.23).populationCovariance()).isNaN(); assertThat(TWO_VALUES_PAIRED_STATS.populationCovariance()) .isWithin(ALLOWED_ERROR) double populationCovariance = stats.populationCovariance(); if (values.hasAnyNonFinite()) { assertThat(populationCovariance).named("population covariance of " + values).isNaN(); } else { assertThat(populationCovariance)
@Test public void nonNumberArray() { Struct row = execute( Statement.newBuilder( "SELECT [IEEE_DIVIDE(1, 0), IEEE_DIVIDE(-1, 0), IEEE_DIVIDE(0, 0)]"), Type.array(Type.float64())); assertThat(row.getDoubleList(0)).hasSize(3); assertThat(row.getDoubleList(0).get(0)).isPositiveInfinity(); assertThat(row.getDoubleList(0).get(1)).isNegativeInfinity(); assertThat(row.getDoubleList(0).get(2)).isNaN(); }
@Test public void notANumber() { Struct row = execute(Statement.newBuilder("SELECT IEEE_DIVIDE(0, 0)"), Type.float64()); assertThat(row.getDouble(0)).isNaN(); }
assertThat(Stats.meanOf(POSITIVE_INFINITY)).isPositiveInfinity(); assertThat(Stats.meanOf(NEGATIVE_INFINITY)).isNegativeInfinity(); assertThat(Stats.meanOf(NaN)).isNaN(); assertThat(Stats.meanOf(TWO_VALUES)).isWithin(ALLOWED_ERROR).of(TWO_VALUES_MEAN); double mean = Stats.meanOf(values.asArray()); if (values.hasAnyNaN()) { assertThat(mean).named("mean of " + values).isNaN(); } else if (values.hasAnyPositiveInfinity() && values.hasAnyNegativeInfinity()) { assertThat(mean).named("mean of " + values).isNaN(); } else if (values.hasAnyPositiveInfinity()) { assertThat(mean).named("mean of " + values).isPositiveInfinity();
assertThat(Stats.of(POSITIVE_INFINITY).populationVariance()).isNaN(); assertThat(Stats.of(NEGATIVE_INFINITY).populationVariance()).isNaN(); assertThat(Stats.of(NaN).populationVariance()).isNaN(); assertThat(TWO_VALUES_STATS.populationVariance()) .isWithin(ALLOWED_ERROR) double populationVariance = Stats.of(values.asIterable()).populationVariance(); if (values.hasAnyNonFinite()) { assertThat(populationVariance).named("population variance of " + values).isNaN(); } else { assertThat(populationVariance)
assertThat(Stats.of(POSITIVE_INFINITY).max()).isPositiveInfinity(); assertThat(Stats.of(NEGATIVE_INFINITY).max()).isNegativeInfinity(); assertThat(Stats.of(NaN).max()).isNaN(); assertThat(TWO_VALUES_STATS.max()).isWithin(ALLOWED_ERROR).of(TWO_VALUES_MAX); assertThat(MANY_VALUES_STATS_VARARGS.max()).isWithin(ALLOWED_ERROR).of(MANY_VALUES_MAX); double max = Stats.of(values.asIterable().iterator()).max(); if (values.hasAnyNaN()) { assertThat(max).named("max of " + values).isNaN(); } else if (values.hasAnyPositiveInfinity()) { assertThat(max).named("max of " + values).isPositiveInfinity();
assertThat(Stats.of(POSITIVE_INFINITY).min()).isPositiveInfinity(); assertThat(Stats.of(NEGATIVE_INFINITY).min()).isNegativeInfinity(); assertThat(Stats.of(NaN).min()).isNaN(); assertThat(TWO_VALUES_STATS.min()).isWithin(ALLOWED_ERROR).of(TWO_VALUES_MIN); assertThat(MANY_VALUES_STATS_VARARGS.min()).isWithin(ALLOWED_ERROR).of(MANY_VALUES_MIN); double min = accumulator.snapshot().min(); if (values.hasAnyNaN()) { assertThat(min).named("min of " + values).isNaN(); } else if (values.hasAnyNegativeInfinity()) { assertThat(min).named("min of " + values).isNegativeInfinity();
assertThat(Stats.of(POSITIVE_INFINITY).mean()).isPositiveInfinity(); assertThat(Stats.of(NEGATIVE_INFINITY).mean()).isNegativeInfinity(); assertThat(Stats.of(NaN).mean()).isNaN(); assertThat(TWO_VALUES_STATS.mean()).isWithin(ALLOWED_ERROR).of(TWO_VALUES_MEAN); double mean = Stats.of(values.asArray()).mean(); if (values.hasAnyNaN()) { assertThat(mean).named("mean of " + values).isNaN(); } else if (values.hasAnyPositiveInfinity() && values.hasAnyNegativeInfinity()) { assertThat(mean).named("mean of " + values).isNaN(); } else if (values.hasAnyPositiveInfinity()) { assertThat(mean).named("mean of " + values).isPositiveInfinity();
double meanByAddAllStats = accumulatorByAddAllStats.mean(); if (values.hasAnyNaN()) { assertThat(mean).named("mean of " + values).isNaN(); assertThat(meanByAddAllStats).named("mean by addAll(Stats) of " + values).isNaN(); } else if (values.hasAnyPositiveInfinity() && values.hasAnyNegativeInfinity()) { assertThat(mean).named("mean of " + values).isNaN(); assertThat(meanByAddAllStats).named("mean by addAll(Stats) of " + values).isNaN(); } else if (values.hasAnyPositiveInfinity()) { assertThat(mean).named("mean of " + values).isPositiveInfinity();
accumulatorByAddAllPartitionedPairedStats.populationCovariance(); if (values.hasAnyNonFinite()) { assertThat(populationCovariance).named("population covariance of " + values).isNaN(); assertThat(populationCovarianceByAddAllPartitionedPairedStats) .named("population covariance by addAll(PairedStats) of " + values) .isNaN(); } else { assertThat(populationCovariance)
double minByAddAllStats = accumulatorByAddAllStats.min(); if (values.hasAnyNaN()) { assertThat(min).named("min of " + values).isNaN(); assertThat(minByAddAllStats).named("min by addAll(Stats) of " + values).isNaN(); } else if (values.hasAnyNegativeInfinity()) { assertThat(min).named("min of " + values).isNegativeInfinity();
double maxByAddAllStats = accumulatorByAddAllStats.max(); if (values.hasAnyNaN()) { assertThat(max).named("max of " + values).isNaN(); assertThat(maxByAddAllStats).named("max by addAll(Stats) of " + values).isNaN(); } else if (values.hasAnyPositiveInfinity()) { assertThat(max).named("max of " + values).isPositiveInfinity();
double populationVarianceByAddAllStats = accumulatorByAddAllStats.populationVariance(); if (values.hasAnyNonFinite()) { assertThat(populationVariance).named("population variance of " + values).isNaN(); assertThat(populationVarianceByAddAllStats) .named("population variance by addAll(Stats) of " + values) .isNaN(); } else { assertThat(populationVariance)
@Test public void writeFloat64NonNumbers() { write(baseInsert().set("Float64Value").to(Double.NEGATIVE_INFINITY).build()); Struct row = readLastRow("Float64Value"); assertThat(row.isNull(0)).isFalse(); assertThat(row.getDouble(0)).isNegativeInfinity(); write(baseInsert().set("Float64Value").to(Double.POSITIVE_INFINITY).build()); row = readLastRow("Float64Value"); assertThat(row.isNull(0)).isFalse(); assertThat(row.getDouble(0)).isPositiveInfinity(); write(baseInsert().set("Float64Value").to(Double.NaN).build()); row = readLastRow("Float64Value"); assertThat(row.isNull(0)).isFalse(); assertThat(row.getDouble(0)).isNaN(); }
assertThat(pearsonsCorrelationCoefficient) .named("Pearson's correlation coefficient of " + values) .isNaN(); } else { assertThat(pearsonsCorrelationCoefficient)
/** * Asserts that {@code transformation} behaves as expected for * {@link LinearTransformation#forNaN}. */ static void assertLinearTransformationNaN(LinearTransformation transformation) { assertThat(transformation.isHorizontal()).isFalse(); assertThat(transformation.isVertical()).isFalse(); assertThat(transformation.slope()).isNaN(); assertThat(transformation.transform(0.0)).isNaN(); assertThat(transformation.inverse()).isSameAs(transformation); }