1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.math4.legacy.stat.descriptive.rank;
18
19 import org.apache.commons.math4.legacy.stat.descriptive.StorelessUnivariateStatisticAbstractTest;
20 import org.apache.commons.math4.legacy.stat.descriptive.UnivariateStatistic;
21 import org.junit.Assert;
22 import org.junit.Test;
23
24
25
26
27 public class MaxTest extends StorelessUnivariateStatisticAbstractTest {
28
29 protected Max stat;
30
31
32
33
34 @Override
35 public UnivariateStatistic getUnivariateStatistic() {
36 return new Max();
37 }
38
39
40
41
42 @Override
43 public double expectedValue() {
44 return this.max;
45 }
46
47 @Test
48 public void testSpecialValues() {
49 double[] testArray = {0d, Double.NaN, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY};
50 Max max = new Max();
51 Assert.assertTrue(Double.isNaN(max.getResult()));
52 max.increment(testArray[0]);
53 Assert.assertEquals(0d, max.getResult(), 0);
54 max.increment(testArray[1]);
55 Assert.assertEquals(0d, max.getResult(), 0);
56 max.increment(testArray[2]);
57 Assert.assertEquals(0d, max.getResult(), 0);
58 max.increment(testArray[3]);
59 Assert.assertEquals(Double.POSITIVE_INFINITY, max.getResult(), 0);
60 Assert.assertEquals(Double.POSITIVE_INFINITY, max.evaluate(testArray), 0);
61 }
62
63 @Test
64 public void testNaNs() {
65 Max max = new Max();
66 double nan = Double.NaN;
67 Assert.assertEquals(3d, max.evaluate(new double[]{nan, 2d, 3d}), 0);
68 Assert.assertEquals(3d, max.evaluate(new double[]{1d, nan, 3d}), 0);
69 Assert.assertEquals(2d, max.evaluate(new double[]{1d, 2d, nan}), 0);
70 Assert.assertTrue(Double.isNaN(max.evaluate(new double[]{nan, nan, nan})));
71 }
72 }