Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/CategoriesListTestFactoryTest.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/CategoriesListTestFactoryTest.cs (revision 0) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/CategoriesListTestFactoryTest.cs (revision 4c78adc6aba8a1a80c45f01515d97c84224ba56d) @@ -0,0 +1,84 @@ +using Assembly.Kernel.Model.CategoryLimits; +using NUnit.Framework; + +namespace Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test +{ + [TestFixture] + public class CategoriesListTestFactoryTest + { + [Test] + public void CreateFailureMechanismSectionCategories_Always_ReturnsValidCategoriesList() + { + // Call + CategoriesList categories = CategoriesListTestFactory.CreateFailureMechanismSectionCategories(); + + // Assert + Assert.IsNotNull(categories); + + FmSectionCategory[] sectionCategories = categories.Categories; + Assert.AreEqual(4, sectionCategories); + + Assert.AreEqual(0, sectionCategories[0].LowerLimit); + Assert.AreEqual(0.25, sectionCategories[0].UpperLimit); + + Assert.AreEqual(0.25, sectionCategories[0].LowerLimit); + Assert.AreEqual(0.5, sectionCategories[0].UpperLimit); + + Assert.AreEqual(0.5, sectionCategories[0].LowerLimit); + Assert.AreEqual(0.75, sectionCategories[0].UpperLimit); + + Assert.AreEqual(0.75, sectionCategories[0].LowerLimit); + Assert.AreEqual(1, sectionCategories[0].UpperLimit); + } + + [Test] + public void CreateFailureMechanismCategories_Always_ReturnsValidCategoriesList() + { + // Call + CategoriesList categories = CategoriesListTestFactory.CreateFailureMechanismCategories(); + + // Assert + Assert.IsNotNull(categories); + + FailureMechanismCategory[] sectionCategories = categories.Categories; + Assert.AreEqual(4, sectionCategories); + + Assert.AreEqual(0, sectionCategories[0].LowerLimit); + Assert.AreEqual(0.25, sectionCategories[0].UpperLimit); + + Assert.AreEqual(0.25, sectionCategories[0].LowerLimit); + Assert.AreEqual(0.5, sectionCategories[0].UpperLimit); + + Assert.AreEqual(0.5, sectionCategories[0].LowerLimit); + Assert.AreEqual(0.75, sectionCategories[0].UpperLimit); + + Assert.AreEqual(0.75, sectionCategories[0].LowerLimit); + Assert.AreEqual(1, sectionCategories[0].UpperLimit); + } + + [Test] + public void CreateAssessmentSectionCategories_Always_ReturnsValidCategoriesList() + { + // Call + CategoriesList categories = CategoriesListTestFactory.CreateAssessmentSectionCategories(); + + // Assert + Assert.IsNotNull(categories); + + AssessmentSectionCategory[] sectionCategories = categories.Categories; + Assert.AreEqual(4, sectionCategories); + + Assert.AreEqual(0, sectionCategories[0].LowerLimit); + Assert.AreEqual(0.25, sectionCategories[0].UpperLimit); + + Assert.AreEqual(0.25, sectionCategories[0].LowerLimit); + Assert.AreEqual(0.5, sectionCategories[0].UpperLimit); + + Assert.AreEqual(0.5, sectionCategories[0].LowerLimit); + Assert.AreEqual(0.75, sectionCategories[0].UpperLimit); + + Assert.AreEqual(0.75, sectionCategories[0].LowerLimit); + Assert.AreEqual(1, sectionCategories[0].UpperLimit); + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Categories/AssemblyCategoriesKernelStubTest.cs =================================================================== diff -u -r72dba5708cc6d66f7d4ad698c0b72ddd2f540154 -r4c78adc6aba8a1a80c45f01515d97c84224ba56d --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Categories/AssemblyCategoriesKernelStubTest.cs (.../AssemblyCategoriesKernelStubTest.cs) (revision 72dba5708cc6d66f7d4ad698c0b72ddd2f540154) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Kernels/Categories/AssemblyCategoriesKernelStubTest.cs (.../AssemblyCategoriesKernelStubTest.cs) (revision 4c78adc6aba8a1a80c45f01515d97c84224ba56d) @@ -20,7 +20,6 @@ // All rights reserved. using System; -using System.Collections.Generic; using System.Linq; using Assembly.Kernel.Exceptions; using Assembly.Kernel.Interfaces; @@ -45,8 +44,15 @@ Assert.IsInstanceOf(kernel); Assert.AreEqual(0, kernel.LowerLimitNorm); Assert.AreEqual(0, kernel.SignalingNorm); + Assert.AreEqual(0, kernel.AssessmentSectionNorm); + Assert.AreEqual(0, kernel.FailureMechanismContribution); Assert.AreEqual(0, kernel.N); Assert.IsFalse(kernel.Calculated); + + Assert.IsNull(kernel.AssessmentSectionCategoriesOutput); + Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutputWbi01); + Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutputWbi02); + Assert.IsNull(kernel.FailureMechanismCategoriesOutput); } [Test] @@ -74,11 +80,11 @@ // Setup var kernel = new AssemblyCategoriesKernelStub { - AssessmentSectionCategoriesOutput = Enumerable.Empty() + AssessmentSectionCategoriesOutput = CategoriesListTestFactory.CreateAssessmentSectionCategories() }; // Call - IEnumerable output = kernel.CalculateAssessmentSectionCategoryLimitsWbi21(CreateValidAssessmentSection()); + CategoriesList output = kernel.CalculateAssessmentSectionCategoryLimitsWbi21(CreateValidAssessmentSection()); // Assert Assert.AreSame(kernel.AssessmentSectionCategoriesOutput, output); @@ -162,11 +168,11 @@ // Setup var kernel = new AssemblyCategoriesKernelStub { - FailureMechanismCategoriesOutput = Enumerable.Empty() + FailureMechanismCategoriesOutput = CategoriesListTestFactory.CreateFailureMechanismCategories() }; // Call - IEnumerable output = kernel.CalculateFailureMechanismCategoryLimitsWbi11( + CategoriesList output = kernel.CalculateFailureMechanismCategoryLimitsWbi11( CreateValidAssessmentSection(), CreateValidFailureMechanism()); @@ -256,16 +262,16 @@ // Setup var kernel = new AssemblyCategoriesKernelStub { - FailureMechanismSectionCategoriesOutput = Enumerable.Empty() + FailureMechanismSectionCategoriesOutputWbi01 = CategoriesListTestFactory.CreateFailureMechanismSectionCategories() }; // Call - IEnumerable output = kernel.CalculateFmSectionCategoryLimitsWbi01( + CategoriesList output = kernel.CalculateFmSectionCategoryLimitsWbi01( CreateValidAssessmentSection(), CreateValidFailureMechanism()); // Assert - Assert.AreSame(kernel.FailureMechanismSectionCategoriesOutput, output); + Assert.AreSame(kernel.FailureMechanismSectionCategoriesOutputWbi01, output); } [Test] @@ -290,7 +296,7 @@ Assert.AreEqual("Message", exception.Message); Assert.IsNotNull(exception.InnerException); Assert.IsFalse(kernel.Calculated); - Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutput); + Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutputWbi01); } [Test] @@ -316,14 +322,15 @@ Assert.AreEqual("entity", errorMessage.EntityId); Assert.AreEqual(EAssemblyErrors.CategoryLowerLimitOutOfRange, errorMessage.ErrorCode); Assert.IsFalse(kernel.Calculated); - Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutput); + Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutputWbi01); } [Test] public void CalculateFmSectionCategoryLimitsWbi02_KernelDoesNotThrowException_InputCorrectlySetToKernelAndCalculatedTrue() { // Setup - AssessmentSection assessmentSection = CreateValidAssessmentSection(); + var random = new Random(21); + double assessmentSectionNorm = random.NextDouble(); FailureMechanism failureMechanism = CreateValidFailureMechanism(); var kernel = new AssemblyCategoriesKernelStub(); @@ -332,14 +339,13 @@ Assert.IsFalse(kernel.Calculated); // Call - kernel.CalculateFmSectionCategoryLimitsWbi02(assessmentSection, + kernel.CalculateFmSectionCategoryLimitsWbi02(assessmentSectionNorm, failureMechanism); // Assert Assert.IsTrue(kernel.Calculated); - Assert.AreEqual(assessmentSection.FailureProbabilitySignallingLimit, kernel.SignalingNorm); - Assert.AreEqual(assessmentSection.FailureProbabilityLowerLimit, kernel.LowerLimitNorm); + Assert.AreEqual(assessmentSectionNorm, kernel.AssessmentSectionNorm); Assert.AreEqual(failureMechanism.FailureProbabilityMarginFactor, kernel.FailureMechanismContribution); Assert.AreEqual(failureMechanism.LengthEffectFactor, kernel.N); } @@ -348,24 +354,26 @@ public void CalculateFmSectionCategoryLimitsWbi02_KernelDoesNotThrowException_ReturnAssessmentSectionCategories() { // Setup + var random = new Random(21); var kernel = new AssemblyCategoriesKernelStub { - FailureMechanismSectionCategoriesOutput = Enumerable.Empty() + FailureMechanismSectionCategoriesOutputWbi02 = CategoriesListTestFactory.CreateFailureMechanismSectionCategories() }; // Call - IEnumerable output = kernel.CalculateFmSectionCategoryLimitsWbi02( - CreateValidAssessmentSection(), + CategoriesList output = kernel.CalculateFmSectionCategoryLimitsWbi02( + random.NextDouble(), CreateValidFailureMechanism()); // Assert - Assert.AreSame(kernel.FailureMechanismSectionCategoriesOutput, output); + Assert.AreSame(kernel.FailureMechanismSectionCategoriesOutputWbi02, output); } [Test] public void CalculateFmSectionCategoryLimitsWbi02_ThrowExceptionOnCalculateTrue_ThrowsException() { // Setup + var random = new Random(21); var kernel = new AssemblyCategoriesKernelStub { ThrowExceptionOnCalculate = true @@ -376,21 +384,22 @@ // Call TestDelegate test = () => kernel.CalculateFmSectionCategoryLimitsWbi02( - CreateValidAssessmentSection(), + random.NextDouble(), CreateValidFailureMechanism()); // Assert var exception = Assert.Throws(test); Assert.AreEqual("Message", exception.Message); Assert.IsNotNull(exception.InnerException); Assert.IsFalse(kernel.Calculated); - Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutput); + Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutputWbi02); } [Test] public void CalculateFmSectionCategoryLimitsWbi02_ThrowAssemblyExceptionOnCalculateTrue_ThrowsAssemblyException() { // Setup + var random = new Random(21); var kernel = new AssemblyCategoriesKernelStub { ThrowAssemblyExceptionOnCalculate = true @@ -401,7 +410,7 @@ // Call TestDelegate test = () => kernel.CalculateFmSectionCategoryLimitsWbi02( - CreateValidAssessmentSection(), + random.NextDouble(), CreateValidFailureMechanism()); // Assert @@ -410,7 +419,7 @@ Assert.AreEqual("entity", errorMessage.EntityId); Assert.AreEqual(EAssemblyErrors.CategoryLowerLimitOutOfRange, errorMessage.ErrorCode); Assert.IsFalse(kernel.Calculated); - Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutput); + Assert.IsNull(kernel.FailureMechanismSectionCategoriesOutputWbi02); } private static FailureMechanism CreateValidFailureMechanism() Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test.csproj =================================================================== diff -u -r70196989bbf45e88c19faa7300c59f0b43714beb -r4c78adc6aba8a1a80c45f01515d97c84224ba56d --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test.csproj) (revision 70196989bbf45e88c19faa7300c59f0b43714beb) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.TestUtil.Test.csproj) (revision 4c78adc6aba8a1a80c45f01515d97c84224ba56d) @@ -24,6 +24,7 @@ + Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/CategoriesListTestFactory.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/CategoriesListTestFactory.cs (revision 0) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/CategoriesListTestFactory.cs (revision 4c78adc6aba8a1a80c45f01515d97c84224ba56d) @@ -0,0 +1,68 @@ +using System; +using Assembly.Kernel.Model; +using Assembly.Kernel.Model.CategoryLimits; +using Assembly.Kernel.Model.FmSectionTypes; +using Core.Common.TestUtil; + +namespace Ringtoets.AssemblyTool.KernelWrapper.TestUtil +{ + /// + /// Class that creates valid instances of + /// which can be used for testing. + /// + public static class CategoriesListTestFactory + { + private static readonly Random random = new Random(21); + + /// + /// Creates a valid instance of + /// containing . + /// + /// An instance of + /// containing . + public static CategoriesList CreateFailureMechanismSectionCategories() + { + return new CategoriesList(new [] + { + new FmSectionCategory(random.NextEnumValue(), 0, 0.25), + new FmSectionCategory(random.NextEnumValue(), 0.25, 0.5), + new FmSectionCategory(random.NextEnumValue(), 0.5, 0.75), + new FmSectionCategory(random.NextEnumValue(), 0.75, 1.0) + }); + } + + /// + /// Creates a valid instance of + /// containing . + /// + /// An instance of + /// containing . + public static CategoriesList CreateFailureMechanismCategories() + { + return new CategoriesList(new[] + { + new FailureMechanismCategory(random.NextEnumValue(), 0, 0.25), + new FailureMechanismCategory(random.NextEnumValue(), 0.25, 0.5), + new FailureMechanismCategory(random.NextEnumValue(), 0.5, 0.75), + new FailureMechanismCategory(random.NextEnumValue(), 0.75, 1.0) + }); + } + + /// + /// Creates a valid instance of + /// containing . + /// + /// An instance of + /// containing . + public static CategoriesList CreateAssessmentSectionCategories() + { + return new CategoriesList(new[] + { + new AssessmentSectionCategory(random.NextEnumValue(), 0, 0.25), + new AssessmentSectionCategory(random.NextEnumValue(), 0.25, 0.5), + new AssessmentSectionCategory(random.NextEnumValue(), 0.5, 0.75), + new AssessmentSectionCategory(random.NextEnumValue(), 0.75, 1.0) + }); + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Categories/AssemblyCategoriesKernelStub.cs =================================================================== diff -u -r61e0b1bf1351eabb70eccd3fafeb61ade378f44c -r4c78adc6aba8a1a80c45f01515d97c84224ba56d --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Categories/AssemblyCategoriesKernelStub.cs (.../AssemblyCategoriesKernelStub.cs) (revision 61e0b1bf1351eabb70eccd3fafeb61ade378f44c) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Kernels/Categories/AssemblyCategoriesKernelStub.cs (.../AssemblyCategoriesKernelStub.cs) (revision 4c78adc6aba8a1a80c45f01515d97c84224ba56d) @@ -20,7 +20,6 @@ // All rights reserved. using System; -using System.Collections.Generic; using Assembly.Kernel.Exceptions; using Assembly.Kernel.Interfaces; using Assembly.Kernel.Model; @@ -39,6 +38,11 @@ public bool Calculated { get; private set; } /// + /// Gets the assessment section norm. + /// + public double AssessmentSectionNorm { get; private set; } + + /// /// Gets the lower limit norm. /// public double LowerLimitNorm { get; private set; } @@ -71,19 +75,24 @@ /// /// Gets or sets the assessment section categories output. /// - public IEnumerable AssessmentSectionCategoriesOutput { get; set; } + public CategoriesList AssessmentSectionCategoriesOutput { get; set; } /// /// Gets or sets the failure mechanism categories output. /// - public IEnumerable FailureMechanismCategoriesOutput { get; set; } + public CategoriesList FailureMechanismCategoriesOutput { get; set; } /// - /// Gets or sets the failure mechanism section categories output. + /// Gets or sets the failure mechanism section categories output for WBI-01. /// - public IEnumerable FailureMechanismSectionCategoriesOutput { get; set; } + public CategoriesList FailureMechanismSectionCategoriesOutputWbi01 { get; set; } - public IEnumerable CalculateAssessmentSectionCategoryLimitsWbi21(AssessmentSection section) + /// + /// Gets or sets the failure mechanism section categories output for WBI-02. + /// + public CategoriesList FailureMechanismSectionCategoriesOutputWbi02 { get; set; } + + public CategoriesList CalculateAssessmentSectionCategoryLimitsWbi21(AssessmentSection section) { ThrowException(); @@ -95,7 +104,7 @@ return AssessmentSectionCategoriesOutput; } - public IEnumerable CalculateFailureMechanismCategoryLimitsWbi11(AssessmentSection section, FailureMechanism failureMechanism) + public CategoriesList CalculateFailureMechanismCategoryLimitsWbi11(AssessmentSection section, FailureMechanism failureMechanism) { ThrowException(); @@ -109,7 +118,7 @@ return FailureMechanismCategoriesOutput; } - public IEnumerable CalculateFmSectionCategoryLimitsWbi01(AssessmentSection section, FailureMechanism failureMechanism) + public CategoriesList CalculateFmSectionCategoryLimitsWbi01(AssessmentSection section, FailureMechanism failureMechanism) { ThrowException(); @@ -120,21 +129,20 @@ Calculated = true; - return FailureMechanismSectionCategoriesOutput; + return FailureMechanismSectionCategoriesOutputWbi01; } - public IEnumerable CalculateFmSectionCategoryLimitsWbi02(AssessmentSection section, FailureMechanism failureMechanism) + public CategoriesList CalculateFmSectionCategoryLimitsWbi02(double assessmentSectionNorm, FailureMechanism failureMechanism) { ThrowException(); - SignalingNorm = section.FailureProbabilitySignallingLimit; - LowerLimitNorm = section.FailureProbabilityLowerLimit; + AssessmentSectionNorm = assessmentSectionNorm; FailureMechanismContribution = failureMechanism.FailureProbabilityMarginFactor; N = failureMechanism.LengthEffectFactor; Calculated = true; - return FailureMechanismSectionCategoriesOutput; + return FailureMechanismSectionCategoriesOutputWbi02; } private void ThrowException() Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj =================================================================== diff -u -ra76570f47dca0e8a8eb8a3792f44c82a55dcc5ac -r4c78adc6aba8a1a80c45f01515d97c84224ba56d --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj) (revision a76570f47dca0e8a8eb8a3792f44c82a55dcc5ac) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj) (revision 4c78adc6aba8a1a80c45f01515d97c84224ba56d) @@ -25,6 +25,7 @@ + @@ -43,6 +44,10 @@ + + {D749EE4C-CE50-4C17-BF01-9A953028C126} + Core.Common.TestUtil + {78AA56F5-431D-465C-AC50-3173D7E90AC1} Ringtoets.Common.Primitives