@Test public void test1() { Int2IntFrequencyDistribution fd = new Int2IntFrequencyDistributionOpen(); assertEquals(0, fd.get(1)); fd.increment(1); fd.increment(2); fd.increment(3); fd.increment(2); fd.increment(3); fd.increment(3); assertEquals(3, fd.getNumberOfEvents()); assertEquals(6, fd.getSumOfCounts()); assertEquals(1, fd.get(1)); assertEquals(2, fd.get(2)); assertEquals(3, fd.get(3)); assertEquals((float) 1 / 6, fd.getFrequency(1), 10e-6); assertEquals((float) 2 / 6, fd.getFrequency(2), 10e-6); assertEquals((float) 3 / 6, fd.getFrequency(3), 10e-6); assertEquals(Math.log((float) 1 / 6), fd.getLogFrequency(1), 10e-6); assertEquals(Math.log((float) 2 / 6), fd.getLogFrequency(2), 10e-6); assertEquals(Math.log((float) 3 / 6), fd.getLogFrequency(3), 10e-6); fd.decrement(3); assertEquals(3, fd.getNumberOfEvents()); assertEquals(5, fd.getSumOfCounts()); assertEquals(1, fd.get(1)); assertEquals(2, fd.get(2)); assertEquals(2, fd.get(3)); assertEquals((float) 1 / 5, fd.getFrequency(1), 10e-6); assertEquals((float) 2 / 5, fd.getFrequency(2), 10e-6); assertEquals((float) 2 / 5, fd.getFrequency(3), 10e-6); assertEquals(Math.log((float) 1 / 5), fd.getLogFrequency(1), 10e-6); assertEquals(Math.log((float) 2 / 5), fd.getLogFrequency(2), 10e-6); assertEquals(Math.log((float) 2 / 5), fd.getLogFrequency(3), 10e-6); fd.decrement(1); assertEquals(2, fd.getNumberOfEvents()); assertEquals(4, fd.getSumOfCounts()); assertEquals(0, fd.get(1)); assertEquals(2, fd.get(2)); assertEquals(2, fd.get(3)); assertEquals((float) 2 / 4, fd.getFrequency(2), 10e-6); assertEquals((float) 2 / 4, fd.getFrequency(3), 10e-6); assertEquals(Math.log((float) 2 / 4), fd.getLogFrequency(2), 10e-6); assertEquals(Math.log((float) 2 / 4), fd.getLogFrequency(3), 10e-6); }
@Test(expected = RuntimeException.class) public void testFailedDecrement2() { Int2IntFrequencyDistribution fd = new Int2IntFrequencyDistributionOpen(); fd.increment(1, 1000); assertEquals(1, fd.getNumberOfEvents()); assertEquals(1000, fd.getSumOfCounts()); assertEquals(1000, fd.get(1)); fd.decrement(1, 997); assertEquals(1, fd.getNumberOfEvents()); assertEquals(3, fd.getSumOfCounts()); assertEquals(3, fd.get(1)); fd.decrement(1, 3); assertEquals(0, fd.getNumberOfEvents()); assertEquals(0, fd.getSumOfCounts()); assertEquals(0, fd.get(1)); fd.increment(1, 3); fd.decrement(1, 4); }
@Test public void testMultiIncrementDecrement() { Int2IntFrequencyDistribution fd = new Int2IntFrequencyDistributionOpen(); fd.increment(1, 2); fd.increment(2, 3); fd.increment(3, 4); assertEquals(3, fd.getNumberOfEvents()); assertEquals(9, fd.getSumOfCounts()); assertEquals(2, fd.get(1)); assertEquals(3, fd.get(2)); assertEquals(4, fd.get(3)); fd.decrement(2, 2); assertEquals(3, fd.getNumberOfEvents()); assertEquals(7, fd.getSumOfCounts()); assertEquals(2, fd.get(1)); assertEquals(1, fd.get(2)); assertEquals(4, fd.get(3)); }