public void TestOriginalLog() { var activities = new HashSet<Activity>(); for (char ch = 'A'; ch <= 'F'; ch++) { activities.Add(new Activity("" + ch, "" + ch)); } var exAl = new ContradictionApproach(activities); var trace1 = new LogTrace {Id = "1"}; trace1.AddEventsWithChars('A', 'B', 'E'); var trace2 = new LogTrace { Id = "2" }; trace2.AddEventsWithChars('A', 'C', 'F', 'A', 'B', 'B', 'F'); var trace3 = new LogTrace { Id = "3" }; trace3.AddEventsWithChars('A', 'C', 'E'); var trace4 = new LogTrace { Id = "4" }; trace4.AddEventsWithChars('A', 'D', 'F'); var trace5 = new LogTrace { Id = "5" }; trace5.AddEventsWithChars('A', 'B', 'F', 'A', 'B', 'E'); var trace6 = new LogTrace { Id = "6" }; trace6.AddEventsWithChars('A', 'C', 'F'); var trace7 = new LogTrace { Id = "7" }; trace7.AddEventsWithChars('A', 'B', 'F', 'A', 'C', 'F', 'A', 'C', 'E'); var trace8 = new LogTrace { Id = "8" }; trace8.AddEventsWithChars('A', 'B', 'B', 'B', 'F'); var trace9 = new LogTrace { Id = "9" }; trace9.AddEventsWithChars('A', 'B', 'B', 'E'); var trace10 = new LogTrace { Id = "10" }; trace10.AddEventsWithChars('A', 'C', 'F', 'A', 'C', 'E'); Log log = new Log() {Traces = {trace1, trace2, trace3, trace4, trace5, trace6, trace7, trace8, trace9, trace10}}; exAl.AddLog(log); Console.WriteLine(exAl.Graph); Console.WriteLine(QualityDimensionRetriever.Retrieve(exAl.Graph,log)); //Console.WriteLine(exAl.Graph.ExportToXml()); Console.ReadLine(); exAl.Graph = new RedundancyRemover().RemoveRedundancy(exAl.Graph); Console.WriteLine(exAl.Graph); Console.WriteLine(QualityDimensionRetriever.Retrieve(exAl.Graph, log)); Console.ReadLine(); exAl.Graph = ContradictionApproach.PostProcessing(exAl.Graph); Console.WriteLine(exAl.Graph); Console.WriteLine(QualityDimensionRetriever.Retrieve(exAl.Graph, log)); Console.ReadLine(); //using (StreamWriter sw = new StreamWriter("C:/Downloads/OrigGraph.xml")) //{ // sw.WriteLine(exAl.Graph.ExportToXml()); //} }
private void bw_DoWork(object sender, DoWorkEventArgs e) { Dispatcher.Invoke(() => { if (IsTraceAdditionAllowed) { // Make a copy of Exhaustive Approach where all traces are finished, to avoid potential Response cycles var exaustCopy = new ContradictionApproach(_contradictionApproach.Graph.GetActivities()); exaustCopy.AddLog(new Log {Traces = _entireLog.ToList()}); var redundancyRemovedGraph = _redundancyRemover.RemoveRedundancy(exaustCopy.Graph); ContradictionApproach.PostProcessing(redundancyRemovedGraph); } else // Signifies that the program was initiated with a loaded graph { var redundancyRemovedGraph = _redundancyRemover.RemoveRedundancy(GraphToDisplay); ContradictionApproach.PostProcessing(redundancyRemovedGraph); } }); }