public void DialyzingFluidDeliverySystemWorks_ModelChecking()
        {
            var specification = new DialyzingFluidDeliverySystemTestEnvironment();
            var analysis      = new SafetyAnalysis();

            var result = analysis.ComputeMinimalCriticalSets(specification, specification.Dialyzer.MembraneIntact == false);

            result.SaveCounterExamples("counter examples/hdmachine");

            Console.WriteLine(result);
        }
        public void DialyzingFluidDeliverySystemWorks_Simulation()
        {
            var specification = new DialyzingFluidDeliverySystemTestEnvironment();

            var simulator          = new Simulator(specification);    //Important: Call after all objects have been created
            var dialyzerAfterStep0 = simulator.Model.Roots.OfType <DialyzingFluidDeliverySystemTestEnvironmentDialyzer>().First();
            var dialyzingFluidDeliverySystemAfterStep0 = simulator.Model.Roots.OfType <DialyzingFluidDeliverySystem>().First();

            Console.Out.WriteLine("Initial");
            //dialyzingFluidDeliverySystemAfterStep0.ArteryFlow.Outgoing.ForwardToSuccessor.PrintBloodValues("outgoing Blood");
            //patientAfterStep0.VeinFlow.Incoming.ForwardFromPredecessor.PrintBloodValues("incoming Blood");
            //patientAfterStep0.PrintBloodValues("");
            Console.Out.WriteLine("Step 1");
            simulator.SimulateStep();


            /*
             * //dialyzerAfterStep1.Should().Be(1);
             * patientAfterStep4.BigWasteProducts.Should().Be(0);
             * patientAfterStep4.SmallWasteProducts.Should().Be(2);*/
        }
		public void DialyzingFluidDeliverySystemWorks_ModelChecking()
		{
			var specification = new DialyzingFluidDeliverySystemTestEnvironment();
			var analysis = new SafetyAnalysis();

			var result = analysis.ComputeMinimalCriticalSets(specification, specification.Dialyzer.MembraneIntact == false);
			result.SaveCounterExamples("counter examples/hdmachine");

			Console.WriteLine(result);
			
		}
		public void DialyzingFluidDeliverySystemWorks_Simulation()
		{
			var specification = new DialyzingFluidDeliverySystemTestEnvironment();

			var simulator = new Simulator(specification); //Important: Call after all objects have been created
			var dialyzerAfterStep0 = simulator.Model.Roots.OfType<DialyzingFluidDeliverySystemTestEnvironmentDialyzer>().First();
			var dialyzingFluidDeliverySystemAfterStep0 = simulator.Model.Roots.OfType<DialyzingFluidDeliverySystem>().First();
			Console.Out.WriteLine("Initial");
			//dialyzingFluidDeliverySystemAfterStep0.ArteryFlow.Outgoing.ForwardToSuccessor.PrintBloodValues("outgoing Blood");
			//patientAfterStep0.VeinFlow.Incoming.ForwardFromPredecessor.PrintBloodValues("incoming Blood");
			//patientAfterStep0.PrintBloodValues("");
			Console.Out.WriteLine("Step 1");
			simulator.SimulateStep();
			

			/*
			//dialyzerAfterStep1.Should().Be(1);
			patientAfterStep4.BigWasteProducts.Should().Be(0);
			patientAfterStep4.SmallWasteProducts.Should().Be(2);*/
		}