コード例 #1
0
ファイル: Tests.cs プロジェクト: minill/shorty
        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);
        }
コード例 #2
0
ファイル: TimeComparer.cs プロジェクト: minill/shorty
        private long GetOaatTime()
        {
            var ooatProgram    = SimpleCloner.CloneProgram(_program);
            var dareController = new DareController(ooatProgram, new OneAtATimeRemover(ooatProgram));
            var stopwatch      = new Stopwatch();

            stopwatch.Start();
            dareController.FindRemovableAsserts();
            dareController.FindRemovableInvariants();
            dareController.FindRemovableDecreases();
            dareController.FindRemovableLemmaCalls();
            dareController.GetSimplifiedAsserts();
            dareController.GetSimplifiedInvariants();
            dareController.FindRemovableCalcs();

            stopwatch.Stop();
            return(stopwatch.ElapsedMilliseconds);
        }