Index: Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingInput.cs =================================================================== diff -u -r686466dda6406ee2c7fb1f33faa60494878b1fc8 -r15565f69a7b2997da904f005a25d582502cef7e1 --- Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingInput.cs (.../DerivedPipingInput.cs) (revision 686466dda6406ee2c7fb1f33faa60494878b1fc8) +++ Ringtoets/Piping/src/Ringtoets.Piping.Data/DerivedPipingInput.cs (.../DerivedPipingInput.cs) (revision 15565f69a7b2997da904f005a25d582502cef7e1) @@ -43,14 +43,15 @@ /// /// Creates a new instance of . /// - /// The input to calculate the derived piping input. + /// The input to calculate the derived piping input for. /// Thrown when is null. public DerivedPipingInput(PipingInput input) { if (input == null) { - throw new ArgumentNullException(nameof(input), @"Cannot create DerivedPipingInput without PipingInput."); + throw new ArgumentNullException(nameof(input)); } + this.input = input; } @@ -426,11 +427,12 @@ if (surfaceLine != null && soilProfile != null && !double.IsNaN(exitPointL)) { PipingSoilLayer[] consecutiveAquitardLayersBelowLevel = soilProfile - .GetConsecutiveCoverageLayersBelowLevel(surfaceLine.GetZAtL(exitPointL)) - .ToArray(); + .GetConsecutiveCoverageLayersBelowLevel(surfaceLine.GetZAtL(exitPointL)) + .ToArray(); return consecutiveAquitardLayersBelowLevel; } + return new PipingSoilLayer[0]; } @@ -447,6 +449,7 @@ { return double.NaN; } + throw; } } @@ -464,6 +467,7 @@ { return double.NaN; } + throw; } } Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingInputTest.cs =================================================================== diff -u -r8a442db31848f5668714dbf441b393213178c775 -r15565f69a7b2997da904f005a25d582502cef7e1 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingInputTest.cs (.../DerivedPipingInputTest.cs) (revision 8a442db31848f5668714dbf441b393213178c775) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/DerivedPipingInputTest.cs (.../DerivedPipingInputTest.cs) (revision 15565f69a7b2997da904f005a25d582502cef7e1) @@ -43,24 +43,11 @@ TestDelegate call = () => new DerivedPipingInput(null); // Assert - const string expectedMessage = "Cannot create DerivedPipingInput without PipingInput."; - TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); + string paramName = Assert.Throws(call).ParamName; + Assert.AreEqual("input", paramName); } [Test] - public void Constructor_WithPipingInput_DoesNotThrow() - { - // Setup - PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(1.0, 1.1); - - // Call - TestDelegate call = () => new DerivedPipingInput(input); - - // Assert - Assert.DoesNotThrow(call); - } - - [Test] public void PiezometricHeadExit_ValidInput_SetsParametersForCalculatorAndReturnsPiezometricHead() { // Setup @@ -79,7 +66,8 @@ var factory = (TestPipingSubCalculatorFactory) PipingSubCalculatorFactory.Instance; PiezoHeadCalculatorStub piezometricHeadAtExitCalculator = factory.LastCreatedPiezometricHeadAtExitCalculator; - Assert.AreEqual(piezometricHeadAtExitCalculator.HRiver, input.AssessmentLevel, input.AssessmentLevel.GetAccuracy()); + Assert.AreEqual(input.AssessmentLevel, piezometricHeadAtExitCalculator.HRiver, + input.AssessmentLevel.GetAccuracy()); Assert.AreEqual(PipingSemiProbabilisticDesignVariableFactory.GetPhreaticLevelExit(input).GetDesignValue(), piezometricHeadAtExitCalculator.PhiPolder, input.PhreaticLevelExit.GetAccuracy()); Assert.AreEqual(PipingSemiProbabilisticDesignVariableFactory.GetDampingFactorExit(input).GetDesignValue(), piezometricHeadAtExitCalculator.RExit, @@ -116,29 +104,26 @@ } [Test] - public void EffectiveThicknessCoverageLayer_InputWithoutSurfaceLine_MeansSetToNaN() + public void EffectiveThicknessCoverageLayer_InputWithoutSoilProfile_MeansSetToNaN() { // Setup PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(); - input.SurfaceLine = null; + input.StochasticSoilProfile = null; var derivedInput = new DerivedPipingInput(input); // Call - LogNormalDistribution effectiveThicknessCoverageLayer = null; - Action call = () => effectiveThicknessCoverageLayer = derivedInput.EffectiveThicknessCoverageLayer; + LogNormalDistribution effectiveThicknessCoverageLayer = derivedInput.EffectiveThicknessCoverageLayer; // Assert - TestHelper.AssertLogMessagesCount(call, 0); Assert.IsNaN(effectiveThicknessCoverageLayer.Mean); } [Test] - [TestCase(1e-6)] - [TestCase(1)] - public void EffectiveThicknessCoverageLayer_SoilProfileSingleAquiferAboveSurfaceLine_ThicknessCoverageLayerNaN(double deltaAboveSurfaceLine) + public void EffectiveThicknessCoverageLayer_InputWithoutSurfaceLine_MeansSetToNaN() { // Setup - PipingInput input = PipingInputFactory.CreateInputWithSingleAquiferLayerAboveSurfaceLine(deltaAboveSurfaceLine); + PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(); + input.SurfaceLine = null; var derivedInput = new DerivedPipingInput(input); // Call @@ -149,20 +134,18 @@ } [Test] - public void EffectiveThicknessCoverageLayer_SoilProfileSetToNull_ThicknessCoverageLayerNaN() + [TestCase(1e-6)] + [TestCase(1)] + public void EffectiveThicknessCoverageLayer_SoilProfileSingleAquiferAboveSurfaceLine_ThicknessCoverageLayerNaN(double deltaAboveSurfaceLine) { // Setup - PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(); + PipingInput input = PipingInputFactory.CreateInputWithSingleAquiferLayerAboveSurfaceLine(deltaAboveSurfaceLine); var derivedInput = new DerivedPipingInput(input); - input.StochasticSoilProfile = null; - // Call - LogNormalDistribution effectiveThicknessCoverageLayer = null; - Action call = () => effectiveThicknessCoverageLayer = derivedInput.EffectiveThicknessCoverageLayer; + LogNormalDistribution effectiveThicknessCoverageLayer = derivedInput.EffectiveThicknessCoverageLayer; // Assert - TestHelper.AssertLogMessagesCount(call, 0); Assert.IsNaN(effectiveThicknessCoverageLayer.Mean); } @@ -217,21 +200,6 @@ } [Test] - public void EffectiveThicknessCoverageLayer_InputWithoutSoilProfile_MeansSetToNaN() - { - // Setup - PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(); - input.StochasticSoilProfile = null; - var derivedInput = new DerivedPipingInput(input); - - // Call - LogNormalDistribution effectiveThicknessCoverageLayer = derivedInput.EffectiveThicknessCoverageLayer; - - // Assert - Assert.IsNaN(effectiveThicknessCoverageLayer.Mean); - } - - [Test] public void ThicknessCoverageLayer_SoilProfileSingleAquiferAndCoverageUnderSurfaceLine_ReturnsThicknessCoverageLayer() { // Setup Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs =================================================================== diff -u -rc0532d07766ecad2566f7cfa4a97a9aeb6e8540c -r15565f69a7b2997da904f005a25d582502cef7e1 --- Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision c0532d07766ecad2566f7cfa4a97a9aeb6e8540c) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.Test/PipingInputTest.cs (.../PipingInputTest.cs) (revision 15565f69a7b2997da904f005a25d582502cef7e1) @@ -87,12 +87,6 @@ StandardDeviation = (RoundedDouble) 0.5 }; - var effectiveThicknessCoverageLayer = new LogNormalDistribution(2) - { - Mean = RoundedDouble.NaN, - StandardDeviation = (RoundedDouble) 0.5 - }; - var saturatedVolumicWeightOfCoverageLayer = new LogNormalDistribution(2) { Mean = RoundedDouble.NaN, @@ -144,7 +138,6 @@ Assert.AreEqual(generalInputParameters.MeanDiameter70, inputParameters.MeanDiameter70); DistributionAssert.AreEqual(thicknessCoverageLayer, inputParameters.ThicknessCoverageLayer); - DistributionAssert.AreEqual(effectiveThicknessCoverageLayer, inputParameters.EffectiveThicknessCoverageLayer); DistributionAssert.AreEqual(saturatedVolumicWeightOfCoverageLayer, inputParameters.SaturatedVolumicWeightOfCoverageLayer); Assert.AreEqual(2, inputParameters.SaturatedVolumicWeightOfCoverageLayer.Shift.NumberOfDecimalPlaces); @@ -157,8 +150,6 @@ Assert.AreEqual(2, inputParameters.ExitPointL.NumberOfDecimalPlaces); Assert.IsNaN(inputParameters.EntryPointL); Assert.AreEqual(2, inputParameters.EntryPointL.NumberOfDecimalPlaces); - Assert.IsNaN(inputParameters.PiezometricHeadExit); - Assert.AreEqual(2, inputParameters.PiezometricHeadExit.NumberOfDecimalPlaces); Assert.IsInstanceOf(inputParameters.AssessmentLevel); Assert.IsNaN(inputParameters.AssessmentLevel); @@ -770,45 +761,6 @@ } [Test] - public void PiezometricHeadExit_ValidInput_SetsParametersForCalculatorAndReturnsPiezometricHead() - { - // Setup - var input = new PipingInput(new GeneralPipingInput()); - - using (new PipingSubCalculatorFactoryConfig()) - { - // Call - RoundedDouble piezometricHead = input.PiezometricHeadExit; - - // Assert - Assert.AreEqual(2, piezometricHead.NumberOfDecimalPlaces); - Assert.IsFalse(double.IsNaN(piezometricHead)); - - var factory = (TestPipingSubCalculatorFactory) PipingSubCalculatorFactory.Instance; - PiezoHeadCalculatorStub piezometricHeadAtExitCalculator = factory.LastCreatedPiezometricHeadAtExitCalculator; - - Assert.AreEqual(piezometricHeadAtExitCalculator.HRiver, input.AssessmentLevel, input.AssessmentLevel.GetAccuracy()); - Assert.AreEqual(PipingSemiProbabilisticDesignVariableFactory.GetPhreaticLevelExit(input).GetDesignValue(), piezometricHeadAtExitCalculator.PhiPolder, - input.PhreaticLevelExit.GetAccuracy()); - Assert.AreEqual(PipingSemiProbabilisticDesignVariableFactory.GetDampingFactorExit(input).GetDesignValue(), piezometricHeadAtExitCalculator.RExit, - input.DampingFactorExit.GetAccuracy()); - } - } - - [Test] - public void PiezometricHeadExit_InputWithAssessmentLevelMissing_PiezometricHeadSetToNaN() - { - // Setup - PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(1.0, 1.0); - - // Call - RoundedDouble piezometricHead = input.PiezometricHeadExit; - - // Assert - Assert.IsNaN(piezometricHead); - } - - [Test] public void ThicknessAquiferLayer_SoilProfileSingleAquiferAndCoverageUnderSurfaceLine_ReturnsThicknessAquiferLayer() { // Setup @@ -1116,113 +1068,6 @@ } [Test] - public void EffectiveThicknessCoverageLayer_InputWithoutSoilProfile_MeansSetToNaN() - { - // Setup - PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(); - input.StochasticSoilProfile = null; - - // Call - LogNormalDistribution effectiveThicknessCoverageLayer = input.EffectiveThicknessCoverageLayer; - - // Assert - Assert.IsNaN(effectiveThicknessCoverageLayer.Mean); - } - - [Test] - public void EffectiveThicknessCoverageLayer_InputWithoutSurfaceLine_MeansSetToNaN() - { - // Setup - PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(); - input.SurfaceLine = null; - - // Call - LogNormalDistribution effectiveThicknessCoverageLayer = input.EffectiveThicknessCoverageLayer; - - // Assert - Assert.IsNaN(effectiveThicknessCoverageLayer.Mean); - } - - [Test] - [TestCase(1e-6)] - [TestCase(1)] - public void EffectiveThicknessCoverageLayer_SoilProfileSingleAquiferAboveSurfaceLine_EffectiveThicknessCoverageLayerNaN(double deltaAboveSurfaceLine) - { - // Setup - PipingInput input = PipingInputFactory.CreateInputWithSingleAquiferLayerAboveSurfaceLine(deltaAboveSurfaceLine); - - // Call - LogNormalDistribution effectiveThicknessCoverageLayer = input.EffectiveThicknessCoverageLayer; - - // Assert - Assert.IsNaN(effectiveThicknessCoverageLayer.Mean); - } - - [Test] - public void EffectiveThicknessCoverageLayer_MeanSetSoilProfileSetToNull_EffectiveThicknessCoverageLayerNaN() - { - // Setup - PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(); - input.EffectiveThicknessCoverageLayer.Mean = new RoundedDouble(2, new Random(21).NextDouble() + 1); - - input.StochasticSoilProfile = null; - - // Call - LogNormalDistribution effectiveThicknessCoverageLayer = input.EffectiveThicknessCoverageLayer; - - // Assert - Assert.IsNaN(effectiveThicknessCoverageLayer.Mean); - } - - [Test] - public void EffectiveThicknessCoverageLayer_ProfileWithoutAquiferLayer_EffectiveThicknessCoverageLayerNaN() - { - // Setup - PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(); - input.StochasticSoilProfile = new PipingStochasticSoilProfile( - 0.0, new PipingSoilProfile(string.Empty, 0, new[] - { - new PipingSoilLayer(2.0) - { - IsAquifer = false - } - }, SoilProfileType.SoilProfile1D) - ); - - // Call - LogNormalDistribution effectiveThicknessCoverageLayer = input.EffectiveThicknessCoverageLayer; - - // Assert - Assert.IsNaN(effectiveThicknessCoverageLayer.Mean); - } - - [Test] - public void EffectiveThicknessCoverageLayer_InputResultsInZeroCoverageThickness_EffectiveThicknessCoverageLayerNaN() - { - // Setup - PipingInput input = PipingInputFactory.CreateInputWithAquiferAndCoverageLayer(); - input.StochasticSoilProfile = new PipingStochasticSoilProfile( - 0.0, new PipingSoilProfile(string.Empty, 0, new[] - { - new PipingSoilLayer(2.0) - { - IsAquifer = false - }, - new PipingSoilLayer(2.0) - { - IsAquifer = true - } - }, SoilProfileType.SoilProfile1D) - ); - - // Call - LogNormalDistribution effectiveThicknessCoverageLayer = input.EffectiveThicknessCoverageLayer; - - // Assert - Assert.IsNaN(effectiveThicknessCoverageLayer.Mean); - } - - [Test] public void SeepageLength_ValidData_ReturnsSeepageLength() { // Setup