public async Task <CounterExampleResults> Handle(CounterExampleParams request, CancellationToken cancellationToken) { _log.LogInformation(string.Format(Resources.LoggingMessages.request_handle, _method)); try { var file = _workspaceManager.GetFileRepository(request.DafnyFile); ICounterExampleProvider provider = new CounterExampleProvider(file.PhysicalFile); return(await Task.Run(() => provider.LoadCounterModel(), cancellationToken)); } catch (Exception e) { HandleError(string.Format(Resources.LoggingMessages.request_error, _method), e); return(new CounterExampleResults()); } }
public void BooleanCE() { var model = Files.ce_bool_bvd; var file = Files.ce_bool; var physFile = CreatePhysFile(file); var provider = new CounterExampleProvider(physFile, model); CounterExampleResults result = provider.LoadCounterModel(); List <string> resultAsString = result.CounterExamples.ToStringList(); List <string> expectation = new List <string>() { "L3 C15: in1 = false; " }; CollectionAssert.AreEquivalent(expectation, resultAsString); }
public void LoopInvariantFailure() { var model = Files.ce_li_bvd; var file = Files.ce_li; var physFile = CreatePhysFile(file); var provider = new CounterExampleProvider(physFile, model); CounterExampleResults result = provider.LoadCounterModel(); List <string> resultAsString = result.CounterExamples.ToStringList(); List <string> expectation = new List <string>() { "L12 C24: b = 0; n = 5881; " }; CollectionAssert.AreEquivalent(expectation, resultAsString); }
public void StringReference() { var model = Files.ce_string_bvd; var file = Files.ce_string; var physFile = CreatePhysFile(file); var provider = new CounterExampleProvider(physFile, model); CounterExampleResults result = provider.LoadCounterModel(); List <string> resultAsString = result.CounterExamples.ToStringList(); List <string> expectation = new List <string>() { "L3 C23: in1 = [Object Reference]; " }; CollectionAssert.AreEquivalent(expectation, resultAsString); }
public void PostconditionViolation2() { var model = Files.ce_fail2_bvd; var file = Files.ce_fail2; var physFile = CreatePhysFile(file); var provider = new CounterExampleProvider(physFile, model); CounterExampleResults result = provider.LoadCounterModel(); List <string> resultAsString = result.CounterExamples.ToStringList(); List <string> expectation = new List <string>() { "L3 C23: inp1 = -24; inp2 = 0; " }; CollectionAssert.AreEquivalent(expectation, resultAsString); }
public void FloatyCE() { var model = Files.ce_float_bvd; var file = Files.ce_float; var physFile = CreatePhysFile(file); var provider = new CounterExampleProvider(physFile, model); CounterExampleResults result = provider.LoadCounterModel(); List <string> resultAsString = result.CounterExamples.ToStringList(); List <string> expectation = new List <string>() { "L3 C22: inp1 = -160.0; " }; CollectionAssert.AreEquivalent(expectation, resultAsString); }
public void CEWithTwoConnectedMethods() { var model = Files.ce_2mc_bvd; var file = Files.ce_2mc; var physFile = CreatePhysFile(file); var provider = new CounterExampleProvider(physFile, model); CounterExampleResults result = provider.LoadCounterModel(); List <string> resultAsString = result.CounterExamples.ToStringList(); List <string> expectation = new List <string>() { "L3 C19: in1 = 2446; ", "L9 C19: in2 = 891; " }; CollectionAssert.AreEquivalent(expectation, resultAsString); }
public void CounterExample() { var listArgs = args.ToList(); listArgs.Add("/mv:" + CounterExampleProvider.ModelBvd); ServerUtils.ApplyArgs(listArgs.ToArray(), reporter); try { if (Parse() && Resolve() && Translate()) { var counterExampleProvider = new CounterExampleProvider(); foreach (var boogieProgram in boogiePrograms) { RemoveExistingModel(); BoogieOnce(boogieProgram.Item1, boogieProgram.Item2); var model = counterExampleProvider.LoadCounterModel(); Console.WriteLine("COUNTEREXAMPLE_START " + ConvertToJson(model) + " COUNTEREXAMPLE_END"); } } } catch (Exception e) { Console.WriteLine("Error collection models: " + e.Message); } }