blob: 313b8c621eba304e4ac1a1313d075a42078d6f9e [file] [log] [blame]
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package libcore.java.util;
import java.util.DoubleSummaryStatistics;
public class DoubleSummaryStatisticsTest extends junit.framework.TestCase {
private static final double data1[] = {22.4, -53.4, 74.8, -12.4, 17, 0, 100};
private static final double data2[] = {1.2, 3.5, 2.7, 1, 7.6};
public void test_empty() {
DoubleSummaryStatistics dss = new DoubleSummaryStatistics();
assertEquals(0, dss.getCount());
assertEquals(0.0d, dss.getSum());
assertEquals(0.0d, dss.getAverage());
assertEquals(Double.POSITIVE_INFINITY, dss.getMin());
assertEquals(Double.NEGATIVE_INFINITY, dss.getMax());
}
public void test_accept() {
DoubleSummaryStatistics dss = new DoubleSummaryStatistics();
dss.accept(100.5d);
assertEquals(1, dss.getCount());
assertEquals(100.5d, dss.getSum());
dss.accept(45.0d);
assertEquals(2, dss.getCount());
assertEquals(145.5d, dss.getSum());
}
public void test_combine() {
DoubleSummaryStatistics dss1 = getDoubleSummaryStatisticsData2();
DoubleSummaryStatistics dssCombined = getDoubleSummaryStatisticsData1();
dssCombined.combine(dss1);
assertEquals(12, dssCombined.getCount());
assertEquals(164.4d, dssCombined.getSum());
assertEquals(100.0d, dssCombined.getMax());
assertEquals(-53.4d, dssCombined.getMin());
assertEquals(13.7, dssCombined.getAverage(), 1E-6);
}
public void test_getCount() {
DoubleSummaryStatistics dss1 = getDoubleSummaryStatisticsData1();
assertEquals(data1.length, dss1.getCount());
}
public void test_getSum() {
DoubleSummaryStatistics dss1 = getDoubleSummaryStatisticsData1();
assertEquals(148.4, dss1.getSum());
dss1.accept(Double.NaN);
assertEquals(Double.NaN, dss1.getSum());
}
public void test_getMin() {
DoubleSummaryStatistics dss1 = getDoubleSummaryStatisticsData1();
assertEquals(-53.4d, dss1.getMin());
dss1.accept(Double.NaN);
assertEquals(Double.NaN, dss1.getMin());
}
public void test_getMax() {
DoubleSummaryStatistics dss1 = getDoubleSummaryStatisticsData1();
assertEquals(100.0d, dss1.getMax());
dss1.accept(Double.NaN);
assertEquals(Double.NaN, dss1.getMax());
}
public void test_getAverage() {
DoubleSummaryStatistics dss1 = getDoubleSummaryStatisticsData1();
assertEquals(21.2, dss1.getAverage(), 1E-6);
dss1.accept(Double.NaN);
assertEquals(Double.NaN, dss1.getAverage());
}
private static DoubleSummaryStatistics getDoubleSummaryStatisticsData1() {
DoubleSummaryStatistics dss = new DoubleSummaryStatistics();
for (double value : data1) {
dss.accept(value);
}
return dss;
}
private static DoubleSummaryStatistics getDoubleSummaryStatisticsData2() {
DoubleSummaryStatistics dss = new DoubleSummaryStatistics();
for (double value : data2) {
dss.accept(value);
}
return dss;
}
}