Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs =================================================================== diff -u -rc1ad8e8431d65da2f22adeb93f9deddd9fae77e3 -ra7e68fa9619f92521fae84b1d74bfb83936c2bf6 --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs) (revision c1ad8e8431d65da2f22adeb93f9deddd9fae77e3) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.Data.Test/StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs (.../StabilityPointStructuresFailureMechanismAssemblyFactoryTest.cs) (revision a7e68fa9619f92521fae84b1d74bfb83936c2bf6) @@ -78,8 +78,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleSimpleAssessment(sectionResult); @@ -98,8 +98,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call FailureMechanismSectionAssembly actualOutput = @@ -120,8 +120,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call @@ -205,7 +205,7 @@ var sectionResult = new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) { - DetailedAssessmentResult = new Random(21).NextEnumValue() + DetailedAssessmentResult = new Random(39).NextEnumValue() }; using (new AssemblyToolCalculatorFactoryConfig()) @@ -220,9 +220,9 @@ assessmentSection); // Assert - Assert.AreEqual(sectionResult.DetailedAssessmentResult, calculator.DetailedAssessmentProbabilityOnlyResultInput); Assert.AreEqual(sectionResult.GetDetailedAssessmentProbability(failureMechanism, assessmentSection), calculator.DetailedAssessmentProbabilityInput); + Assert.AreEqual(sectionResult.DetailedAssessmentResult, calculator.DetailedAssessmentProbabilityOnlyResultInput); AssertAssemblyCategoriesInput(assessmentSection, failureMechanism, calculator.AssemblyCategoriesInput); mocks.VerifyAll(); } @@ -242,8 +242,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; // Call FailureMechanismSectionAssembly actualOutput = @@ -273,8 +273,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call @@ -294,7 +294,7 @@ #endregion - #region Tailor made Assembly + #region Tailor Made Assembly [Test] public void AssembleTailorMadeAssessment_FailureMechanismSectionResultNull_ThrowsArgumentNullException() @@ -426,8 +426,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call @@ -633,8 +633,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculateCombinedAssembly = true; // Call @@ -668,7 +668,8 @@ TestDelegate call = () => StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( null, new StabilityPointStructuresFailureMechanism(), - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -688,7 +689,8 @@ TestDelegate call = () => StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), null, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -703,7 +705,8 @@ TestDelegate call = () => StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()), new StabilityPointStructuresFailureMechanism(), - null); + null, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -730,7 +733,8 @@ StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert FailureMechanismSectionAssembly expectedSimpleAssembly = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleSimpleAssessment( @@ -752,7 +756,7 @@ } [Test] - public void GetSectionAssemblyCategoryGroup_WithManualInput_SetsInputOnCalculator() + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualTrue_SetsInputOnCalculator() { // Setup var sectionResult = new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) @@ -776,15 +780,57 @@ StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + true); // Assert Assert.AreEqual(sectionResult.ManualAssemblyProbability, calculator.ManualAssemblyProbabilityInput); + Assert.AreEqual(0.0, calculator.TailorMadeAssessmentProbabilityInput); + Assert.AreEqual((TailorMadeAssessmentProbabilityCalculationResultType) 0, calculator.TailorMadeAssessmentProbabilityCalculationResultInput); mocks.VerifyAll(); } } [Test] + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualFalse_SetsInputOnCalculator() + { + // Setup + var random = new Random(39); + var sectionResult = new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + UseManualAssemblyProbability = true, + ManualAssemblyProbability = random.NextDouble(), + TailorMadeAssessmentResult = random.NextEnumValue(), + TailorMadeAssessmentProbability = random.NextDouble() + }; + + var failureMechanism = new StabilityPointStructuresFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + + // Call + StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( + sectionResult, + failureMechanism, + assessmentSection, + false); + + // Assert + Assert.AreEqual(0.0, calculator.ManualAssemblyProbabilityInput); + Assert.AreEqual(sectionResult.TailorMadeAssessmentProbability, calculator.TailorMadeAssessmentProbabilityInput); + Assert.AreEqual(sectionResult.TailorMadeAssessmentResult, calculator.TailorMadeAssessmentProbabilityCalculationResultInput); + mocks.VerifyAll(); + } + } + + [Test] public void GetSectionAssemblyCategoryGroup_WithoutManualInput_ReturnsOutput() { // Setup @@ -801,7 +847,8 @@ FailureMechanismSectionAssemblyCategoryGroup categoryGroup = StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert FailureMechanismSectionAssembly expectedAssembly = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( @@ -814,7 +861,7 @@ } [Test] - public void GetSectionAssemblyCategoryGroup_WithManualInput_ReturnsOutput() + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualTrue_ReturnsOutput() { // Setup var sectionResult = new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) @@ -838,7 +885,8 @@ FailureMechanismSectionAssemblyCategoryGroup categoryGroup = StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + true); // Assert FailureMechanismSectionAssembly expectedAssembly = calculator.AssembleManual( @@ -850,6 +898,41 @@ } [Test] + public void GetSectionAssemblyCategoryGroup_WithManualInputAndUseManualFalse_ReturnsOutput() + { + // Setup + var sectionResult = new StabilityPointStructuresFailureMechanismSectionResult(FailureMechanismSectionTestFactory.CreateFailureMechanismSection()) + { + UseManualAssemblyProbability = true, + ManualAssemblyProbability = new Random(39).NextDouble() + }; + + var failureMechanism = new StabilityPointStructuresFailureMechanism(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + // Call + FailureMechanismSectionAssemblyCategoryGroup categoryGroup = StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( + sectionResult, + failureMechanism, + assessmentSection, + false); + + // Assert + FailureMechanismSectionAssembly expectedAssembly = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + sectionResult, + failureMechanism, + assessmentSection); + Assert.AreEqual(expectedAssembly.Group, categoryGroup); + mocks.VerifyAll(); + } + } + + [Test] [TestCase(true)] [TestCase(false)] public void GetSectionAssemblyCategoryGroup_CalculatorThrowsException_ThrowsAssemblyException(bool useManualAssembly) @@ -867,8 +950,8 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; if (useManualAssembly) { calculator.ThrowExceptionOnCalculate = true; @@ -882,7 +965,8 @@ TestDelegate call = () => StabilityPointStructuresFailureMechanismAssemblyFactory.GetSectionAssemblyCategoryGroup( sectionResult, failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -908,7 +992,8 @@ // Call TestDelegate call = () => StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( null, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -922,7 +1007,8 @@ // Call TestDelegate call = () => StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( new StabilityPointStructuresFailureMechanism(), - null); + null, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -945,7 +1031,8 @@ // Call FailureMechanismAssembly assembly = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert AssemblyToolTestHelper.AssertAreEqual(FailureMechanismAssemblyResultFactory.CreateNotApplicableAssembly(), assembly); @@ -974,7 +1061,8 @@ // Call StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert FailureMechanismSectionAssembly expectedAssembly = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( @@ -987,7 +1075,7 @@ } [Test] - public void AssembleFailureMechanism_WithManualInput_SetsInputOnCalculator() + public void AssembleFailureMechanism_WithManualInputAndUseManualTrue_SetsInputOnCalculator() { // Setup var failureMechanism = new StabilityPointStructuresFailureMechanism(); @@ -1011,21 +1099,58 @@ // Call StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + true); // Assert FailureMechanismSectionAssemblyCalculatorStub sectionCalculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; - FailureMechanismSectionAssembly expectedAssembly = sectionCalculator.AssembleManual(sectionResult.ManualAssemblyProbability, - AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput( - failureMechanism.GeneralInput.N, - failureMechanism, - assessmentSection)); + FailureMechanismSectionAssembly expectedAssembly = sectionCalculator.AssembleManual( + sectionResult.ManualAssemblyProbability, + AssemblyCategoriesInputFactory.CreateAssemblyCategoriesInput(0.0, failureMechanism, assessmentSection)); AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); mocks.VerifyAll(); } } [Test] + public void AssembleFailureMechanism_WithManualInputAndUseManualFalse_SetsInputOnCalculator() + { + // Setup + var failureMechanism = new StabilityPointStructuresFailureMechanism(); + FailureMechanismTestHelper.SetSections(failureMechanism, new[] + { + FailureMechanismSectionTestFactory.CreateFailureMechanismSection() + }); + StabilityPointStructuresFailureMechanismSectionResult sectionResult = failureMechanism.SectionResults.Single(); + sectionResult.UseManualAssemblyProbability = true; + sectionResult.ManualAssemblyProbability = new Random(39).NextDouble(); + + var mocks = new MockRepository(); + IAssessmentSection assessmentSection = AssessmentSectionHelper.CreateAssessmentSectionStub(failureMechanism, mocks); + mocks.ReplayAll(); + + using (new AssemblyToolCalculatorFactoryConfig()) + { + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; + + // Call + StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( + failureMechanism, + assessmentSection, + false); + + // Assert + FailureMechanismSectionAssembly expectedAssembly = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleCombinedAssessment( + failureMechanism.SectionResults.Single(), + failureMechanism, + assessmentSection); + AssemblyToolTestHelper.AssertAreEqual(expectedAssembly, calculator.FailureMechanismSectionAssemblies.Single()); + mocks.VerifyAll(); + } + } + + [Test] public void AssembleFailureMechanism_AssemblyRan_ReturnsOutput() { // Setup @@ -1044,7 +1169,8 @@ FailureMechanismAssembly actualOutput = StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert Assert.AreSame(calculator.FailureMechanismAssemblyOutput, actualOutput); @@ -1064,14 +1190,15 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismAssemblyCalculator; calculator.ThrowExceptionOnCalculate = true; // Call TestDelegate call = () => StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call); @@ -1098,14 +1225,15 @@ using (new AssemblyToolCalculatorFactoryConfig()) { - var calculatorfactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; - FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorfactory.LastCreatedFailureMechanismSectionAssemblyCalculator; + var calculatorFactory = (TestAssemblyToolCalculatorFactory) AssemblyToolCalculatorFactory.Instance; + FailureMechanismSectionAssemblyCalculatorStub calculator = calculatorFactory.LastCreatedFailureMechanismSectionAssemblyCalculator; calculator.ThrowExceptionOnCalculateCombinedAssembly = true; // Call TestDelegate call = () => StabilityPointStructuresFailureMechanismAssemblyFactory.AssembleFailureMechanism( failureMechanism, - assessmentSection); + assessmentSection, + new Random(39).NextBoolean()); // Assert var exception = Assert.Throws(call);