{
MarkovModel m = new MarkovModel(2,true,true);
Set<List<Label>> plusStrings = buildSet(new String[][] { new String[]{"a","b"},new String[]{"c","u"} },config,converter), minusStrings = buildSet(new String[][] { new String[]{"a","u"} },config,converter);
m.createMarkovLearner(plusStrings, minusStrings,false);
final LearnerGraph graph = FsmParser.buildLearnerGraph("A-a->B / A-c->B-c->Z / T-b->T-u->T","testConstructExtendedGraph7a",config, converter);
MarkovClassifier cl = new MarkovClassifier(m,graph);
Map<CmpVertex, Map<Label, MarkovOutcome>> newTransitions = cl.predictTransitions();
Assert.assertEquals(2,newTransitions.size());
Assert.assertEquals(1,newTransitions.get(graph.findVertex("B")).size());
Assert.assertEquals(1,newTransitions.get(graph.findVertex("Z")).size());
Assert.assertSame(MarkovOutcome.positive, newTransitions.get(graph.findVertex("B")).get(lblB));
Assert.assertSame(MarkovOutcome.positive, newTransitions.get(graph.findVertex("Z")).get(lblU));
final LearnerGraph expected = FsmParser.buildLearnerGraph("A-a->B / A-c->B-c->Z-u->Y / B-b->C / T-b->T-u->T","testConstructExtendedGraph7b",config, converter);
LearnerGraph actual = cl.constructMarkovTentative();
DifferentFSMException ex = WMethod.checkM(expected, actual);
if (ex != null)
throw ex;
Assert.assertNotSame(graph, actual);
}