/** Same as {@link #testPredictTransitionsFromStatesSideways1()}, except that the path beyond is empty rather than null. */
@Test
public void testPredictTransitionsFromStatesWithPathBeyondCurrentState1()
{
final LearnerGraph graph = FsmParser.buildLearnerGraph("A-a->B-b->C / B-u-#D / A-c->E-u->F / E-c->G","testUpdateMarkovSideways3",config, converter);
MarkovModel m = new MarkovModel(2,false,true);
new MarkovClassifier(m,graph).updateMarkov(false);
Assert.assertEquals(9+graph.getCache().getAlphabet().size(),m.predictionsMatrix.size());
final LearnerGraph graph2 = FsmParser.buildLearnerGraph("A-a->B / A-c->A / T-u->T-b->T","testCheckFanoutInconsistencySideways4",config, converter);// T is there to ensure that graph2's alphabet is the same as that of graph.
Map<Label, MarkovOutcome> predictions = new MarkovClassifier(m, graph2).predictTransitionsFromState(graph2.getInit(),Arrays.asList(new Label[]{}),m.getChunkLen(),null);
Assert.assertEquals(MarkovOutcome.positive,predictions.get(lblU));
Assert.assertEquals(MarkovOutcome.positive,predictions.get(lblC));
Assert.assertEquals(MarkovOutcome.positive,predictions.get(lblA));
}