blob: 518351c5f9b75103f07f04cd1f6f420a0617fd31 [file] [log] [blame]
/*
* 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());
}
}
}