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.moment;
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 GeometricMeanTest extends StorelessUnivariateStatisticAbstractTest{
28
29 protected GeometricMean stat;
30
31
32
33
34 @Override
35 public UnivariateStatistic getUnivariateStatistic() {
36 return new GeometricMean();
37 }
38
39
40
41
42 @Override
43 public double expectedValue() {
44 return this.geoMean;
45 }
46
47 @Test
48 public void testSpecialValues() {
49 GeometricMean mean = new GeometricMean();
50
51 Assert.assertTrue(Double.isNaN(mean.getResult()));
52
53
54 mean.increment(1d);
55 Assert.assertFalse(Double.isNaN(mean.getResult()));
56
57
58 mean.increment(0d);
59 Assert.assertEquals(0d, mean.getResult(), 0);
60
61
62 mean.increment(Double.POSITIVE_INFINITY);
63 Assert.assertTrue(Double.isNaN(mean.getResult()));
64
65
66 mean.clear();
67 Assert.assertTrue(Double.isNaN(mean.getResult()));
68
69
70 mean.increment(Double.POSITIVE_INFINITY);
71 Assert.assertEquals(Double.POSITIVE_INFINITY, mean.getResult(), 0);
72
73
74 mean.increment(-2d);
75 Assert.assertTrue(Double.isNaN(mean.getResult()));
76 }
77 }