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);
         }
     });
 }