Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Exporters/StabilityPointStructuresCalculationConfigurationWriter.cs
===================================================================
diff -u -r05772f7de5cf48deadb93cab09b6476af1a6e4c6 -rf5b1a2d20962607a2e063bd6e5582dfaec00002d
--- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Exporters/StabilityPointStructuresCalculationConfigurationWriter.cs (.../StabilityPointStructuresCalculationConfigurationWriter.cs) (revision 05772f7de5cf48deadb93cab09b6476af1a6e4c6)
+++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Exporters/StabilityPointStructuresCalculationConfigurationWriter.cs (.../StabilityPointStructuresCalculationConfigurationWriter.cs) (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d)
@@ -52,6 +52,18 @@
WriteElementWhenContentAvailable(writer,
StabilityPointStructuresConfigurationSchemaIdentifiers.FailureProbabilityRepairClosureElement,
configuration.FailureProbabilityRepairClosure);
+
+ WriteConfigurationInflowModelTypeWhenAvailable(writer, configuration.InflowModelType);
+
+ WriteElementWhenContentAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.LevellingCountElement,
+ configuration.LevellingCount);
+ WriteElementWhenContentAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.ProbabilityCollisionSecondaryStructureElement,
+ configuration.ProbabilityCollisionSecondaryStructure);
+ WriteElementWhenContentAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.VerticalDistanceElement,
+ configuration.VerticalDistance);
}
protected override void WriteSpecificStochasts(StabilityPointStructuresCalculationConfiguration configuration, XmlWriter writer)
@@ -74,6 +86,42 @@
WriteDistributionWhenAvailable(writer,
StabilityPointStructuresConfigurationSchemaIdentifiers.FlowVelocityStructureClosableStochastName,
configuration.FlowVelocityStructureClosable);
+ WriteDistributionWhenAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.InsideWaterLevelStochastName,
+ configuration.InsideWaterLevel);
+ WriteDistributionWhenAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.InsideWaterLevelFailureConstructionStochastName,
+ configuration.InsideWaterLevelFailureConstruction);
+ WriteDistributionWhenAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.LevelCrestStructureStochastName,
+ configuration.LevelCrestStructure);
+ WriteDistributionWhenAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.ShipMassStochastName,
+ configuration.ShipMass);
+ WriteDistributionWhenAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.ShipVelocityStochastName,
+ configuration.ShipVelocity);
+ WriteDistributionWhenAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.StabilityLinearLoadModelStochastName,
+ configuration.StabilityLinearLoadModel);
+ WriteDistributionWhenAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.StabilityQuadraticLoadModelStochastName,
+ configuration.StabilityQuadraticLoadModel);
+ WriteDistributionWhenAvailable(writer,
+ StabilityPointStructuresConfigurationSchemaIdentifiers.ThresholdHeightOpenWeirStochastName,
+ configuration.ThresholdHeightOpenWeir);
}
+
+ private static void WriteConfigurationInflowModelTypeWhenAvailable(XmlWriter writer, ConfigurationInflowModelType? configuration)
+ {
+ if (!configuration.HasValue)
+ {
+ return;
+ }
+
+ var converter = new ConfigurationInflowModelTypeConverter();
+ writer.WriteElementString(StabilityPointStructuresConfigurationSchemaIdentifiers.InflowModelTypeElement,
+ converter.ConvertToInvariantString(configuration.Value));
+ }
}
}
\ No newline at end of file
Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresCalculationConfiguration.cs
===================================================================
diff -u -r239e0091ca8c9878fc6d324b5a0b85179c45dbb7 -rf5b1a2d20962607a2e063bd6e5582dfaec00002d
--- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresCalculationConfiguration.cs (.../StabilityPointStructuresCalculationConfiguration.cs) (revision 239e0091ca8c9878fc6d324b5a0b85179c45dbb7)
+++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresCalculationConfiguration.cs (.../StabilityPointStructuresCalculationConfiguration.cs) (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d)
@@ -79,7 +79,7 @@
///
/// Gets or sets the inflow model type of the structure.
///
- public ConfigurationInflowModelType InflowModelType { get; set; }
+ public ConfigurationInflowModelType? InflowModelType { get; set; }
///
/// Gets or sets the stochast configuration for the inside water level of the structure.
Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Exporters/StabilityPointStructuresCalculationConfigurationWriterTest.cs
===================================================================
diff -u -rf53bbfd52a477ea865f97ce02525b1fe96d05a30 -rf5b1a2d20962607a2e063bd6e5582dfaec00002d
--- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Exporters/StabilityPointStructuresCalculationConfigurationWriterTest.cs (.../StabilityPointStructuresCalculationConfigurationWriterTest.cs) (revision f53bbfd52a477ea865f97ce02525b1fe96d05a30)
+++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Exporters/StabilityPointStructuresCalculationConfigurationWriterTest.cs (.../StabilityPointStructuresCalculationConfigurationWriterTest.cs) (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d)
@@ -19,7 +19,11 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
+using System.Collections.Generic;
+using System.IO;
+using Core.Common.TestUtil;
using NUnit.Framework;
+using Ringtoets.Common.IO.Configurations;
using Ringtoets.Common.IO.TestUtil;
using Ringtoets.Common.IO.Writers;
using Ringtoets.StabilityPointStructures.IO.Exporters;
@@ -32,6 +36,199 @@
StabilityPointStructuresCalculationConfigurationWriter,
StabilityPointStructuresCalculationConfiguration>
{
+ private readonly string testDataPath = TestHelper.GetTestDataPath(
+ TestDataPath.Ringtoets.StabilityPointStructures.IO,
+ nameof(StabilityPointStructuresCalculationConfigurationWriter));
+
+ private static IEnumerable Calculations
+ {
+ get
+ {
+ yield return new TestCaseData("sparseConfiguration", new[]
+ {
+ new StabilityPointStructuresCalculationConfiguration("sparse config")
+ })
+ .SetName("Calculation configuration with none of its parameters set");
+ yield return new TestCaseData("completeConfiguration", new[]
+ {
+ CreateFullCalculation()
+ })
+ .SetName("Calculation configuration with all parameters set");
+ yield return new TestCaseData("folderWithSubfolderAndCalculation", new IConfigurationItem[]
+ {
+ new CalculationGroupConfiguration("Testmap", new IConfigurationItem[]
+ {
+ CreateFullCalculation(),
+ new CalculationGroupConfiguration("Nested", new IConfigurationItem[]
+ {
+ new StabilityPointStructuresCalculationConfiguration("Berekening 2")
+ })
+ })
+ })
+ .SetName("Two nested calculation configurations");
+ }
+ }
+
+ [Test]
+ [TestCaseSource(nameof(Calculations))]
+ public void Write_ValidCalculation_ValidFile(string expectedFileName, IConfigurationItem[] configuration)
+ {
+ // Setup
+ string filePath = TestHelper.GetScratchPadPath($"{nameof(StabilityPointStructuresCalculationConfigurationWriterTest)}" +
+ $".{nameof(Write_ValidCalculation_ValidFile)}.{expectedFileName}.xml");
+
+ try
+ {
+ var writer = new StabilityPointStructuresCalculationConfigurationWriter(filePath);
+
+ // Call
+ writer.Write(configuration);
+
+ // Assert
+ Assert.IsTrue(File.Exists(filePath));
+
+ string actualXml = File.ReadAllText(filePath);
+ string expectedXmlFilePath = Path.Combine(testDataPath, $"{expectedFileName}.xml");
+ string expectedXml = File.ReadAllText(expectedXmlFilePath);
+
+ Assert.AreEqual(expectedXml, actualXml);
+ }
+ finally
+ {
+ File.Delete(filePath);
+ }
+ }
+
+ private static StabilityPointStructuresCalculationConfiguration CreateFullCalculation()
+ {
+ return new StabilityPointStructuresCalculationConfiguration("Berekening 1")
+ {
+ AllowedLevelIncreaseStorage = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.01,
+ StandardDeviation = 0.11
+ },
+ AreaFlowApertures = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.02,
+ StandardDeviation = 0.12
+ },
+ BankWidth = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.03,
+ StandardDeviation = 0.13
+ },
+ ConstructiveStrengthLinearLoadModel = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.04,
+ VariationCoefficient = 0.14
+ },
+ ConstructiveStrengthQuadraticLoadModel = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.05,
+ VariationCoefficient = 0.15
+ },
+ CriticalOvertoppingDischarge = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.06,
+ VariationCoefficient = 0.16
+ },
+ EvaluationLevel = 1.1,
+ FailureCollisionEnergy = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.07,
+ VariationCoefficient = 0.17
+ },
+ FailureProbabilityRepairClosure = 2.2,
+ FailureProbabilityStructureWithErosion = 3.3,
+ FlowVelocityStructureClosable = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.08,
+ VariationCoefficient = 0.18
+ },
+ FlowWidthAtBottomProtection = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.09,
+ StandardDeviation = 0.19
+ },
+ ForeshoreProfileName = "profiel1",
+ HydraulicBoundaryLocationName = "Locatie1",
+ InflowModelType = ConfigurationInflowModelType.FloodedCulvert,
+ InsideWaterLevel = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.1,
+ StandardDeviation = 0.20
+ },
+ InsideWaterLevelFailureConstruction = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.11,
+ StandardDeviation = 0.21
+ },
+ LevelCrestStructure = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.12,
+ StandardDeviation = 0.22
+ },
+ LevellingCount = 4,
+ ModelFactorSuperCriticalFlow = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.13,
+ StandardDeviation = 0.23
+ },
+ ProbabilityCollisionSecondaryStructure = 5.5,
+ ShipMass = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.14,
+ VariationCoefficient = 0.24
+ },
+ ShipVelocity = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.15,
+ VariationCoefficient = 0.25
+ },
+ StabilityLinearLoadModel = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.16,
+ VariationCoefficient = 0.26
+ },
+ StabilityQuadraticLoadModel = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.17,
+ VariationCoefficient = 0.27
+ },
+ StormDuration = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.18,
+ VariationCoefficient = 0.28
+ },
+ StructureName = "kunstwerk1",
+ StructureNormalOrientation = 6.6,
+ StorageStructureArea = new MeanVariationCoefficientStochastConfiguration
+ {
+ Mean = 0.19,
+ VariationCoefficient = 0.29
+ },
+ ThresholdHeightOpenWeir = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.20,
+ StandardDeviation = 0.30
+ },
+ VerticalDistance = 7.7,
+ WidthFlowApertures = new MeanStandardDeviationStochastConfiguration
+ {
+ Mean = 0.21,
+ StandardDeviation = 0.31
+ },
+ WaveReduction = new WaveReductionConfiguration
+ {
+ UseBreakWater = true,
+ BreakWaterType = ConfigurationBreakWaterType.Dam,
+ BreakWaterHeight = 8.8,
+ UseForeshoreProfile = true
+ }
+ };
+ }
+
protected override StabilityPointStructuresCalculationConfigurationWriter CreateWriterInstance(string filePath)
{
return new StabilityPointStructuresCalculationConfigurationWriter(filePath);
Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresCalculationConfigurationTest.cs
===================================================================
diff -u -r239e0091ca8c9878fc6d324b5a0b85179c45dbb7 -rf5b1a2d20962607a2e063bd6e5582dfaec00002d
--- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresCalculationConfigurationTest.cs (.../StabilityPointStructuresCalculationConfigurationTest.cs) (revision 239e0091ca8c9878fc6d324b5a0b85179c45dbb7)
+++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresCalculationConfigurationTest.cs (.../StabilityPointStructuresCalculationConfigurationTest.cs) (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d)
@@ -60,7 +60,7 @@
Assert.IsNull(configuration.FailureCollisionEnergy);
Assert.IsNull(configuration.FailureProbabilityRepairClosure);
Assert.IsNull(configuration.FlowVelocityStructureClosable);
- Assert.AreEqual((ConfigurationInflowModelType) 0, configuration.InflowModelType);
+ Assert.IsNull(configuration.InflowModelType);
Assert.IsNull(configuration.InsideWaterLevel);
Assert.IsNull(configuration.InsideWaterLevelFailureConstruction);
Assert.IsNull(configuration.LevelCrestStructure);
Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/completeConfiguration.xml
===================================================================
diff -u
--- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/completeConfiguration.xml (revision 0)
+++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/completeConfiguration.xml (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d)
@@ -0,0 +1,108 @@
+
+
+
+ Locatie1
+ kunstwerk1
+ 6.6
+ 3.3
+ profiel1
+ 1.1
+ 2.2
+ verdronkenkoker
+ 4
+ 5.5
+ 7.7
+
+ true
+ havendam
+ 8.8
+ true
+
+
+
+ 0.09
+ 0.19
+
+
+ 0.21
+ 0.31
+
+
+ 0.19
+ 0.29
+
+
+ 0.06
+ 0.16
+
+
+ 0.13
+ 0.23
+
+
+ 0.01
+ 0.11
+
+
+ 0.18
+ 0.28
+
+
+ 0.02
+ 0.12
+
+
+ 0.03
+ 0.13
+
+
+ 0.04
+ 0.14
+
+
+ 0.05
+ 0.15
+
+
+ 0.07
+ 0.17
+
+
+ 0.08
+ 0.18
+
+
+ 0.1
+ 0.2
+
+
+ 0.11
+ 0.21
+
+
+ 0.12
+ 0.22
+
+
+ 0.14
+ 0.24
+
+
+ 0.15
+ 0.25
+
+
+ 0.16
+ 0.26
+
+
+ 0.17
+ 0.27
+
+
+ 0.2
+ 0.3
+
+
+
+
\ No newline at end of file
Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml
===================================================================
diff -u
--- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml (revision 0)
+++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d)
@@ -0,0 +1,115 @@
+
+
+
+
\ No newline at end of file
Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/sparseConfiguration.xml
===================================================================
diff -u
--- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/sparseConfiguration.xml (revision 0)
+++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/sparseConfiguration.xml (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d)
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file