public Measurement.MeasurementResultSet RunBenchmark(Testcase testcase, VariableCache.ConstraintMode constraintMode, PdlFilter.Filtermode filtermode, IDictionary <PDLPred, Measurement.SingleMeasurementResult> cache, IDictionary <Automaton <BDD>, Measurement.SingleMeasurementResult> automatonCache) { ICollection <PDLPred> bareResults = new LinkedList <PDLPred>(); System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); foreach (PDLPred result in ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, constraintMode, filtermode)) { bareResults.Add(result); } stopwatch.Stop(); return(new Measurement.MeasurementResultSet(testcase.language, bareResults, stopwatch.ElapsedMilliseconds, constraintMode, filtermode, new HashSet <char>(testcase.alphabet), cache, automatonCache)); }
/// <summary> /// Just checks that the given testcase can be run without any runtime errors. Checking that the correct /// formulas are generated is infeasible, due to the large number of generated formulas /// </summary> /// <param name="testcase">Some testcase</param> public void RunTestcase(Testcase testcase) { ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.NONE, PdlFilter.Filtermode.NONE); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.NONE, PdlFilter.Filtermode.TRIVIAL); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.NONE, PdlFilter.Filtermode.STATEBASED); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.NONE, PdlFilter.Filtermode.BOTH); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.EQUAL, PdlFilter.Filtermode.NONE); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.EQUAL, PdlFilter.Filtermode.TRIVIAL); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.EQUAL, PdlFilter.Filtermode.STATEBASED); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.EQUAL, PdlFilter.Filtermode.BOTH); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.INEQUAL, PdlFilter.Filtermode.NONE); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.INEQUAL, PdlFilter.Filtermode.TRIVIAL); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.INEQUAL, PdlFilter.Filtermode.STATEBASED); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.INEQUAL, PdlFilter.Filtermode.BOTH); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.BOTH, PdlFilter.Filtermode.NONE); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.BOTH, PdlFilter.Filtermode.TRIVIAL); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.BOTH, PdlFilter.Filtermode.STATEBASED); ProblemGeneration.GeneratePDLWithEDn(testcase.language, testcase.alphabet, VariableCache.ConstraintMode.BOTH, PdlFilter.Filtermode.BOTH); }