| /* |
| * 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; |
| } |
| } |