@Test
public void testNumericFirstOrdering()
{
ArithmeticPostAggregator agg = new ArithmeticPostAggregator(
null,
"quotient",
ImmutableList.of(
new ConstantPostAggregator("zero", 0),
new ConstantPostAggregator("zero", 0)
),
"numericFirst"
);
final Comparator numericFirst = agg.getComparator();
Assert.assertTrue(numericFirst.compare(Double.NaN, 0.0) < 0);
Assert.assertTrue(numericFirst.compare(Double.POSITIVE_INFINITY, 0.0) < 0);
Assert.assertTrue(numericFirst.compare(Double.NEGATIVE_INFINITY, 0.0) < 0);
Assert.assertTrue(numericFirst.compare(0.0, Double.NaN) > 0);
Assert.assertTrue(numericFirst.compare(0.0, Double.POSITIVE_INFINITY) > 0);
Assert.assertTrue(numericFirst.compare(0.0, Double.NEGATIVE_INFINITY) > 0);
Assert.assertTrue(numericFirst.compare(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY) < 0);
Assert.assertTrue(numericFirst.compare(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY) > 0);
Assert.assertTrue(numericFirst.compare(Double.NaN, Double.POSITIVE_INFINITY) > 0);
Assert.assertTrue(numericFirst.compare(Double.NaN, Double.NEGATIVE_INFINITY) > 0);
Assert.assertTrue(numericFirst.compare(Double.POSITIVE_INFINITY, Double.NaN) < 0);
Assert.assertTrue(numericFirst.compare(Double.NEGATIVE_INFINITY, Double.NaN) < 0);
}
}