public void TestFlowerModel() { var graph = new DcrGraph(); var trace = new LogTrace(); for (char ch = 'A'; ch <= 'D'; ch++) { graph.Activities.Add(new Activity("" + ch, "somename " + ch) {Included = true}); trace.AddEventsWithChars(ch); } var exhaustive = new ContradictionApproach(new HashSet<Activity> { new Activity("A", "somenameA"), new Activity("B", "somenameB"), new Activity("C", "somenameC"), new Activity("D", "somenameD") }); exhaustive.Graph = graph; exhaustive.AddTrace(trace); Console.WriteLine(exhaustive.Graph); exhaustive.Graph = new RedundancyRemover().RemoveRedundancy(exhaustive.Graph); Console.WriteLine(exhaustive.Graph); Console.WriteLine(QualityDimensionRetriever.Retrieve(exhaustive.Graph, new Log() {Traces = {trace}})); Console.ReadLine(); }
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()); //} }
public void GetQualityMeasuresOnStatisticsOriginalGraph() { 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 } }; var graph = new DcrGraph(); for (char ch = 'A'; ch <= 'F'; ch++) { if (ch == 'D') continue; graph.AddActivity(ch.ToString(), "somename" + ch); } graph.SetIncluded(true, "A"); // Self-excludes graph.AddIncludeExclude(false, "A", "A"); graph.AddIncludeExclude(false, "C", "C"); graph.AddIncludeExclude(false, "E", "E"); graph.AddIncludeExclude(false, "F", "F"); // Includes graph.AddIncludeExclude(true, "A", "B"); graph.AddIncludeExclude(true, "A", "C"); graph.AddIncludeExclude(true, "B", "E"); graph.AddIncludeExclude(true, "B", "F"); graph.AddIncludeExclude(true, "C", "E"); graph.AddIncludeExclude(true, "C", "F"); graph.AddIncludeExclude(true, "F", "A"); // Excludes graph.AddIncludeExclude(false, "E", "B"); graph.AddIncludeExclude(false, "B", "C"); graph.AddIncludeExclude(false, "C", "B"); graph.AddIncludeExclude(false, "F", "B"); graph.AddIncludeExclude(false, "E", "F"); graph.AddIncludeExclude(false, "F", "E"); //var redundRemoved = new RedundancyRemover().RemoveRedundancy(graph); Console.WriteLine(QualityDimensionRetriever.Retrieve(graph, log)); Console.ReadLine(); }