コード例 #1
0
        public void DccaTest(string modelFile, HeuristicsUsage heuristicsUsage, FaultActivationBehavior faultActivation)
        {
            var model = new ModelSetupParser().Parse($"Analysis/{modelFile}");

            IFaultSetHeuristic[] heuristics;
            switch (heuristicsUsage)
            {
            case HeuristicsUsage.None:
                heuristics = new IFaultSetHeuristic[0];
                break;

            case HeuristicsUsage.Subsumption:
                heuristics = new[] { new SubsumptionHeuristic(model.Faults) };
                break;

            case HeuristicsUsage.Redundancy:
                heuristics = new[] { RedundancyHeuristic(model) };
                break;

            default:
            case HeuristicsUsage.Both:
                heuristics = new[] { new SubsumptionHeuristic(model.Faults), RedundancyHeuristic(model) };
                break;
            }
            Dcca(model, faultActivation, heuristics);
        }
コード例 #2
0
        public void EnumerateAllStates()
        {
            var model = new ModelSetupParser().Parse("Analysis/medium_setup.model");

            model.Faults.SuppressActivations();

            var checker = new SafetySharpQualitativeChecker {
                Configuration =
                {
                    ModelCapacity = new ModelCapacityByModelDensity(1 << 18, ModelDensityLimit.Medium)
                }
            };
            var result = checker.CheckInvariant(model, true);

            Console.WriteLine(result);
        }
コード例 #3
0
		public void DccaTest(
			[Values("complete_network.model", "bidirectional_circle.model", "duplicate_dispenser.model", "simple_circle.model", "trivial_setup.model",
				"simple_setup.model", "simple_setup3.model", "simple_setup2.model", "medium_setup.model", "complex_setup.model")]
				string modelFile,
			[Values(HeuristicsUsage.None, HeuristicsUsage.Subsumption, HeuristicsUsage.Redundancy, HeuristicsUsage.Both)]
				HeuristicsUsage heuristicsUsage,
			[Values(FaultActivationBehavior.ForceOnly, FaultActivationBehavior.ForceThenFallback, FaultActivationBehavior.Nondeterministic)]
				FaultActivationBehavior faultActivation)
		{
			var model = new ModelSetupParser().Parse($"Analysis/{modelFile}");
			IFaultSetHeuristic[] heuristics;
			switch (heuristicsUsage)
			{
				case HeuristicsUsage.None:
					heuristics = new IFaultSetHeuristic[0];
					break;
				case HeuristicsUsage.Subsumption:
					heuristics = new[] { new SubsumptionHeuristic(model) };
					break;
				case HeuristicsUsage.Redundancy:
					heuristics = new[] { RedundancyHeuristic(model) };
					break;
				default:
				case HeuristicsUsage.Both:
					heuristics = new[] { new SubsumptionHeuristic(model), RedundancyHeuristic(model) };
					break;
			}
			Dcca(model, faultActivation, heuristics);
		}
コード例 #4
0
		public void EnumerateAllStates()
		{
			var model = new ModelSetupParser().Parse("Analysis/medium_setup.model");
			model.Faults.SuppressActivations();

			var checker = new SSharpChecker { Configuration = { StateCapacity = 1 << 18 } };
			var result = checker.CheckInvariant(model, true);

			Console.WriteLine(result.StateVectorLayout);
		}