private static int hapaxCount(ChineseRestaurant s) { int r = 0; for (int i = 0; i < s.size(); i++) { if (s.count(i) == 1) { r++; } } return r; } }
@Test public void testExtremeDiscount() { ChineseRestaurant x = new ChineseRestaurant(100, 1); Multiset<Integer> counts = HashMultiset.create(); for (int i = 0; i < 10000; i++) { counts.add(x.sample()); } assertEquals(10000, x.size()); for (int i = 0; i < 10000; i++) { assertEquals(1, x.count(i)); } }
assertEquals(predict5, Math.log(s5.size()), 1); assertEquals(predict9, Math.log(s9.size()), 1); double x = 10.5 * Math.log(i) - s0.size(); m5.viewRow(k).assign(new double[]{Math.log(s5.size()), Math.log(i), 1}); m9.viewRow(k).assign(new double[]{Math.log(s9.size()), Math.log(i), 1}); assertEquals(0.0, (double) hapaxCount(s0) / s0.size(), 0.25); assertEquals(0.5, (double) hapaxCount(s5) / s5.size(), 0.1); assertEquals(0.9, (double) hapaxCount(s9) / s9.size(), 0.05);