public void TestWriteOverlappingCycles() { const string cycleMarkerPrefix = "X"; var gc = new GlobalContext(); WorkingGraph graph = gc.CurrentGraph; var a = graph.CreateItem(ItemType.SIMPLE, "a"); var b = graph.CreateItem(ItemType.SIMPLE, "b"); var c = graph.CreateItem(ItemType.SIMPLE, "c"); var d = graph.CreateItem(ItemType.SIMPLE, "d"); var e = graph.CreateItem(ItemType.SIMPLE, "e"); List <Dependency> dependencies = CreateDependenciesAndFindCycles(gc, a, b, c, d, e, keepOnlyCyclesOption: false, markerPrefix: cycleMarkerPrefix); using (var s = new MemoryStream()) { var w = new FlatPathWriter(); w.RenderToStreamForUnitTests(gc, dependencies, s, cycleMarkerPrefix + "* -sm"); string result = Encoding.ASCII.GetString(s.ToArray()); Assert.AreEqual(@"-- X0 SIMPLE:a'X0 SIMPLE:c'X1 SIMPLE:d SIMPLE:e <= SIMPLE:a'X0 $ -- X1 SIMPLE:c'X1 SIMPLE:d <= SIMPLE:c'X1 $", result.Trim()); } }
public void TestSimpleFlatPathWriterForOnePath() { var gc = new GlobalContext { IgnoreCase = true }; WorkingGraph graph = gc.CurrentGraph; ItemType t3 = ItemType.New("T3(ShortName:MiddleName:LongName)"); var RegexPathMarker = "P0"; Item a = graph.CreateItem(t3, "a:aa:aaa".Split(':')); a.MarkPathElement(RegexPathMarker, 0, isStart: false, isEnd: false, isMatchedByCountSymbol: false, isLoopBack: false); Item b = graph.CreateItem(t3, "b:bb:bbb".Split(':')); b.SetMarker(RegexPathMarker, 1); var d = CreateDependency(graph, a, b, RegexPathMarker, true, true, false, false); Dependency[] dependencies = { d }; using (var s = new MemoryStream()) { var w = new FlatPathWriter(); w.RenderToStreamForUnitTests(gc, dependencies, s, "P*"); string result = Encoding.ASCII.GetString(s.ToArray()); Assert.AreEqual(@"-- P0 a:aa:aaa b:bb:bbb $", result.Trim()); } }
private static string FindPathsAndWriteFlat(GlobalContext gc, IEnumerable<Dependency> dependencies, string markerPrefix, string transformOptions) { var pm = new OLDPathMarker(); pm.Configure(gc, "", false); var transformedDependencies = new List<Dependency>(); pm.Transform(gc, dependencies, transformOptions, transformedDependencies, s => null); string result; using (var s = new MemoryStream()) { var w = new FlatPathWriter(); w.RenderToStreamForUnitTests(gc, transformedDependencies, s, $"{markerPrefix}* -sm"); result = Encoding.ASCII.GetString(s.ToArray()); } return result; }
public void TestWriteLaterCycle() { const string cycleMarkerPrefix = "C"; List <Dependency> dependencies = FindLaterCycle(cycleMarkerPrefix); var gc = new GlobalContext(); using (var s = new MemoryStream()) { var w = new FlatPathWriter(); w.RenderToStreamForUnitTests(gc, dependencies, s, cycleMarkerPrefix + "* -sm"); string result = Encoding.ASCII.GetString(s.ToArray()); Assert.AreEqual(@"-- C0 SIMPLE:c'C0 SIMPLE:d SIMPLE:e <= SIMPLE:c'C0 $", result.Trim()); } }