zipfdistributiontest.java

来自「一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能」· Java 代码 · 共 65 行

JAVA
65
字号
package com.aliasi.test.unit.stats;import com.aliasi.stats.ZipfDistribution;import com.aliasi.test.unit.BaseTestCase;public class ZipfDistributionTest extends BaseTestCase {    public void testZero() {    assertTrue(true);    }    public void testExs() {    try {        new ZipfDistribution(-1);        fail();    } catch (IllegalArgumentException e) {        assertTrue(true);    }    }    public void testDistro() {    ZipfDistribution dist = new ZipfDistribution(3);    assertEquals(3,dist.numOutcomes());    double sum = 1.0 + 1.0/2.0 + 1.0/3.0;    double p1 = 1.0/sum;    double p2 = 1.0/2.0/sum;    double p3 = 1.0/3.0/sum;    assertEquals(p1,dist.probability(1),0.0005);    assertEquals(p2,dist.probability(2),0.0005);    assertEquals(p3,dist.probability(3),0.0005);    assertEquals(0.0,dist.probability(0),0.0005);    assertEquals(0.0,dist.probability(-1),0.0005);    assertEquals(0.0,dist.probability(20),0.0005);        double[] probs = ZipfDistribution.zipfDistribution(3);    assertEquals(p1,probs[0],0.0005);    assertEquals(p2,probs[1],0.0005);    assertEquals(p3,probs[2],0.0005);    assertEquals(-( p1*com.aliasi.util.Math.log2(p1)            + p2*com.aliasi.util.Math.log2(p2)            + p3*com.aliasi.util.Math.log2(p3) ),             dist.entropy(),             0.0005);    }    public void testDistro2() {    ZipfDistribution distro = new ZipfDistribution(100);    double sum = 0.0;    for (int i = 0; i < 100; ++i)        sum += distro.probability(i);    assertEquals(1.0,sum,0.005);        assertEquals(2.0,distro.probability(1)/distro.probability(2),0.001);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?