Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/CombinedFailureMechanismSectionAssemblyCreatorTest.cs =================================================================== diff -u -r6b7fc9d682090343904b25d6c3ecb10b0166decf -ra76570f47dca0e8a8eb8a3792f44c82a55dcc5ac --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/CombinedFailureMechanismSectionAssemblyCreatorTest.cs (.../CombinedFailureMechanismSectionAssemblyCreatorTest.cs) (revision 6b7fc9d682090343904b25d6c3ecb10b0166decf) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.Test/Creators/CombinedFailureMechanismSectionAssemblyCreatorTest.cs (.../CombinedFailureMechanismSectionAssemblyCreatorTest.cs) (revision a76570f47dca0e8a8eb8a3792f44c82a55dcc5ac) @@ -20,14 +20,14 @@ // All rights reserved. using System; -using System.Collections.Generic; using System.Linq; using Assembly.Kernel.Model; using Assembly.Kernel.Model.FmSectionTypes; using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.AssemblyTool.Data; using Ringtoets.AssemblyTool.KernelWrapper.Creators; +using Ringtoets.AssemblyTool.KernelWrapper.TestUtil; namespace Ringtoets.AssemblyTool.KernelWrapper.Test.Creators { @@ -50,8 +50,6 @@ { // Setup var random = new Random(21); - var failureMechanism1 = new FailureMechanism(random.NextDouble(1, 2), random.NextDouble()); - var failureMechanism2 = new FailureMechanism(random.NextDouble(1, 2), random.NextDouble()); var sections = new[] { @@ -62,25 +60,25 @@ var failureMechanismResults = new[] { - new FailureMechanismSectionList(failureMechanism1, new [] + new FailureMechanismSectionList(new FailureMechanism(random.NextDouble(1, 2), random.NextDouble()), new[] { - new FmSectionWithDirectCategory(sections[0].Item1, sections[0].Item2, random.NextEnumValue()), - new FmSectionWithDirectCategory(sections[1].Item1, sections[1].Item2, random.NextEnumValue()), - new FmSectionWithDirectCategory(sections[2].Item1, sections[2].Item2, random.NextEnumValue()), + CreateCategory(sections[0], random), + CreateCategory(sections[1], random), + CreateCategory(sections[2], random) }), - new FailureMechanismSectionList(failureMechanism2, new [] + new FailureMechanismSectionList(new FailureMechanism(random.NextDouble(1, 2), random.NextDouble()), new[] { - new FmSectionWithDirectCategory(sections[0].Item1, sections[0].Item2, random.NextEnumValue()), - new FmSectionWithDirectCategory(sections[1].Item1, sections[1].Item2, random.NextEnumValue()), - new FmSectionWithDirectCategory(sections[2].Item1, sections[2].Item2, random.NextEnumValue()), + CreateCategory(sections[0], random), + CreateCategory(sections[1], random), + CreateCategory(sections[2], random) }) }; var combinedResults = new[] { - new FmSectionWithDirectCategory(sections[0].Item1, sections[0].Item2, random.NextEnumValue()), - new FmSectionWithDirectCategory(sections[1].Item1, sections[1].Item2, random.NextEnumValue()), - new FmSectionWithDirectCategory(sections[2].Item1, sections[2].Item2, random.NextEnumValue()), + CreateCategory(sections[0], random), + CreateCategory(sections[1], random), + CreateCategory(sections[2], random) }; var assembly = new AssemblyResult(failureMechanismResults, combinedResults); @@ -89,47 +87,12 @@ CombinedFailureMechanismSectionAssembly[] results = CombinedFailureMechanismSectionAssemblyCreator.Create(assembly).ToArray(); // Assert - Assert.AreEqual(3, results.Length); - for (var i = 0; i < results.Length; i++) - { - Assert.AreEqual(sections[i].Item1, results[i].Section.SectionStart); - Assert.AreEqual(sections[i].Item2, results[i].Section.SectionEnd); - Assert.AreEqual(GetResultGroup(combinedResults[i].Category), results[i].Section.CategoryGroup); - Assert.AreEqual(failureMechanismResults.Length, results[i].FailureMechanismResults.Count()); - - for (var j = 0; j < failureMechanismResults.Length; j++) - { - FailureMechanismSectionAssemblyCategoryGroup expectedGroup = GetResultGroup(((FmSectionWithDirectCategory) failureMechanismResults[j].Results[i]).Category); - Assert.AreEqual(expectedGroup, results[i].FailureMechanismResults.ElementAt(j)); - } - } + CombinedFailureMechanismSectionAssemblyAssert.AssertAssembly(assembly, results); } - private static FailureMechanismSectionAssemblyCategoryGroup GetResultGroup(EFmSectionCategory combinedResult) + private static FmSectionWithDirectCategory CreateCategory(Tuple section, Random random) { - switch (combinedResult) - { - case EFmSectionCategory.Iv: - return FailureMechanismSectionAssemblyCategoryGroup.Iv; - case EFmSectionCategory.IIv: - return FailureMechanismSectionAssemblyCategoryGroup.IIv; - case EFmSectionCategory.IIIv: - return FailureMechanismSectionAssemblyCategoryGroup.IIIv; - case EFmSectionCategory.IVv: - return FailureMechanismSectionAssemblyCategoryGroup.IVv; - case EFmSectionCategory.Vv: - return FailureMechanismSectionAssemblyCategoryGroup.Vv; - case EFmSectionCategory.VIv: - return FailureMechanismSectionAssemblyCategoryGroup.VIv; - case EFmSectionCategory.VIIv: - return FailureMechanismSectionAssemblyCategoryGroup.VIIv; - case EFmSectionCategory.Gr: - return FailureMechanismSectionAssemblyCategoryGroup.None; - case EFmSectionCategory.NotApplicable: - return FailureMechanismSectionAssemblyCategoryGroup.NotApplicable; - default: - throw new NotSupportedException(); - } + return new FmSectionWithDirectCategory(section.Item1, section.Item2, random.NextEnumValue()); } } } \ No newline at end of file Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/CombinedFailureMechanismSectionAssemblyAssert.cs =================================================================== diff -u --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/CombinedFailureMechanismSectionAssemblyAssert.cs (revision 0) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/CombinedFailureMechanismSectionAssemblyAssert.cs (revision a76570f47dca0e8a8eb8a3792f44c82a55dcc5ac) @@ -0,0 +1,91 @@ +// Copyright (C) Stichting Deltares 2017. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using System; +using System.Linq; +using Assembly.Kernel.Model; +using Assembly.Kernel.Model.FmSectionTypes; +using NUnit.Framework; +using Ringtoets.AssemblyTool.Data; + +namespace Ringtoets.AssemblyTool.KernelWrapper.TestUtil +{ + /// + /// Class that asserts combined failure mechanism section assemblies. + /// + public static class CombinedFailureMechanismSectionAssemblyAssert + { + /// + /// Asserts whether is equal to . + /// + /// The original . + /// The actual collection of . + /// Thrown when + /// is not equal to . + public static void AssertAssembly(AssemblyResult original, CombinedFailureMechanismSectionAssembly[] actual) + { + FmSectionWithDirectCategory[] combinedResults = original.CombinedSectionResult.ToArray(); + Assert.AreEqual(combinedResults.Length, actual.Length); + for (var i = 0; i < actual.Length; i++) + { + Assert.AreEqual(combinedResults[i].SectionStart, actual[i].Section.SectionStart); + Assert.AreEqual(combinedResults[i].SectionEnd, actual[i].Section.SectionEnd); + Assert.AreEqual(GetResultGroup(combinedResults[i].Category), actual[i].Section.CategoryGroup); + + FailureMechanismSectionList[] failureMechanismResults = original.ResultPerFailureMechanism.ToArray(); + Assert.AreEqual(failureMechanismResults.Length, actual[i].FailureMechanismResults.Count()); + + for (var j = 0; j < failureMechanismResults.Length; j++) + { + FailureMechanismSectionAssemblyCategoryGroup expectedGroup = GetResultGroup(((FmSectionWithDirectCategory) failureMechanismResults[j].Results[i]).Category); + Assert.AreEqual(expectedGroup, actual[i].FailureMechanismResults.ElementAt(j)); + } + } + } + + private static FailureMechanismSectionAssemblyCategoryGroup GetResultGroup(EFmSectionCategory combinedResult) + { + switch (combinedResult) + { + case EFmSectionCategory.Iv: + return FailureMechanismSectionAssemblyCategoryGroup.Iv; + case EFmSectionCategory.IIv: + return FailureMechanismSectionAssemblyCategoryGroup.IIv; + case EFmSectionCategory.IIIv: + return FailureMechanismSectionAssemblyCategoryGroup.IIIv; + case EFmSectionCategory.IVv: + return FailureMechanismSectionAssemblyCategoryGroup.IVv; + case EFmSectionCategory.Vv: + return FailureMechanismSectionAssemblyCategoryGroup.Vv; + case EFmSectionCategory.VIv: + return FailureMechanismSectionAssemblyCategoryGroup.VIv; + case EFmSectionCategory.VIIv: + return FailureMechanismSectionAssemblyCategoryGroup.VIIv; + case EFmSectionCategory.Gr: + return FailureMechanismSectionAssemblyCategoryGroup.None; + case EFmSectionCategory.NotApplicable: + return FailureMechanismSectionAssemblyCategoryGroup.NotApplicable; + default: + throw new NotSupportedException(); + } + } + } +} \ No newline at end of file Index: Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj =================================================================== diff -u -rc19058d1084b7a7f5e05e43f121f4d1c685838ad -ra76570f47dca0e8a8eb8a3792f44c82a55dcc5ac --- Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj) (revision c19058d1084b7a7f5e05e43f121f4d1c685838ad) +++ Ringtoets/AssemblyTool/test/Ringtoets.AssemblyTool.KernelWrapper.TestUtil/Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj (.../Ringtoets.AssemblyTool.KernelWrapper.TestUtil.csproj) (revision a76570f47dca0e8a8eb8a3792f44c82a55dcc5ac) @@ -25,6 +25,7 @@ +