Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj =================================================================== diff -u -r56ac4eb28f5fcc5b20117474e9e4030399d6806a -r46caddf3f9694166feba0eb8647821bd15488cc1 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision 56ac4eb28f5fcc5b20117474e9e4030399d6806a) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Application.Ringtoets.Storage.csproj (.../Application.Ringtoets.Storage.csproj) (revision 46caddf3f9694166feba0eb8647821bd15488cc1) @@ -68,7 +68,7 @@ - + Fisheye: Tag 46caddf3f9694166feba0eb8647821bd15488cc1 refers to a dead (removed) revision in file `Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionInwards/DikeHeightAssessmentOutputCreateExtensions.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionInwards/HydraulicLoadsOutputCreateExtensions.cs =================================================================== diff -u --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionInwards/HydraulicLoadsOutputCreateExtensions.cs (revision 0) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/GrassCoverErosionInwards/HydraulicLoadsOutputCreateExtensions.cs (revision 46caddf3f9694166feba0eb8647821bd15488cc1) @@ -0,0 +1,107 @@ +// Copyright (C) Stichting Deltares 2016. 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 Application.Ringtoets.Storage.DbContext; +using Ringtoets.GrassCoverErosionInwards.Data; + +namespace Application.Ringtoets.Storage.Create.GrassCoverErosionInwards +{ + /// + /// Extension methods for related to creating a + /// or a + /// . + /// + internal static class HydraulicLoadsOutputCreateExtensions + { + /// + /// Creates a + /// based on the information of the . + /// + /// The output to create a database entity for. + /// A new . + /// Thrown when + /// is null. + internal static GrassCoverErosionInwardsDikeHeightOutputEntity CreateDikeHeight(this HydraulicLoadsOutput output) + { + if (output == null) + { + throw new ArgumentNullException(nameof(output)); + } + + return new GrassCoverErosionInwardsDikeHeightOutputEntity + { + DikeHeight = double.IsNaN(output.Result) + ? (double?) null + : output.Result, + TargetProbability = double.IsNaN(output.TargetProbability) + ? (double?) null + : output.TargetProbability, + TargetReliability = double.IsNaN(output.TargetReliability) + ? (double?) null + : output.TargetReliability, + CalculatedProbability = double.IsNaN(output.CalculatedProbability) + ? (double?) null + : output.CalculatedProbability, + CalculatedReliability = double.IsNaN(output.CalculatedReliability) + ? (double?) null + : output.CalculatedReliability, + CalculationConvergence = (byte) output.CalculationConvergence + }; + } + + /// + /// Creates a + /// based on the information of the . + /// + /// The output to create a database entity for. + /// A new . + /// Thrown when + /// is null. + internal static GrassCoverErosionInwardsOvertoppingRateOutputEntity CreateOvertoppingRate(this HydraulicLoadsOutput output) + { + if (output == null) + { + throw new ArgumentNullException(nameof(output)); + } + + return new GrassCoverErosionInwardsOvertoppingRateOutputEntity + { + OvertoppingRate = double.IsNaN(output.Result) + ? (double?) null + : output.Result, + TargetProbability = double.IsNaN(output.TargetProbability) + ? (double?) null + : output.TargetProbability, + TargetReliability = double.IsNaN(output.TargetReliability) + ? (double?) null + : output.TargetReliability, + CalculatedProbability = double.IsNaN(output.CalculatedProbability) + ? (double?) null + : output.CalculatedProbability, + CalculatedReliability = double.IsNaN(output.CalculatedReliability) + ? (double?) null + : output.CalculatedReliability, + CalculationConvergence = (byte) output.CalculationConvergence + }; + } + } +} \ No newline at end of file Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj =================================================================== diff -u -r56ac4eb28f5fcc5b20117474e9e4030399d6806a -r46caddf3f9694166feba0eb8647821bd15488cc1 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision 56ac4eb28f5fcc5b20117474e9e4030399d6806a) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Application.Ringtoets.Storage.Test.csproj (.../Application.Ringtoets.Storage.Test.csproj) (revision 46caddf3f9694166feba0eb8647821bd15488cc1) @@ -85,7 +85,7 @@ - + Fisheye: Tag 46caddf3f9694166feba0eb8647821bd15488cc1 refers to a dead (removed) revision in file `Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionInwards/DikeHeightAssessmentOutputCreateExtensionsTest.cs'. Fisheye: No comparison available. Pass `N' to diff? Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionInwards/HydraulicLoadsOutputCreateExtensionsTest.cs =================================================================== diff -u --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionInwards/HydraulicLoadsOutputCreateExtensionsTest.cs (revision 0) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/GrassCoverErosionInwards/HydraulicLoadsOutputCreateExtensionsTest.cs (revision 46caddf3f9694166feba0eb8647821bd15488cc1) @@ -0,0 +1,150 @@ +// Copyright (C) Stichting Deltares 2016. 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 Application.Ringtoets.Storage.Create.GrassCoverErosionInwards; +using Application.Ringtoets.Storage.DbContext; +using Core.Common.TestUtil; +using NUnit.Framework; +using Ringtoets.Common.Data.Hydraulics; +using Ringtoets.Common.Data.TestUtil; +using Ringtoets.GrassCoverErosionInwards.Data; + +namespace Application.Ringtoets.Storage.Test.Create.GrassCoverErosionInwards +{ + [TestFixture] + public class HydraulicLoadsOutputCreateExtensionsTest + { + [Test] + public void CreateDikeHeight_OutputNull_ThrowArgumentNullException() + { + // Setup + HydraulicLoadsOutput output = null; + + // Call + TestDelegate test = () => output.CreateDikeHeight(); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("output", exception.ParamName); + } + + [Test] + public void CreateDikeHeight_WithValidParameters_ReturnsGrassCoverErosionInwardsDikeHeightOutputEntityWithOutputSet() + { + // Setup + var random = new Random(21); + var output = new HydraulicLoadsOutput( + random.NextDouble(), random.NextDouble(), random.NextDouble(), random.NextDouble(), + random.NextDouble(), random.NextEnumValue()); + + // Call + GrassCoverErosionInwardsDikeHeightOutputEntity entity = output.CreateDikeHeight(); + + // Assert + Assert.IsNotNull(entity); + Assert.AreEqual(output.Result, entity.DikeHeight, output.Result.GetAccuracy()); + Assert.AreEqual(output.TargetProbability, entity.TargetProbability); + Assert.AreEqual(output.TargetReliability, entity.TargetReliability, output.TargetReliability.GetAccuracy()); + Assert.AreEqual(output.CalculatedProbability, entity.CalculatedProbability); + Assert.AreEqual(output.CalculatedReliability, entity.CalculatedReliability, output.CalculatedReliability.GetAccuracy()); + Assert.AreEqual((byte) output.CalculationConvergence, entity.CalculationConvergence); + } + + [Test] + public void CreateDikeHeight_WithNaNParameters_ReturnsGrassCoverErosionInwardsDikeHeightOutputEntityWithOutputNull() + { + // Setup + var random = new Random(21); + var output = new HydraulicLoadsOutput(double.NaN, double.NaN, double.NaN, + double.NaN, double.NaN, random.NextEnumValue()); + + // Call + GrassCoverErosionInwardsDikeHeightOutputEntity entity = output.CreateDikeHeight(); + + // Assert + Assert.IsNotNull(entity); + Assert.IsNull(entity.DikeHeight); + Assert.IsNull(entity.TargetProbability); + Assert.IsNull(entity.TargetReliability); + Assert.IsNull(entity.CalculatedProbability); + Assert.IsNull(entity.CalculatedReliability); + Assert.AreEqual((byte) output.CalculationConvergence, entity.CalculationConvergence); + } + + [Test] + public void CreateOvertoppingRate_OutputNull_ThrowArgumentNullException() + { + // Setup + HydraulicLoadsOutput output = null; + + // Call + TestDelegate test = () => output.CreateOvertoppingRate(); + + // Assert + var exception = Assert.Throws(test); + Assert.AreEqual("output", exception.ParamName); + } + + [Test] + public void CreateOvertoppingRate_WithValidParameters_ReturnsGrassCoverErosionInwardsOvertoppingRateOutputEntityWithOutputSet() + { + // Setup + var random = new Random(21); + var output = new HydraulicLoadsOutput( + random.NextDouble(), random.NextDouble(), random.NextDouble(), random.NextDouble(), + random.NextDouble(), random.NextEnumValue()); + + // Call + GrassCoverErosionInwardsOvertoppingRateOutputEntity entity = output.CreateOvertoppingRate(); + + // Assert + Assert.IsNotNull(entity); + Assert.AreEqual(output.Result, entity.OvertoppingRate, output.Result.GetAccuracy()); + Assert.AreEqual(output.TargetProbability, entity.TargetProbability); + Assert.AreEqual(output.TargetReliability, entity.TargetReliability, output.TargetReliability.GetAccuracy()); + Assert.AreEqual(output.CalculatedProbability, entity.CalculatedProbability); + Assert.AreEqual(output.CalculatedReliability, entity.CalculatedReliability, output.CalculatedReliability.GetAccuracy()); + Assert.AreEqual((byte) output.CalculationConvergence, entity.CalculationConvergence); + } + + [Test] + public void CreateOvertoppingRate_WithNaNParameters_ReturnsGrassCoverErosionInwardsOvertoppingRateOutputEntityWithOutputNull() + { + // Setup + var random = new Random(21); + var output = new HydraulicLoadsOutput(double.NaN, double.NaN, double.NaN, + double.NaN, double.NaN, random.NextEnumValue()); + + // Call + GrassCoverErosionInwardsOvertoppingRateOutputEntity entity = output.CreateOvertoppingRate(); + + // Assert + Assert.IsNotNull(entity); + Assert.IsNull(entity.OvertoppingRate); + Assert.IsNull(entity.TargetProbability); + Assert.IsNull(entity.TargetReliability); + Assert.IsNull(entity.CalculatedProbability); + Assert.IsNull(entity.CalculatedReliability); + Assert.AreEqual((byte) output.CalculationConvergence, entity.CalculationConvergence); + } + } +} \ No newline at end of file