1 16 package org.apache.commons.math.stat; 17 18 import junit.framework.Test; 19 import junit.framework.TestCase; 20 import junit.framework.TestSuite; 21 22 import java.io.BufferedReader ; 23 import java.io.InputStreamReader ; 24 25 import org.apache.commons.math.stat.descriptive.SummaryStatistics; 26 import org.apache.commons.math.stat.descriptive.SummaryStatisticsImpl; 27 import org.apache.commons.math.stat.descriptive.DescriptiveStatistics; 28 29 33 public class CertifiedDataTest extends TestCase { 34 35 protected double mean = Double.NaN; 36 37 protected double std = Double.NaN; 38 39 43 public CertifiedDataTest(String name) { 44 super(name); 45 } 46 47 50 public void setUp() { 51 } 52 53 56 public static Test suite() { 57 TestSuite suite = new TestSuite(CertifiedDataTest.class); 58 suite.setName("Certified Tests"); 59 return suite; 60 } 61 62 65 public void testUnivariateImpl() throws Exception { 66 SummaryStatistics u = SummaryStatistics.newInstance(SummaryStatisticsImpl.class); 67 loadStats("data/PiDigits.txt", u); 68 assertEquals("PiDigits: std", std, u.getStandardDeviation(), .0000000000001); 69 assertEquals("PiDigits: mean", mean, u.getMean(), .0000000000001); 70 71 loadStats("data/Mavro.txt", u); 72 assertEquals("Mavro: std", std, u.getStandardDeviation(), .00000000000001); 73 assertEquals("Mavro: mean", mean, u.getMean(), .00000000000001); 74 75 79 loadStats("data/NumAcc1.txt", u); 80 assertEquals("NumAcc1: std", std, u.getStandardDeviation(), .00000000000001); 81 assertEquals("NumAcc1: mean", mean, u.getMean(), .00000000000001); 82 83 } 87 88 91 public void testStoredUnivariateImpl() throws Exception { 92 93 DescriptiveStatistics u = DescriptiveStatistics.newInstance(); 94 95 loadStats("data/PiDigits.txt", u); 96 assertEquals("PiDigits: std", std, u.getStandardDeviation(), .0000000000001); 97 assertEquals("PiDigits: mean", mean, u.getMean(), .0000000000001); 98 99 loadStats("data/Mavro.txt", u); 100 assertEquals("Mavro: std", std, u.getStandardDeviation(), .00000000000001); 101 assertEquals("Mavro: mean", mean, u.getMean(), .00000000000001); 102 103 107 loadStats("data/NumAcc1.txt", u); 108 assertEquals("NumAcc1: std", std, u.getStandardDeviation(), .00000000000001); 109 assertEquals("NumAcc1: mean", mean, u.getMean(), .00000000000001); 110 111 } 115 116 121 private void loadStats(String resource, Object u) throws Exception { 122 123 DescriptiveStatistics d = null; 124 SummaryStatistics s = null; 125 if (u instanceof DescriptiveStatistics) { 126 d = (DescriptiveStatistics) u; 127 } else { 128 s = (SummaryStatistics) u; 129 } 130 u.getClass().getDeclaredMethod( 131 "clear", new Class []{}).invoke(u, new Object []{}); 132 mean = Double.NaN; 133 std = Double.NaN; 134 135 BufferedReader in = 136 new BufferedReader ( 137 new InputStreamReader ( 138 getClass().getResourceAsStream(resource))); 139 140 String line = null; 141 142 for (int j = 0; j < 60; j++) { 143 line = in.readLine(); 144 if (j == 40) { 145 mean = 146 Double.parseDouble( 147 line.substring(line.lastIndexOf(":") + 1).trim()); 148 } 149 if (j == 41) { 150 std = 151 Double.parseDouble( 152 line.substring(line.lastIndexOf(":") + 1).trim()); 153 } 154 } 155 156 line = in.readLine(); 157 158 while (line != null) { 159 if (d != null) { 160 d.addValue(Double.parseDouble(line.trim())); 161 } else { 162 s.addValue(Double.parseDouble(line.trim())); 163 } 164 line = in.readLine(); 165 } 166 167 in.close(); 168 } 169 } 170 | Popular Tags |