/* * Copyright 2016 Google Inc. * * 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 com.google.gwt.emultest.java8.util; import com.google.gwt.emultest.java.util.EmulTestBase; import static java.lang.Long.MAX_VALUE; import static java.lang.Long.MIN_VALUE; import java.util.LongSummaryStatistics; /** * Tests {@link LongSummaryStatistics}. */ public class LongSummaryStatisticsTest extends EmulTestBase { private LongSummaryStatistics stats; @Override protected void gwtSetUp() throws Exception { stats = new LongSummaryStatistics(); } public void testCombine() throws Exception { stats.accept(1); stats.accept(2); LongSummaryStatistics otherStats = new LongSummaryStatistics(); otherStats.accept(3); otherStats.accept(4); stats.combine(otherStats); assertEquals(2.5d, stats.getAverage()); assertEquals(1, stats.getMin()); assertEquals(4, stats.getMax()); assertEquals(10L, stats.getSum()); assertEquals(4L, stats.getCount()); } public void testStats() { assertEquals(0L, stats.getCount()); assertEquals(0d, stats.getAverage()); assertEquals(MIN_VALUE, stats.getMax()); assertEquals(MAX_VALUE, stats.getMin()); assertEquals(0L, stats.getSum()); long[][] testData = { // aLong, max, min, sum { 1, 1, 1, 1 }, { -1, 1, -1, 0 }, { 2, 2, -1, 2 }, { -2, 2, -2, 0 }, { MAX_VALUE, MAX_VALUE, -2, MAX_VALUE }, { MIN_VALUE, MAX_VALUE, MIN_VALUE, -1 }, }; for (int i = 0; i < testData.length; ++i) { long expectedCount = i + 1; long aLong = testData[i][0]; long expectedMax = testData[i][1]; long expectedMin = testData[i][2]; long expectedSum = testData[i][3]; double expectedAverage = expectedSum / (double) expectedCount; stats.accept(aLong); assertEquals(expectedAverage, stats.getAverage()); assertEquals(expectedCount, stats.getCount()); assertEquals(expectedMax, stats.getMax()); assertEquals(expectedMin, stats.getMin()); assertEquals(expectedSum, stats.getSum()); } } }