@Test public void testDistributionFunctions() throws Exception { InputSupplier<InputStreamReader> input = Resources.newReaderSupplier(Resources.getResource("negative-binomial-test-data.csv"), Charsets.UTF_8); boolean header = true; for (String line : CharStreams.readLines(input)) { if (header) { // skip header = false; } else { Iterable<String> values = onComma.split(line); int k = Integer.parseInt(Iterables.get(values, 0)); double p = Double.parseDouble(Iterables.get(values, 1)); int r = Integer.parseInt(Iterables.get(values, 2)); double density = Double.parseDouble(Iterables.get(values, 3)); double cume = Double.parseDouble(Iterables.get(values, 4)); NegativeBinomial nb = new NegativeBinomial(r, p, RandomUtils.getRandom()); assertEquals("cumulative " + k + ',' + p + ',' + r, cume, nb.cdf(k), cume * 1.0e-5); assertEquals("density " + k + ',' + p + ',' + r, density, nb.pdf(k), density * 1.0e-5); } } }
@Test public void testDistributionFunctions() throws Exception { InputSupplier<InputStreamReader> input = Resources.newReaderSupplier(Resources.getResource("negative-binomial-test-data.csv"), Charsets.UTF_8); boolean header = true; for (String line : CharStreams.readLines(input)) { if (header) { // skip header = false; } else { Iterable<String> values = onComma.split(line); int k = Integer.parseInt(Iterables.get(values, 0)); double p = Double.parseDouble(Iterables.get(values, 1)); int r = Integer.parseInt(Iterables.get(values, 2)); double density = Double.parseDouble(Iterables.get(values, 3)); double cume = Double.parseDouble(Iterables.get(values, 4)); NegativeBinomial nb = new NegativeBinomial(r, p, RandomUtils.getRandom()); assertEquals("cumulative " + k + ',' + p + ',' + r, cume, nb.cdf(k), cume * 1.0e-5); assertEquals("density " + k + ',' + p + ',' + r, density, nb.pdf(k), density * 1.0e-5); } } }