public void CalculateSectionProbability_NoScenarios_ReturnsNaN() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section); var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy( sectionResult, Enumerable.Empty <SemiProbabilisticPipingCalculationScenario>(), new PipingFailureMechanism(), new AssessmentSectionStub()); // Call double sectionProbability = strategy.CalculateSectionProbability(); // Assert Assert.IsNaN(sectionProbability); }
public void Constructor_ExpectedValues() { // Setup var mocks = new MockRepository(); var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); // Call var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy( new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section), Enumerable.Empty <SemiProbabilisticPipingCalculationScenario>(), new PipingFailureMechanism(), assessmentSection); // Assert Assert.IsInstanceOf <IFailureMechanismSectionResultCalculateProbabilityStrategy>(strategy); mocks.VerifyAll(); }
public void CalculateProfileProbability_MultipleScenarios_ReturnsValueBasedOnRelevantScenarios() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section); var calculationScenario1 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation <SemiProbabilisticPipingCalculationScenario>(section); var calculationScenario2 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation <SemiProbabilisticPipingCalculationScenario>(section); var calculationScenario3 = SemiProbabilisticPipingCalculationTestFactory.CreateCalculation <SemiProbabilisticPipingCalculationScenario>(section); calculationScenario1.IsRelevant = true; calculationScenario1.Contribution = (RoundedDouble)0.2111; calculationScenario1.Output = PipingTestDataGenerator.GetSemiProbabilisticPipingOutput(1.1, 2.2, 3.3); calculationScenario2.IsRelevant = true; calculationScenario2.Contribution = (RoundedDouble)0.7889; calculationScenario2.Output = PipingTestDataGenerator.GetSemiProbabilisticPipingOutput(4.4, 5.5, 6.6); calculationScenario3.IsRelevant = false; SemiProbabilisticPipingCalculationScenario[] calculations = { calculationScenario1, calculationScenario2, calculationScenario3 }; var strategy = new SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy( sectionResult, calculations, new PipingFailureMechanism(), new AssessmentSectionStub()); // Call double profileProbability = strategy.CalculateProfileProbability(); // Assert Assert.AreEqual(9.2969543564512289E-16, profileProbability); }
public void CalculateSectionProbability_MultipleScenariosForSectionWithLargeLength_ReturnsProbabilityEqualToOne() { // Setup var section = new FailureMechanismSection("test", new[] { new Point2D(0, 0), new Point2D(10000, 0) }); SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy strategy = CreateStrategyForMultipleScenarios(section); // Call double sectionProbability = strategy.CalculateSectionProbability(); // Assert Assert.AreEqual(1.0, sectionProbability); }
public void CalculateSectionProbability_MultipleScenariosForSectionWithSmallLength_ReturnsValueBasedOnRelevantScenarios() { // Setup var section = new FailureMechanismSection("test", new[] { new Point2D(0, 0), new Point2D(1, 0) }); SemiProbabilisticPipingFailureMechanismSectionResultCalculateProbabilityStrategy strategy = CreateStrategyForMultipleScenarios(section); // Call double sectionProbability = strategy.CalculateSectionProbability(); // Assert Assert.AreEqual(0.98862377, sectionProbability, 1e-8); }