private void CompareAllRemovals(Program program) { var oneAtATimeProg = SimpleCloner.CloneProgram(program); var simulProg = SimpleCloner.CloneProgram(program); var oneAtATime = new DareController(oneAtATimeProg, new OneAtATimeRemover(oneAtATimeProg)); var simultaneous = new DareController(simulProg, new SimultaneousMethodRemover(simulProg)); var allType = new DareController(SimpleCloner.CloneProgram(program)); var allRemovableTypeResults = allType.FastRemoveAllRemovables(); var asserts = oneAtATime.FindRemovableAsserts(); var invariants = oneAtATime.FindRemovableInvariants(); var decreases = oneAtATime.FindRemovableDecreases(); var lemmaCalls = oneAtATime.FindRemovableLemmaCalls(); var simplifiedAsserts = oneAtATime.GetSimplifiedAsserts(); var simplifiedInvariants = oneAtATime.GetSimplifiedInvariants(); var simAsserts = simultaneous.FindRemovableAsserts(); var simInvariants = simultaneous.FindRemovableInvariants(); var simDecreases = simultaneous.FindRemovableDecreases(); var simLemmaCalls = simultaneous.FindRemovableLemmaCalls(); var simSimplifiedAsserts = simultaneous.GetSimplifiedAsserts(); var simSimplifiedInvariants = simultaneous.GetSimplifiedInvariants(); var oaatRemovedCalcs = oneAtATime.FindRemovableCalcs(); var simulRemovedCalcs = simultaneous.FindRemovableCalcs(); Assert.True(oneAtATime.IsProgramValid()); Assert.True(simultaneous.IsProgramValid()); Assert.True(allType.IsProgramValid()); Assert.AreEqual(asserts.Count, simAsserts.Count); Assert.AreEqual(asserts.Count, allRemovableTypeResults.RemovableAsserts.Count); Assert.AreEqual(invariants.Count, simInvariants.Count); Assert.AreEqual(invariants.Count, allRemovableTypeResults.RemovableInvariants.Count); Assert.AreEqual(decreases.Count, simDecreases.Count); Assert.AreEqual(decreases.Count, allRemovableTypeResults.RemovableDecreases.Count); Assert.AreEqual(lemmaCalls.Count, simLemmaCalls.Count); Assert.AreEqual(lemmaCalls.Count, allRemovableTypeResults.RemovableLemmaCalls.Count); Assert.AreEqual(simplifiedAsserts.Count, simSimplifiedAsserts.Count); Assert.AreEqual(simplifiedAsserts.Count, allRemovableTypeResults.SimplifiedAsserts.Count); Assert.AreEqual(simplifiedInvariants.Count, simSimplifiedInvariants.Count); Assert.AreEqual(simplifiedInvariants.Count, allRemovableTypeResults.SimplifiedInvariants.Count); var allTypeCalcs = allRemovableTypeResults.SimplifiedCalcs; Assert.AreEqual(oaatRemovedCalcs.Item1.Count, simulRemovedCalcs.Item1.Count); Assert.AreEqual(oaatRemovedCalcs.Item1.Count, allTypeCalcs.Item1.Count); Assert.AreEqual(oaatRemovedCalcs.Item2.Count, simulRemovedCalcs.Item2.Count); Assert.AreEqual(oaatRemovedCalcs.Item2.Count, allTypeCalcs.Item2.Count); Assert.AreEqual(oaatRemovedCalcs.Item3.Count, simulRemovedCalcs.Item3.Count); Assert.AreEqual(oaatRemovedCalcs.Item3.Count, allTypeCalcs.Item3.Count); Assert.AreEqual(oaatRemovedCalcs.Item4.Count, simulRemovedCalcs.Item4.Count); Assert.AreEqual(oaatRemovedCalcs.Item4.Count, allRemovableTypeResults.RemovableCalcs.Count); }
public void PerformLogging() { GetVerificationTimeBefore(); OriginalDareController = new DareController(OriginalProgram); //this is for counting later... ModifiedProgram = SimpleCloner.CloneProgram(OriginalProgram); ModifiedDareController = new DareController(ModifiedProgram); SimpData = ModifiedDareController.FastRemoveAllRemovables(); GetVerificationTimeAfter(); }
private long GetParallelRemovalTime() { var allTypeProgram = SimpleCloner.CloneProgram(_program); var allType = new DareController(allTypeProgram); var stopwatch = new Stopwatch(); stopwatch.Start(); allType.FastRemoveAllRemovables(new StopChecker()); stopwatch.Stop(); return(stopwatch.ElapsedMilliseconds); }
private static void SimplifyAndPrintProgram(Program program) { Console.WriteLine("Simplifying " + program.Name); try { var dareController = new DareController(program, new OneAtATimeRemover(program)); dareController.FastRemoveAllRemovables(); using (TextWriter writer = File.CreateText(_outputDir + "\\new-" + program.Name)) { PrintProgram(program, writer); } } catch (Exception e) { Console.WriteLine(e.Message); } }