1   
2   
3   
4   
5   
6   
7   
8   
9   
10  
11  
12  
13  
14  
15  
16  
17  package org.apache.commons.math4.legacy.stat.interval;
18  
19  import org.apache.commons.math4.legacy.exception.MathIllegalArgumentException;
20  import org.junit.Before;
21  import org.junit.Test;
22  
23  
24  
25  
26  
27  public abstract class BinomialConfidenceIntervalAbstractTest {
28  
29      protected BinomialConfidenceInterval testStatistic;
30  
31      private final int successes = 50;
32      private final int trials = 500;
33      private final double confidenceLevel = 0.9;
34  
35      protected abstract BinomialConfidenceInterval createBinomialConfidenceInterval();
36  
37      
38  
39  
40  
41  
42  
43  
44  
45  
46  
47      protected ConfidenceInterval createStandardTestInterval() {
48          return testStatistic.createInterval(trials, successes, confidenceLevel);
49      }
50  
51      @Before
52      public void setUp() {
53          testStatistic = createBinomialConfidenceInterval();
54      }
55  
56      @Test(expected = MathIllegalArgumentException.class)
57      public void testZeroConfidencelevel() {
58          testStatistic.createInterval(trials, successes, 0d);
59      }
60  
61      @Test(expected = MathIllegalArgumentException.class)
62      public void testOneConfidencelevel() {
63          testStatistic.createInterval(trials, successes, 1d);
64      }
65  
66      @Test(expected = MathIllegalArgumentException.class)
67      public void testZeroTrials() {
68          testStatistic.createInterval(0, 0, confidenceLevel);
69      }
70  
71      @Test(expected = MathIllegalArgumentException.class)
72      public void testNegativeSuccesses() {
73          testStatistic.createInterval(trials, -1, confidenceLevel);
74      }
75  
76      @Test(expected = MathIllegalArgumentException.class)
77      public void testSuccessesExceedingTrials() {
78          testStatistic.createInterval(trials, trials + 1, confidenceLevel);
79      }
80  }