/** A bit has been added. u has been seen both in the positive and negative light. */
@Test
public void testConstructExtendedGraph7()
{
MarkovUniversalLearner m = new MarkovUniversalLearner(2);
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);
Map<CmpVertex, Map<Label, MarkovOutcome>> newTransitions = m.constructMarkovTentative(graph,true);
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);
DifferentFSMException ex = WMethod.checkM(expected, m.get_extension_model());
if (ex != null)
throw ex;
Assert.assertNotSame(graph, m.get_extension_model());
}