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