protected List<Label> getTopLabels(Map<String, Label> distribution) {
        return getTopLabels(distribution, this.stackSize);
    }
@Test
    public void testGetTopOutcomes() {

        Map<String, Label> scoredOutcomes = new HashMap<>();
        scoredOutcomes.put("A", new Label("A", 0.1d));
        scoredOutcomes.put("B", new Label("B", 0.2d));
        scoredOutcomes.put("C", new Label("C", 0.15d));
        scoredOutcomes.put("D", new Label("D", 0.25d));

        List<Label> topOutcomes = ViterbiModel.getTopLabels(scoredOutcomes, 4);
        assertEquals(4, topOutcomes.size());
        assertEquals("D", topOutcomes.get(0).getLabel());
        assertEquals("B", topOutcomes.get(1).getLabel());
        assertEquals("C", topOutcomes.get(2).getLabel());
        assertEquals("A", topOutcomes.get(3).getLabel());
    }