/** Almost the same as {@link #testPredictTransitionsFromStatesForward2()} except that the path beyond is empty rather than null. */
@Test
public void testPredictTransitionsFromStatesWithPathBeyondCurrentState3()
{
final LearnerGraph graph = FsmParser.buildLearnerGraph("A-a->B-b->C / B-u-#D / A-c->E-u->F / E-c->G","testUpdateMarkovSideways3",config, converter);
MarkovUniversalLearner m = new MarkovUniversalLearner(2);
m.predictTransitionsAndUpdateMarkov(graph,true,true);
Assert.assertEquals(4,m.getMarkov(true).size());
Assert.assertTrue(m.getMarkov(false).isEmpty());
final Map<Trace, MarkovOutcome> markovMatrix = m.getMarkov(true);
final LearnerGraph graph2 = FsmParser.buildLearnerGraph("A-a->B / A-c->A/ T-u->T-b->T","testPredictTransitionsFromStatesForward2",config, converter);
Map<Label,MarkovOutcome> outgoing_labels_probabilities=m.predictTransitionsFromState(markovMatrix,m.computeInverseGraph(graph2, true),true,graph2.findVertex("B"),graph2.getCache().getAlphabet(),Arrays.asList(new Label[]{}),m.getChunkLen(),null);
Assert.assertEquals(2,outgoing_labels_probabilities.size());
Assert.assertEquals(MarkovOutcome.negative,outgoing_labels_probabilities.get(lblU));
Assert.assertEquals(MarkovOutcome.positive,outgoing_labels_probabilities.get(lblB));
}