public void CalculateSectionProbability_NoScenarios_ReturnsNaN() { // Setup FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection(); var sectionResult = new AdoptableWithProfileProbabilityFailureMechanismSectionResult(section); var strategy = new MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy( sectionResult, Enumerable.Empty <MacroStabilityInwardsCalculationScenario>(), new MacroStabilityInwardsFailureMechanism()); // Call double sectionProbability = strategy.CalculateSectionProbability(); // Assert Assert.IsNaN(sectionProbability); }
public void CalculateSectionProbability_MultipleScenariosForSectionWithLargeLength_ReturnsProbabilityEqualToOne() { // Setup var section = new FailureMechanismSection("test", new[] { new Point2D(0, 0), new Point2D(100, 0) }); MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy 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) }); MacroStabilityInwardsFailureMechanismSectionResultCalculateProbabilityStrategy strategy = CreateStrategyForMultipleScenarios(section); // Call double sectionProbability = strategy.CalculateSectionProbability(); // Assert Assert.AreEqual(0.99078184, sectionProbability, 1e-8); }