Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectTestHelperTest.cs =================================================================== diff -u -r30f69be7d009744f9d2422bc69b5aefc50db5d38 -r03fd8f517a5e4d8636a7eec17c1abdef75f1ffe5 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectTestHelperTest.cs (.../RingtoetsProjectTestHelperTest.cs) (revision 30f69be7d009744f9d2422bc69b5aefc50db5d38) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectTestHelperTest.cs (.../RingtoetsProjectTestHelperTest.cs) (revision 03fd8f517a5e4d8636a7eec17c1abdef75f1ffe5) @@ -77,6 +77,7 @@ Assert.AreEqual(NormType.Signaling, contribution.NormativeNorm); AssertHydraulicBoundaryDatabase(assessmentSection.HydraulicBoundaryDatabase); + AssertHydraulicBoundaryLocationCalculations(assessmentSection); AssertPipingFailureMechanism(assessmentSection); @@ -506,11 +507,8 @@ Assert.AreEqual(0.1, innerStochast.Duration, innerStochast.Duration.GetAccuracy()); } - #region Hydraulic Boundary Database - private static void AssertHydraulicBoundaryDatabase(HydraulicBoundaryDatabase hydraulicBoundaryDatabase) { - Assert.NotNull(hydraulicBoundaryDatabase); Assert.AreEqual("1.0", hydraulicBoundaryDatabase.Version); Assert.AreEqual("/temp/test", hydraulicBoundaryDatabase.FilePath); Assert.IsTrue(hydraulicBoundaryDatabase.CanUsePreprocessor); @@ -524,63 +522,94 @@ Assert.AreEqual(152.3, hydraulicBoundaryLocation.Location.X); Assert.AreEqual(2938.5, hydraulicBoundaryLocation.Location.Y); - HydraulicBoundaryLocationCalculation designWaterLevelCalculation = hydraulicBoundaryLocation.DesignWaterLevelCalculation1; + HydraulicBoundaryLocation hydraulicBoundaryLocationWithIllustrationPoints = hydraulicBoundaryDatabase.Locations[1]; + Assert.AreEqual(13002, hydraulicBoundaryLocationWithIllustrationPoints.Id); + Assert.AreEqual("test2", hydraulicBoundaryLocationWithIllustrationPoints.Name); + Assert.AreEqual(135.2, hydraulicBoundaryLocationWithIllustrationPoints.Location.X); + Assert.AreEqual(5293.8, hydraulicBoundaryLocationWithIllustrationPoints.Location.Y); + } + + #region Hydraulic Boundary Location Calculations + + private static void AssertHydraulicBoundaryLocationCalculations(AssessmentSection assessmentSection) + { + HydraulicBoundaryDatabase hydraulicBoundaryDatabase = assessmentSection.HydraulicBoundaryDatabase; + + HydraulicBoundaryLocation hydraulicBoundaryLocation = hydraulicBoundaryDatabase.Locations[0]; + AssertHydraulicBoundaryLocationCalculationsWithoutIllustrationPoints(assessmentSection, hydraulicBoundaryLocation); + + HydraulicBoundaryLocation hydraulicBoundaryLocationWithIllustrationPoints = hydraulicBoundaryDatabase.Locations[1]; + AssertHydraulicBoundaryLocationCalculationWithIllustrationPoints(assessmentSection, hydraulicBoundaryLocationWithIllustrationPoints); + } + + private static void AssertHydraulicBoundaryLocationCalculationsWithoutIllustrationPoints(AssessmentSection assessmentSection, HydraulicBoundaryLocation hydraulicBoundaryLocation) + { + HydraulicBoundaryLocationCalculation designWaterLevelCalculation = assessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); Assert.IsFalse(designWaterLevelCalculation.InputParameters.ShouldIllustrationPointsBeCalculated); AssertHydraulicBoundaryLocationDesignWaterLevelCalculation(designWaterLevelCalculation); - designWaterLevelCalculation = hydraulicBoundaryLocation.DesignWaterLevelCalculation3; + designWaterLevelCalculation = assessmentSection.WaterLevelCalculationsForLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); Assert.IsFalse(designWaterLevelCalculation.InputParameters.ShouldIllustrationPointsBeCalculated); AssertHydraulicBoundaryLocationDesignWaterLevelCalculation(designWaterLevelCalculation); - AssertSimpleHydraulicBoundaryLocationCalculation(hydraulicBoundaryLocation.DesignWaterLevelCalculation2); - AssertSimpleHydraulicBoundaryLocationCalculation(hydraulicBoundaryLocation.DesignWaterLevelCalculation4); + AssertSimpleHydraulicBoundaryLocationCalculation(assessmentSection.WaterLevelCalculationsForSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation))); + AssertSimpleHydraulicBoundaryLocationCalculation(assessmentSection.WaterLevelCalculationsForFactorizedLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation))); - HydraulicBoundaryLocationCalculation waveHeightCalculation = hydraulicBoundaryLocation.WaveHeightCalculation1; - Assert.IsFalse(waveHeightCalculation.InputParameters.ShouldIllustrationPointsBeCalculated); + HydraulicBoundaryLocationCalculation waveHeightCalculation = assessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + Assert.IsFalse(designWaterLevelCalculation.InputParameters.ShouldIllustrationPointsBeCalculated); AssertHydraulicBoundaryLocationWaveHeightCalculation(waveHeightCalculation); - waveHeightCalculation = hydraulicBoundaryLocation.WaveHeightCalculation3; - Assert.IsFalse(waveHeightCalculation.InputParameters.ShouldIllustrationPointsBeCalculated); + waveHeightCalculation = assessmentSection.WaveHeightCalculationsForLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + Assert.IsFalse(designWaterLevelCalculation.InputParameters.ShouldIllustrationPointsBeCalculated); AssertHydraulicBoundaryLocationWaveHeightCalculation(waveHeightCalculation); - AssertSimpleHydraulicBoundaryLocationCalculation(hydraulicBoundaryLocation.WaveHeightCalculation2); - AssertSimpleHydraulicBoundaryLocationCalculation(hydraulicBoundaryLocation.WaveHeightCalculation4); + AssertSimpleHydraulicBoundaryLocationCalculation(assessmentSection.WaterLevelCalculationsForSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation))); + AssertSimpleHydraulicBoundaryLocationCalculation(assessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation))); + } - HydraulicBoundaryLocation hydraulicBoundaryLocationWithIllustrationPoints = hydraulicBoundaryDatabase.Locations[1]; - Assert.AreEqual(13002, hydraulicBoundaryLocationWithIllustrationPoints.Id); - Assert.AreEqual("test2", hydraulicBoundaryLocationWithIllustrationPoints.Name); - Assert.AreEqual(135.2, hydraulicBoundaryLocationWithIllustrationPoints.Location.X); - Assert.AreEqual(5293.8, hydraulicBoundaryLocationWithIllustrationPoints.Location.Y); - - HydraulicBoundaryLocationCalculation designWaterLevelCalculationWithIllustrationPoints = - hydraulicBoundaryLocationWithIllustrationPoints.DesignWaterLevelCalculation1; + private static void AssertHydraulicBoundaryLocationCalculationWithIllustrationPoints(AssessmentSection assessmentSection, HydraulicBoundaryLocation hydraulicBoundaryLocation) + { + HydraulicBoundaryLocationCalculation designWaterLevelCalculationWithIllustrationPoints = assessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); Assert.IsTrue(designWaterLevelCalculationWithIllustrationPoints.InputParameters.ShouldIllustrationPointsBeCalculated); AssertHydraulicBoundaryLocationDesignWaterLevelCalculation(designWaterLevelCalculationWithIllustrationPoints); AssertGeneralResultTopLevelSubMechanismIllustrationPoint(designWaterLevelCalculationWithIllustrationPoints.Output.GeneralResult); - designWaterLevelCalculationWithIllustrationPoints = - hydraulicBoundaryLocationWithIllustrationPoints.DesignWaterLevelCalculation3; + designWaterLevelCalculationWithIllustrationPoints = assessmentSection.WaterLevelCalculationsForLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); Assert.IsTrue(designWaterLevelCalculationWithIllustrationPoints.InputParameters.ShouldIllustrationPointsBeCalculated); AssertHydraulicBoundaryLocationDesignWaterLevelCalculation(designWaterLevelCalculationWithIllustrationPoints); AssertGeneralResultTopLevelSubMechanismIllustrationPoint(designWaterLevelCalculationWithIllustrationPoints.Output.GeneralResult); - AssertSimpleHydraulicBoundaryLocationCalculation(hydraulicBoundaryLocationWithIllustrationPoints.DesignWaterLevelCalculation2); - AssertSimpleHydraulicBoundaryLocationCalculation(hydraulicBoundaryLocationWithIllustrationPoints.DesignWaterLevelCalculation4); + AssertSimpleHydraulicBoundaryLocationCalculation(assessmentSection.WaterLevelCalculationsForSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation))); + AssertSimpleHydraulicBoundaryLocationCalculation(assessmentSection.WaterLevelCalculationsForFactorizedLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation))); - HydraulicBoundaryLocationCalculation waveHeightCalculationWithIllustrationPoints = - hydraulicBoundaryLocationWithIllustrationPoints.WaveHeightCalculation1; + HydraulicBoundaryLocationCalculation waveHeightCalculationWithIllustrationPoints = assessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); Assert.IsTrue(waveHeightCalculationWithIllustrationPoints.InputParameters.ShouldIllustrationPointsBeCalculated); AssertHydraulicBoundaryLocationWaveHeightCalculation(waveHeightCalculationWithIllustrationPoints); AssertGeneralResultTopLevelSubMechanismIllustrationPoint(waveHeightCalculationWithIllustrationPoints.Output.GeneralResult); - waveHeightCalculationWithIllustrationPoints = - hydraulicBoundaryLocationWithIllustrationPoints.WaveHeightCalculation3; + waveHeightCalculationWithIllustrationPoints = assessmentSection.WaveHeightCalculationsForLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); Assert.IsTrue(waveHeightCalculationWithIllustrationPoints.InputParameters.ShouldIllustrationPointsBeCalculated); AssertHydraulicBoundaryLocationWaveHeightCalculation(waveHeightCalculationWithIllustrationPoints); AssertGeneralResultTopLevelSubMechanismIllustrationPoint(waveHeightCalculationWithIllustrationPoints.Output.GeneralResult); - AssertSimpleHydraulicBoundaryLocationCalculation(hydraulicBoundaryLocationWithIllustrationPoints.WaveHeightCalculation2); - AssertSimpleHydraulicBoundaryLocationCalculation(hydraulicBoundaryLocationWithIllustrationPoints.WaveHeightCalculation4); + AssertSimpleHydraulicBoundaryLocationCalculation(assessmentSection.WaveHeightCalculationsForSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation))); + AssertSimpleHydraulicBoundaryLocationCalculation(assessmentSection.WaveHeightCalculationsForFactorizedLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation))); } private static void AssertSimpleHydraulicBoundaryLocationCalculation(HydraulicBoundaryLocationCalculation calculation) Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs =================================================================== diff -u -r341edbfd5905c218dcbaacdc77b68ca67e5424cf -r03fd8f517a5e4d8636a7eec17c1abdef75f1ffe5 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs (.../RingtoetsProjectTestHelper.cs) (revision 341edbfd5905c218dcbaacdc77b68ca67e5424cf) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs (.../RingtoetsProjectTestHelper.cs) (revision 03fd8f517a5e4d8636a7eec17c1abdef75f1ffe5) @@ -96,6 +96,8 @@ }; assessmentSection.HydraulicBoundaryDatabase.Locations.AddRange(GetHydraulicBoundaryLocations()); + assessmentSection.SetHydraulicBoundaryLocationCalculations(assessmentSection.HydraulicBoundaryDatabase.Locations); + SetHydraulicBoundaryLocationCalculations(assessmentSection); MacroStabilityInwardsFailureMechanism macroStabilityInwardsFailureMechanism = assessmentSection.MacroStabilityInwards; ConfigureMacroStabilityInwardsFailureMechanism(macroStabilityInwardsFailureMechanism, assessmentSection); @@ -326,71 +328,70 @@ private static IEnumerable GetHydraulicBoundaryLocations() { - yield return new HydraulicBoundaryLocation(13001, "test", 152.3, 2938.5) - { - DesignWaterLevelCalculation1 = - { - Output = new HydraulicBoundaryLocationOutput(12.4, double.NaN, - double.NaN, double.NaN, - double.NaN, CalculationConvergence.CalculatedConverged, null) - }, - DesignWaterLevelCalculation3 = - { - Output = new HydraulicBoundaryLocationOutput(12.4, double.NaN, - double.NaN, double.NaN, - double.NaN, CalculationConvergence.CalculatedConverged, null) - }, - WaveHeightCalculation1 = - { - Output = new HydraulicBoundaryLocationOutput(2.4, 0, 0, 0, 0, CalculationConvergence.CalculatedNotConverged, null) - }, - WaveHeightCalculation3 = - { - Output = new HydraulicBoundaryLocationOutput(2.4, 0, 0, 0, 0, CalculationConvergence.CalculatedNotConverged, null) - } - }; + yield return new HydraulicBoundaryLocation(13001, "test", 152.3, 2938.5); + yield return new HydraulicBoundaryLocation(13002, "test2", 135.2, 5293.8); + } + private static void SetHydraulicBoundaryLocationCalculations(AssessmentSection assessmentSection) + { + IEnumerable hydraulicBoundaryLocations = assessmentSection.HydraulicBoundaryDatabase.Locations; + HydraulicBoundaryLocation hydraulicLocationWithoutIllustrationPoints = hydraulicBoundaryLocations.ElementAt(0); + SetCalculationWithoutIllustrationPointOutput(assessmentSection, hydraulicLocationWithoutIllustrationPoints); + + HydraulicBoundaryLocation hydraulicLocationWithIllustrationPoints = hydraulicBoundaryLocations.ElementAt(1); + SetCalculationWithIllustrationPointOutput(assessmentSection, hydraulicLocationWithIllustrationPoints); + } + + private static void SetCalculationWithoutIllustrationPointOutput(AssessmentSection assessmentSection, HydraulicBoundaryLocation hydraulicBoundaryLocation) + { var designWaterLevelOutput = new HydraulicBoundaryLocationOutput(12.4, double.NaN, double.NaN, double.NaN, + double.NaN, CalculationConvergence.CalculatedConverged, null); + HydraulicBoundaryLocationCalculation designWaterLevelCalculation = assessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + designWaterLevelCalculation.Output = designWaterLevelOutput; + + designWaterLevelCalculation = assessmentSection.WaterLevelCalculationsForLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + designWaterLevelCalculation.Output = designWaterLevelOutput; + + var waveHeightOutput = new HydraulicBoundaryLocationOutput(2.4, 0, 0, 0, 0, CalculationConvergence.CalculatedNotConverged, null); + HydraulicBoundaryLocationCalculation waveHeightCalculation = assessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + waveHeightCalculation.Output = waveHeightOutput; + + waveHeightCalculation = assessmentSection.WaveHeightCalculationsForLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + waveHeightCalculation.Output = waveHeightOutput; + } + + private static void SetCalculationWithIllustrationPointOutput(AssessmentSection assessmentSection, HydraulicBoundaryLocation hydraulicBoundaryLocation) + { + var designWaterLevelOutput = new HydraulicBoundaryLocationOutput(12.4, double.NaN, + double.NaN, double.NaN, double.NaN, CalculationConvergence.CalculatedConverged, GetConfiguredGeneralResultTopLevelSubMechanismIllustrationPoint()); + HydraulicBoundaryLocationCalculation designWaterLevelCalculation = assessmentSection.WaterLevelCalculationsForFactorizedSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + designWaterLevelCalculation.InputParameters.ShouldIllustrationPointsBeCalculated = true; + designWaterLevelCalculation.Output = designWaterLevelOutput; + + designWaterLevelCalculation = assessmentSection.WaterLevelCalculationsForLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + designWaterLevelCalculation.InputParameters.ShouldIllustrationPointsBeCalculated = true; + designWaterLevelCalculation.Output = designWaterLevelOutput; + var waveHeightOutput = new HydraulicBoundaryLocationOutput(2.4, 0, 0, 0, 0, CalculationConvergence.CalculatedNotConverged, GetConfiguredGeneralResultTopLevelSubMechanismIllustrationPoint()); - yield return new HydraulicBoundaryLocation(13002, "test2", 135.2, 5293.8) - { - DesignWaterLevelCalculation1 = - { - InputParameters = - { - ShouldIllustrationPointsBeCalculated = true - }, - Output = designWaterLevelOutput - }, - DesignWaterLevelCalculation3 = - { - InputParameters = - { - ShouldIllustrationPointsBeCalculated = true - }, - Output = designWaterLevelOutput - }, - WaveHeightCalculation1 = - { - InputParameters = - { - ShouldIllustrationPointsBeCalculated = true - }, - Output = waveHeightOutput - }, - WaveHeightCalculation3 = - { - InputParameters = - { - ShouldIllustrationPointsBeCalculated = true - }, - Output = waveHeightOutput - } - }; + HydraulicBoundaryLocationCalculation waveHeightCalculation = assessmentSection.WaveHeightCalculationsForFactorizedSignalingNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + waveHeightCalculation.InputParameters.ShouldIllustrationPointsBeCalculated = true; + waveHeightCalculation.Output = waveHeightOutput; + + waveHeightCalculation = assessmentSection.WaveHeightCalculationsForLowerLimitNorm + .Single(calc => ReferenceEquals(calc.HydraulicBoundaryLocation, hydraulicBoundaryLocation)); + waveHeightCalculation.InputParameters.ShouldIllustrationPointsBeCalculated = true; + waveHeightCalculation.Output = waveHeightOutput; } private static GeneralResult GetConfiguredGeneralResultTopLevelSubMechanismIllustrationPoint()