Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs =================================================================== diff -u -rb2b50ced8da8e297316fed0680bd2ec9db870a29 -r2138364df4a062addf39b74f66f421c61123c379 --- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs (.../FailureMechanismSectionAssemblyCalculator.cs) (revision b2b50ced8da8e297316fed0680bd2ec9db870a29) +++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/FailureMechanismSectionAssemblyCalculator.cs (.../FailureMechanismSectionAssemblyCalculator.cs) (revision 2138364df4a062addf39b74f66f421c61123c379) @@ -24,7 +24,6 @@ using Assembly.Kernel.Interfaces; using Assembly.Kernel.Model; using Assembly.Kernel.Model.Categories; -using Assembly.Kernel.Model.FailureMechanismSections; using Riskeer.AssemblyTool.Data; using Riskeer.AssemblyTool.KernelWrapper.Creators; using Riskeer.AssemblyTool.KernelWrapper.Kernels; @@ -90,44 +89,6 @@ } } - public FailureMechanismSectionAssemblyResultWrapper AssembleFailureMechanismSection(FailureMechanismSectionWithProfileProbabilityAssemblyInput input) - { - if (input == null) - { - throw new ArgumentNullException(nameof(input)); - } - - try - { - IAssessmentResultsTranslator kernel = factory.CreateFailureMechanismSectionAssemblyKernel(); - - if (!IsProbabilityDefined(input)) - { - return AssembleWithUndefinedProbabilities(input, kernel); - } - - ResultWithProfileAndSectionProbabilities output = kernel.DetermineRepresentativeProbabilitiesBoi0A2( - input.FurtherAnalysisType != FailureMechanismSectionResultFurtherAnalysisType.NotNecessary, - AssemblyCalculatorInputCreator.CreateProbability(input.InitialProfileProbability), - AssemblyCalculatorInputCreator.CreateProbability(input.InitialSectionProbability), - AssemblyCalculatorInputCreator.CreateProbability(input.RefinedProfileProbability), - AssemblyCalculatorInputCreator.CreateProbability(input.RefinedSectionProbability)); - EInterpretationCategory interpretationCategory = AssembleInterpretationCategory(input, kernel, output.ProbabilitySection); - - return new FailureMechanismSectionAssemblyResultWrapper( - FailureMechanismSectionAssemblyResultCreator.Create(output, interpretationCategory), - AssemblyMethod.BOI0A2, AssemblyMethod.BOI0B1); - } - catch (AssemblyException e) - { - throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateErrorMessage(e.Errors), e); - } - catch (Exception e) - { - throw new FailureMechanismSectionAssemblyCalculatorException(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), e); - } - } - private static bool IsProbabilityDefined(FailureMechanismSectionAssemblyInput input) { if (!input.IsRelevant) Index: Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs =================================================================== diff -u -rb2b50ced8da8e297316fed0680bd2ec9db870a29 -r2138364df4a062addf39b74f66f421c61123c379 --- Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs (.../IFailureMechanismSectionAssemblyCalculator.cs) (revision b2b50ced8da8e297316fed0680bd2ec9db870a29) +++ Riskeer/AssemblyTool/src/Riskeer.AssemblyTool.KernelWrapper/Calculators/Assembly/IFailureMechanismSectionAssemblyCalculator.cs (.../IFailureMechanismSectionAssemblyCalculator.cs) (revision 2138364df4a062addf39b74f66f421c61123c379) @@ -39,16 +39,5 @@ /// Thrown when /// an error occurs while assembling. FailureMechanismSectionAssemblyResultWrapper AssembleFailureMechanismSection(FailureMechanismSectionAssemblyInput input); - - /// - /// Assembles the failure mechanism section based on the input. - /// - /// The to assemble with. - /// A containing the assembly result - /// of the failure mechanism section. - /// Thrown when is null. - /// Thrown when - /// an error occurs while assembling. - FailureMechanismSectionAssemblyResultWrapper AssembleFailureMechanismSection(FailureMechanismSectionWithProfileProbabilityAssemblyInput input); } } \ No newline at end of file Index: Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs =================================================================== diff -u -rb2b50ced8da8e297316fed0680bd2ec9db870a29 -r2138364df4a062addf39b74f66f421c61123c379 --- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision b2b50ced8da8e297316fed0680bd2ec9db870a29) +++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.Test/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorTest.cs (.../FailureMechanismSectionAssemblyCalculatorTest.cs) (revision 2138364df4a062addf39b74f66f421c61123c379) @@ -24,7 +24,6 @@ using Assembly.Kernel.Exceptions; using Assembly.Kernel.Model; using Assembly.Kernel.Model.Categories; -using Assembly.Kernel.Model.FailureMechanismSections; using Core.Common.TestUtil; using NUnit.Framework; using Rhino.Mocks; @@ -81,7 +80,7 @@ var calculator = new FailureMechanismSectionAssemblyCalculator(kernelFactory); // Call - void Call() => calculator.AssembleFailureMechanismSection((FailureMechanismSectionAssemblyInput) null); + void Call() => calculator.AssembleFailureMechanismSection(null); // Assert var exception = Assert.Throws(Call); @@ -284,228 +283,6 @@ } } - [Test] - public void AssembleFailureMechanismSectionWithLengthEffect_InputNull_ThrowsArgumentNullException() - { - // Setup - var mocks = new MockRepository(); - var kernelFactory = mocks.Stub(); - mocks.ReplayAll(); - - var calculator = new FailureMechanismSectionAssemblyCalculator(kernelFactory); - - // Call - void Call() => calculator.AssembleFailureMechanismSection(null); - - // Assert - var exception = Assert.Throws(Call); - Assert.AreEqual("input", exception.ParamName); - } - - [Test] - [TestCaseSource(nameof(GetInputWithLengthEffectAndUndefinedProbability))] - public void AssembleFailureMechanismSectionWithLengthEffect_WithValidInputAndNoProbabilityDefined_InputCorrectlySentToKernel( - FailureMechanismSectionWithProfileProbabilityAssemblyInput input, EAnalysisState expectedAnalysisState) - { - // Setup - using (new AssemblyToolKernelFactoryConfig()) - { - var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; - FailureMechanismSectionAssemblyKernelStub failureMechanismSectionAssemblyKernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - - var random = new Random(21); - var categoryOutput = random.NextEnumValue(); - failureMechanismSectionAssemblyKernel.CategoryOutput = categoryOutput; - failureMechanismSectionAssemblyKernel.SectionProbability = new Probability(random.NextDouble()); - - var calculator = new FailureMechanismSectionAssemblyCalculator(factory); - - // Call - calculator.AssembleFailureMechanismSection(input); - - // Assert - Assert.AreEqual(expectedAnalysisState, failureMechanismSectionAssemblyKernel.AnalysisState); - Assert.AreEqual(categoryOutput, failureMechanismSectionAssemblyKernel.CategoryInput); - } - } - - [Test] - [TestCaseSource(nameof(GetInputWithLengthEffectAndDefinedProbability))] - public void AssembleFailureMechanismSectionWithLengthEffect_WithValidInputAndProbabilityDefined_InputCorrectlySentToKernel( - FailureMechanismSectionWithProfileProbabilityAssemblyInput input) - { - // Setup - var random = new Random(21); - using (new AssemblyToolKernelFactoryConfig()) - { - var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; - AssemblyCategoryLimitsKernelStub categoryLimitsKernel = factory.LastCreatedAssemblyCategoryLimitsKernel; - CategoriesList interpretationCategories = CreateInterpretationCategories(); - categoryLimitsKernel.InterpretationCategoryLimits = interpretationCategories; - - FailureMechanismSectionAssemblyKernelStub failureMechanismSectionAssemblyKernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - var sectionProbability = new Probability(random.NextDouble(0.0, 0.01)); - failureMechanismSectionAssemblyKernel.ProfileAndSectionProbabilities = new ResultWithProfileAndSectionProbabilities( - new Probability(random.NextDouble(0.0001, 0.001)), sectionProbability); - failureMechanismSectionAssemblyKernel.CategoryOutput = EInterpretationCategory.Zero; - - var calculator = new FailureMechanismSectionAssemblyCalculator(factory); - - // Call - calculator.AssembleFailureMechanismSection(input); - - // Assert - AssessmentSection assessmentSection = categoryLimitsKernel.AssessmentSection; - ProbabilityAssert.AreEqual(input.MaximumAllowableFloodingProbability, assessmentSection.MaximumAllowableFloodingProbability); - ProbabilityAssert.AreEqual(input.SignalFloodingProbability, assessmentSection.SignalFloodingProbability); - - Assert.AreSame(interpretationCategories, failureMechanismSectionAssemblyKernel.Categories); - Assert.AreEqual(input.FurtherAnalysisType != FailureMechanismSectionResultFurtherAnalysisType.NotNecessary, failureMechanismSectionAssemblyKernel.RefinementNecessary); - Assert.AreEqual(input.InitialProfileProbability, failureMechanismSectionAssemblyKernel.ProbabilityInitialMechanismProfile); - Assert.AreEqual(input.InitialSectionProbability, failureMechanismSectionAssemblyKernel.ProbabilityInitialMechanismSection); - Assert.AreEqual(input.RefinedProfileProbability, failureMechanismSectionAssemblyKernel.RefinedProbabilityProfile); - Assert.AreEqual(input.RefinedSectionProbability, failureMechanismSectionAssemblyKernel.RefinedProbabilitySection); - Assert.AreEqual(sectionProbability, failureMechanismSectionAssemblyKernel.SectionProbabilityInput); - } - } - - [Test] - public void AssembleFailureMechanismSectionWithLengthEffect_InputWithProbabilityUndefinedAndKernelWithCompleteOutput_ReturnsExpectedFailureMechanismSectionAssembly() - { - // Setup - var random = new Random(21); - var input = new FailureMechanismSectionWithProfileProbabilityAssemblyInput( - 0.001, 0.0001, false, random.NextBoolean(), double.NaN, double.NaN, - random.NextEnumValue(), - double.NaN, double.NaN); - - using (new AssemblyToolKernelFactoryConfig()) - { - var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; - - FailureMechanismSectionAssemblyKernelStub failureMechanismSectionAssemblyKernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - var categoryOutput = random.NextEnumValue(); - var sectionProbability = new Probability(random.NextDouble(0.0, 0.01)); - failureMechanismSectionAssemblyKernel.CategoryOutput = categoryOutput; - failureMechanismSectionAssemblyKernel.SectionProbability = sectionProbability; - - var calculator = new FailureMechanismSectionAssemblyCalculator(factory); - - // Call - FailureMechanismSectionAssemblyResultWrapper resultWrapper = calculator.AssembleFailureMechanismSection(input); - - // Assert - Assert.IsTrue(failureMechanismSectionAssemblyKernel.Calculated); - - FailureMechanismSectionAssemblyResult result = resultWrapper.AssemblyResult; - Assert.AreEqual(sectionProbability, result.ProfileProbability); - Assert.AreEqual(sectionProbability, result.SectionProbability); - Assert.AreEqual(1.0, result.N); - Assert.AreEqual(FailureMechanismSectionAssemblyGroupConverter.ConvertTo(categoryOutput), - result.FailureMechanismSectionAssemblyGroup); - Assert.AreEqual(AssemblyMethod.BOI0C2, resultWrapper.ProbabilityMethod); - Assert.AreEqual(AssemblyMethod.BOI0C1, resultWrapper.AssemblyGroupMethod); - } - } - - [Test] - public void AssembleFailureMechanismSectionWithLengthEffect_InputWithProbabilityDefinedKernelWithCompleteOutput_ReturnsExpectedFailureMechanismSectionAssembly() - { - // Setup - var random = new Random(21); - var input = new FailureMechanismSectionWithProfileProbabilityAssemblyInput( - 0.001, 0.0001, true, true, random.NextDouble(), random.NextDouble(), - FailureMechanismSectionResultFurtherAnalysisType.Executed, - random.NextDouble(), random.NextDouble()); - - using (new AssemblyToolKernelFactoryConfig()) - { - var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; - AssemblyCategoryLimitsKernelStub categoryLimitsKernel = factory.LastCreatedAssemblyCategoryLimitsKernel; - categoryLimitsKernel.InterpretationCategoryLimits = CreateInterpretationCategories(); - - FailureMechanismSectionAssemblyKernelStub failureMechanismSectionAssemblyKernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - var categoryOutput = random.NextEnumValue(); - - var kernelResult = new ResultWithProfileAndSectionProbabilities( - new Probability(random.NextDouble(0.0001, 0.001)), - new Probability(random.NextDouble(0.001, 0.01))); - failureMechanismSectionAssemblyKernel.ProfileAndSectionProbabilities = kernelResult; - failureMechanismSectionAssemblyKernel.CategoryOutput = categoryOutput; - - var calculator = new FailureMechanismSectionAssemblyCalculator(factory); - - // Call - FailureMechanismSectionAssemblyResultWrapper resultWrapper = calculator.AssembleFailureMechanismSection(input); - - // Assert - Assert.IsTrue(categoryLimitsKernel.Calculated); - Assert.IsTrue(failureMechanismSectionAssemblyKernel.Calculated); - - FailureMechanismSectionAssemblyResult result = resultWrapper.AssemblyResult; - Assert.AreEqual((double) kernelResult.ProbabilityProfile, result.ProfileProbability); - Assert.AreEqual((double) kernelResult.ProbabilitySection, result.SectionProbability); - Assert.AreEqual(kernelResult.LengthEffectFactor, result.N); - Assert.AreEqual(FailureMechanismSectionAssemblyGroupConverter.ConvertTo(categoryOutput), - result.FailureMechanismSectionAssemblyGroup); - Assert.AreEqual(AssemblyMethod.BOI0A2, resultWrapper.ProbabilityMethod); - Assert.AreEqual(AssemblyMethod.BOI0B1, resultWrapper.AssemblyGroupMethod); - } - } - - [Test] - public void AssembleFailureMechanismSectionWithLengthEffect_KernelThrowsException_ThrowsFailureMechanismSectionAssemblyCalculatorException() - { - // Setup - FailureMechanismSectionWithProfileProbabilityAssemblyInput input = CreateFailureMechanismSectionWithProfileProbabilityAssemblyInput(); - - using (new AssemblyToolKernelFactoryConfig()) - { - var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; - FailureMechanismSectionAssemblyKernelStub failureMechanismSectionAssemblyKernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - failureMechanismSectionAssemblyKernel.ThrowExceptionOnCalculate = true; - - var calculator = new FailureMechanismSectionAssemblyCalculator(factory); - - // Call - void Call() => calculator.AssembleFailureMechanismSection(input); - - // Assert - var exception = Assert.Throws(Call); - Assert.IsInstanceOf(exception.InnerException); - Assert.AreEqual(AssemblyErrorMessageCreator.CreateGenericErrorMessage(), exception.Message); - - Assert.IsFalse(failureMechanismSectionAssemblyKernel.Calculated); - } - } - - [Test] - public void AssembleFailureMechanismSectionWithLengthEffect_KernelThrowsAssemblyException_ThrowsFailureMechanismSectionAssemblyCalculatorException() - { - // Setup - FailureMechanismSectionWithProfileProbabilityAssemblyInput input = CreateFailureMechanismSectionWithProfileProbabilityAssemblyInput(); - - using (new AssemblyToolKernelFactoryConfig()) - { - var factory = (TestAssemblyToolKernelFactory) AssemblyToolKernelFactory.Instance; - FailureMechanismSectionAssemblyKernelStub failureMechanismSectionAssemblyKernel = factory.LastCreatedFailureMechanismSectionAssemblyKernel; - failureMechanismSectionAssemblyKernel.ThrowAssemblyExceptionOnCalculate = true; - - var calculator = new FailureMechanismSectionAssemblyCalculator(factory); - - // Call - void Call() => calculator.AssembleFailureMechanismSection(input); - - // Assert - var exception = Assert.Throws(Call); - var innerException = exception.InnerException as AssemblyException; - Assert.IsNotNull(innerException); - Assert.AreEqual(AssemblyErrorMessageCreator.CreateErrorMessage(innerException.Errors), exception.Message); - - Assert.IsFalse(failureMechanismSectionAssemblyKernel.Calculated); - } - } - private static IEnumerable GetInputWithUndefinedProbability() { const double signalFloodingProbability = 0.0001; @@ -526,26 +303,6 @@ EAnalysisState.ProbabilityEstimationNecessary); } - private static IEnumerable GetInputWithLengthEffectAndUndefinedProbability() - { - const double signalFloodingProbability = 0.0001; - const double maximumAllowableFloodingProbability = 0.001; - - var random = new Random(21); - yield return new TestCaseData(new FailureMechanismSectionWithProfileProbabilityAssemblyInput( - maximumAllowableFloodingProbability, signalFloodingProbability, false, random.NextBoolean(), double.NaN, - double.NaN, random.NextEnumValue(), double.NaN, double.NaN), - EAnalysisState.NotRelevant); - yield return new TestCaseData(new FailureMechanismSectionWithProfileProbabilityAssemblyInput( - maximumAllowableFloodingProbability, signalFloodingProbability, true, false, double.NaN, double.NaN, - FailureMechanismSectionResultFurtherAnalysisType.NotNecessary, double.NaN, double.NaN), - EAnalysisState.NoProbabilityEstimationNecessary); - yield return new TestCaseData(new FailureMechanismSectionWithProfileProbabilityAssemblyInput( - maximumAllowableFloodingProbability, signalFloodingProbability, true, random.NextBoolean(), double.NaN, double.NaN, - FailureMechanismSectionResultFurtherAnalysisType.Necessary, double.NaN, double.NaN), - EAnalysisState.ProbabilityEstimationNecessary); - } - private static IEnumerable GetInputWithDefinedProbability() { const double signalFloodingProbability = 0.0001; @@ -560,20 +317,6 @@ FailureMechanismSectionResultFurtherAnalysisType.Executed, random.NextDouble())); } - private static IEnumerable GetInputWithLengthEffectAndDefinedProbability() - { - const double signalFloodingProbability = 0.0001; - const double maximumAllowableFloodingProbability = 0.001; - - var random = new Random(21); - yield return new TestCaseData(new FailureMechanismSectionWithProfileProbabilityAssemblyInput( - maximumAllowableFloodingProbability, signalFloodingProbability, true, true, random.NextDouble(), random.NextDouble(), - FailureMechanismSectionResultFurtherAnalysisType.NotNecessary, random.NextDouble(), random.NextDouble())); - yield return new TestCaseData(new FailureMechanismSectionWithProfileProbabilityAssemblyInput( - maximumAllowableFloodingProbability, signalFloodingProbability, true, random.NextBoolean(), random.NextDouble(), random.NextDouble(), - FailureMechanismSectionResultFurtherAnalysisType.Executed, random.NextDouble(), random.NextDouble())); - } - private static FailureMechanismSectionAssemblyInput CreateFailureMechanismSectionAssemblyInput() { const double maximumAllowableFloodingProbability = 0.001; @@ -587,19 +330,6 @@ random.NextDouble()); } - private static FailureMechanismSectionWithProfileProbabilityAssemblyInput CreateFailureMechanismSectionWithProfileProbabilityAssemblyInput() - { - const double maximumAllowableFloodingProbability = 0.001; - const double signalFloodingProbability = 0.0001; - - var random = new Random(21); - return new FailureMechanismSectionWithProfileProbabilityAssemblyInput(maximumAllowableFloodingProbability, signalFloodingProbability, - random.NextBoolean(), random.NextBoolean(), - random.NextDouble(), random.NextDouble(), - random.NextEnumValue(), - random.NextDouble(), random.NextDouble()); - } - private static CategoriesList CreateInterpretationCategories() { return new CategoriesList(new[] Index: Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs =================================================================== diff -u -rb2b50ced8da8e297316fed0680bd2ec9db870a29 -r2138364df4a062addf39b74f66f421c61123c379 --- Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs (.../FailureMechanismSectionAssemblyCalculatorStub.cs) (revision b2b50ced8da8e297316fed0680bd2ec9db870a29) +++ Riskeer/AssemblyTool/test/Riskeer.AssemblyTool.KernelWrapper.TestUtil/Calculators/Assembly/FailureMechanismSectionAssemblyCalculatorStub.cs (.../FailureMechanismSectionAssemblyCalculatorStub.cs) (revision 2138364df4a062addf39b74f66f421c61123c379) @@ -31,11 +31,6 @@ public class FailureMechanismSectionAssemblyCalculatorStub : IFailureMechanismSectionAssemblyCalculator { /// - /// Gets the that is used in the calculation. - /// - public FailureMechanismSectionWithProfileProbabilityAssemblyInput FailureMechanismSectionWithProfileProbabilityAssemblyInput { get; private set; } - - /// /// Gets the that is used in the calculation. /// public FailureMechanismSectionAssemblyInput FailureMechanismSectionAssemblyInput { get; private set; } @@ -65,21 +60,5 @@ new FailureMechanismSectionAssemblyResult(0.01, 0.1, 10, FailureMechanismSectionAssemblyGroup.I), AssemblyMethod.BOI0A1, AssemblyMethod.BOI0B1)); } - - public FailureMechanismSectionAssemblyResultWrapper AssembleFailureMechanismSection(FailureMechanismSectionWithProfileProbabilityAssemblyInput input) - { - if (ThrowExceptionOnCalculate) - { - throw new FailureMechanismSectionAssemblyCalculatorException("Message", new Exception()); - } - - FailureMechanismSectionWithProfileProbabilityAssemblyInput = input; - - return FailureMechanismSectionAssemblyResultOutput ?? - (FailureMechanismSectionAssemblyResultOutput = - new FailureMechanismSectionAssemblyResultWrapper( - new FailureMechanismSectionAssemblyResult(0.01, 0.1, 10, FailureMechanismSectionAssemblyGroup.I), - AssemblyMethod.BOI0A1, AssemblyMethod.BOI0B1)); - } } } \ No newline at end of file