1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.math.stat.descriptive;
18
19
20 import junit.framework.Test;
21 import junit.framework.TestSuite;
22
23 import org.apache.commons.math.stat.descriptive.moment.Mean;
24 import org.apache.commons.math.stat.descriptive.summary.Sum;
25
26
27
28
29
30
31
32
33 public final class SummaryStatisticsTest extends SummaryStatisticsAbstractTest {
34
35 public SummaryStatisticsTest(String name) {
36 super(name);
37 }
38
39 public static Test suite() {
40 TestSuite suite = new TestSuite(SummaryStatisticsTest.class);
41 suite.setName("SummaryStatistics tests");
42 return suite;
43 }
44
45 protected SummaryStatistics createSummaryStatistics() {
46 return new SummaryStatistics();
47 }
48
49 public void testSetterInjection() throws Exception {
50 SummaryStatistics u = createSummaryStatistics();
51 u.setMeanImpl(new Sum());
52 u.setSumLogImpl(new Sum());
53 u.addValue(1);
54 u.addValue(3);
55 assertEquals(4, u.getMean(), 1E-14);
56 assertEquals(4, u.getSumOfLogs(), 1E-14);
57 assertEquals(Math.exp(2), u.getGeometricMean(), 1E-14);
58 u.clear();
59 u.addValue(1);
60 u.addValue(2);
61 assertEquals(3, u.getMean(), 1E-14);
62 u.clear();
63 u.setMeanImpl(new Mean());
64 }
65
66 public void testSetterIllegalState() throws Exception {
67 SummaryStatistics u = createSummaryStatistics();
68 u.addValue(1);
69 u.addValue(3);
70 try {
71 u.setMeanImpl(new Sum());
72 fail("Expecting IllegalStateException");
73 } catch (IllegalStateException ex) {
74
75 }
76 }
77 }