/// <param name="outputWriter">The TextWriter to write the output csv-file to.</param> public void ToCsv(TextWriter outputWriter) { var csvWriter = new CsvWriter(outputWriter); csvWriter.AddEntry("Step"); for (var i = 0; i < Steps; i++) { csvWriter.AddEntry(i); } csvWriter.NewLine(); csvWriter.AddEntry("CurrentValue"); for (var i = 0; i < Steps; i++) { csvWriter.AddEntry(SourceValues[i]); } csvWriter.NewLine(); csvWriter.AddEntry("Pr"); for (var i = 0; i < Steps; i++) { csvWriter.AddEntry(ResultValues[i]); } csvWriter.NewLine(); }
public void CalculateHazardProbabilityGraph() { var model = new ExampleModelBase(); var minValue = 0.0; var maxValue = 1.0; var steps = 250; var stepSize = (maxValue - minValue) / (steps - 1); var sourceValues = new double[steps]; var resultValues = new double[steps]; for (var i = 0; i < steps; i++) { var currentValue = i * stepSize; sourceValues[i] = currentValue; model.System.SignalDetector1.F1.ProbabilityOfOccurrence = new Probability(currentValue); var currentResult = SafetySharpModelChecker.CalculateProbabilityToReachStateBounded(model, model.System.HazardActive, 50); GC.Collect(); resultValues[i] = currentResult.Value; } var fileWriter = new StreamWriter("Model3/graph.csv", append: false); var csvWriter = new CsvWriter(fileWriter); csvWriter.AddEntry("Step"); for (var i = 0; i < steps; i++) { csvWriter.AddEntry(i); } csvWriter.NewLine(); csvWriter.AddEntry("Pr(F1)"); for (var i = 0; i < steps; i++) { csvWriter.AddEntry(sourceValues[i]); } csvWriter.NewLine(); csvWriter.AddEntry("Pr(Hazard)"); for (var i = 0; i < steps; i++) { csvWriter.AddEntry(resultValues[i]); } csvWriter.NewLine(); fileWriter.Close(); }