📄 binomialdistributiontest.java
字号:
package com.aliasi.test.unit.stats;import com.aliasi.test.unit.BaseTestCase;import com.aliasi.stats.BernoulliConstant;import com.aliasi.stats.BinomialDistribution;public class BinomialDistributionTest extends BaseTestCase { public void testProbability() { BernoulliConstant bernoulli = new BernoulliConstant(0.4); BinomialDistribution distro = new BinomialDistribution(bernoulli,15); double log2Success = com.aliasi.util.Math.log2(0.4); double log2Fail = com.aliasi.util.Math.log2(0.6); assertEquals(BinomialDistribution.log2BinomialCoefficient(15,3) + 3.0 * log2Success + 12.0 * log2Fail, distro.log2Probability(3), 0.0001); double sum = 0.0; for (long i = 0; i <= 15; ++i) sum += distro.probability(i); assertEquals(1.0,sum,0.001); } public void testZandP() { double expectedZ4 = (4.0 - 0.3 * 11.0) / Math.sqrt(11.0 * 0.3 * 0.7); assertEquals(expectedZ4,BinomialDistribution.z(0.3,4,11),0.0001); BernoulliConstant bernoulli = new BernoulliConstant(0.3); BinomialDistribution distro = new BinomialDistribution(bernoulli,11); assertEquals(expectedZ4,distro.z(4),0.0001); /* // expectedZ4 = 0.460566 // pValue(.460566) in (.1772,.1808) double pValue = distro.pValue(4); // table gives one-sided between 0.1772 and 0.1808 assertTrue(1.0 - 2.0*0.1772 > pValue); assertTrue(pValue > 1.0 - 2.0 * 0.1808); double pValue2 = BinomialDistribution.pValue(0.3,4,11); assertEquals(pValue,pValue2,0.0001); */ } public void testExceptions() { BernoulliConstant bernoulli = new BernoulliConstant(0.4); try { new BinomialDistribution(bernoulli,-1); fail(); } catch (IllegalArgumentException e) { succeed(); } try { BinomialDistribution.z(-2.0,3,10); fail(); } catch (IllegalArgumentException e) { succeed(); } try { BinomialDistribution.z(Double.POSITIVE_INFINITY,3,11); fail(); } catch (IllegalArgumentException e) { succeed(); } try { BinomialDistribution.z(2.0,5,10); fail(); } catch (IllegalArgumentException e) { succeed(); } try { BinomialDistribution.z(0.5,-1,10); fail(); } catch (IllegalArgumentException e) { succeed(); } try { BinomialDistribution.z(0.5,2,1); fail(); } catch (IllegalArgumentException e) { succeed(); } } public void testCoeff() { assertEquals(com.aliasi.util.Math.log2Factorial(5) - com.aliasi.util.Math.log2Factorial(3) - com.aliasi.util.Math.log2Factorial(2), BinomialDistribution.log2BinomialCoefficient(5,2), 0.0001); assertEquals(0.0, BinomialDistribution.log2BinomialCoefficient(3,3), 0.0001); assertEquals(0.0, BinomialDistribution.log2BinomialCoefficient(3,0), 0.0001); assertEquals(0.0, BinomialDistribution.log2BinomialCoefficient(0,0), 0.0001); try { BinomialDistribution.log2BinomialCoefficient(3,4); fail(); } catch (IllegalArgumentException e) { succeed(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -