@Test public void testBLANC() { final BLANCScorer blancScorer = BLANCScorers.getStandardBLANCScorer(); assertEquals(97.61, 100.0 * blancScorer.score(SYSTEM_A, GROUND_TRUTH).blancScore(), .01); assertEquals(91.63, 100.0 * blancScorer.score(SYSTEM_B, GROUND_TRUTH).blancScore(), .01); assertEquals(91.15, 100.0 * blancScorer.score(SYSTEM_C, GROUND_TRUTH).blancScore(), .01); assertEquals(81.12, 100.0 * blancScorer.score(SYSTEM_D, GROUND_TRUTH).blancScore(), .01); assertEquals(79.92, 100.0 * blancScorer.score(SYSTEM_E, GROUND_TRUTH).blancScore(), .01); assertEquals(72.12, 100.0 * blancScorer.score(SYSTEM_F, GROUND_TRUTH).blancScore(), .01); assertEquals(49.90, 100.0 * blancScorer.score(SYSTEM_G, GROUND_TRUTH).blancScore(), .01); assertEquals(0.41, 100.0 * blancScorer.score(SYSTEM_H, GROUND_TRUTH).blancScore(), .01); }
@Test public void testMultiBLANC() { final BLANCScorer multiBlancScorer = BLANCScorers.getMultiBLANCScorer(); final ImmutableSet<ImmutableSet<Integer>> reference = parseClustering("(1,2) (3,4,5,6) (7)"); final ImmutableSet<ImmutableSet<Integer>> system = parseClustering("(1,2,3) (4,5,8) (9)"); final BLANCResult score = multiBlancScorer.score(system, reference); assertEquals(2 / 7.0, score.corefLinkRecall().get(), .0001); assertEquals(1 / 3.0, score.corefLinkPrecision().get(), .0001); assertEquals(2 / 7.0, score.nonCorefLinkRecall().get(), .0001); assertEquals(4 / 15.0, score.nonCorefLinkPrecision().get(), .0001); assertEquals(.30769, score.corefLinkF1().get(), .0001); assertEquals(.27586, score.nonCorefLinkF1().get(), .0001); assertEquals((.30769 + .27586) / 2.0, score.blancScore(), .0001); }