Index: Ringtoets/Common/src/Ringtoets.Common.IO/Writers/XmlWriterExtensions.cs
===================================================================
diff -u -r5d8bda6e12681d1c019b449b298c464921a06ed7 -rbd630045ef64f5b7e321021205aae3a4d32f4a5e
--- Ringtoets/Common/src/Ringtoets.Common.IO/Writers/XmlWriterExtensions.cs (.../XmlWriterExtensions.cs) (revision 5d8bda6e12681d1c019b449b298c464921a06ed7)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/Writers/XmlWriterExtensions.cs (.../XmlWriterExtensions.cs) (revision bd630045ef64f5b7e321021205aae3a4d32f4a5e)
@@ -29,7 +29,7 @@
public static class XmlWriterExtensions
{
///
- /// Writes a single distribution as a stochast element in file.
+ /// Writes a single as a stochast element in file.
///
/// The writer to use to write the distribution.
///
@@ -53,6 +53,14 @@
writer.WriteEndElement();
}
+ ///
+ /// Writes a single as a stochast element in file.
+ ///
+ /// The writer to use to write the distribution.
+ ///
+ /// The distribution to write.
+ /// Thrown when the is
+ /// in an invalid state for writing.
public static void WriteDistribution(this XmlWriter writer, string name, MeanVariationCoefficientStochastConfiguration distribution)
{
writer.WriteStartElement(ConfigurationSchemaIdentifiers.StochastElement);
@@ -69,5 +77,36 @@
writer.WriteEndElement();
}
+
+ ///
+ /// Writes a single as a wave reduction element in file.
+ ///
+ /// The writer to use to write the wave reduction.
+ /// The wave reduction to write.
+ /// Thrown when the is
+ /// in an invalid state for writing.
+ public static void WriteWaveReduction(this XmlWriter writer, WaveReductionConfiguration waveReduction)
+ {
+ writer.WriteStartElement(ConfigurationSchemaIdentifiers.WaveReduction);
+
+ if (waveReduction.UseBreakWater.HasValue)
+ {
+ writer.WriteElementString(ConfigurationSchemaIdentifiers.UseBreakWater, XmlConvert.ToString(waveReduction.UseBreakWater.Value));
+ }
+ if (waveReduction.BreakWaterType.HasValue)
+ {
+ writer.WriteElementString(ConfigurationSchemaIdentifiers.BreakWaterType, new ReadBreakWaterTypeConverter().ConvertToInvariantString(waveReduction.BreakWaterType.Value));
+ }
+ if (waveReduction.BreakWaterHeight.HasValue)
+ {
+ writer.WriteElementString(ConfigurationSchemaIdentifiers.BreakWaterHeight, XmlConvert.ToString(waveReduction.BreakWaterHeight.Value));
+ }
+ if (waveReduction.UseForeshoreProfile.HasValue)
+ {
+ writer.WriteElementString(ConfigurationSchemaIdentifiers.UseForeshore, XmlConvert.ToString(waveReduction.UseForeshoreProfile.Value));
+ }
+
+ writer.WriteEndElement();
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/Writers/XmlWriterExtensionsTest.cs
===================================================================
diff -u -r5d8bda6e12681d1c019b449b298c464921a06ed7 -rbd630045ef64f5b7e321021205aae3a4d32f4a5e
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/Writers/XmlWriterExtensionsTest.cs (.../XmlWriterExtensionsTest.cs) (revision 5d8bda6e12681d1c019b449b298c464921a06ed7)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/Writers/XmlWriterExtensionsTest.cs (.../XmlWriterExtensionsTest.cs) (revision bd630045ef64f5b7e321021205aae3a4d32f4a5e)
@@ -99,12 +99,71 @@
.SetName("Variation coefficient distribution with mean and variation coefficient.");
}
+ public static IEnumerable GetWaveReductions()
+ {
+ yield return new TestCaseData(
+ new WaveReductionConfiguration(),
+ "waveReductionWithoutParameters.xml")
+ .SetName("Wave reduction without any of its paramters set.");
+
+ yield return new TestCaseData(
+ new WaveReductionConfiguration
+ {
+ UseBreakWater = true,
+ BreakWaterType = ReadBreakWaterType.Dam,
+ BreakWaterHeight = 2.33,
+ UseForeshoreProfile = false
+ },
+ "waveReduction.xml")
+ .SetName("Wave reduction with all its paramters set.");
+
+ yield return new TestCaseData(
+ new WaveReductionConfiguration
+ {
+ UseBreakWater = true,
+ BreakWaterType = ReadBreakWaterType.Caisson,
+ UseForeshoreProfile = false
+ },
+ "waveReductionWithoutBreakWaterHeight.xml")
+ .SetName("Wave reduction without break water height set.");
+
+ yield return new TestCaseData(
+ new WaveReductionConfiguration
+ {
+ UseBreakWater = false,
+ BreakWaterHeight = 12.66,
+ UseForeshoreProfile = true
+ },
+ "waveReductionWithoutBreakWaterType.xml")
+ .SetName("Wave reduction without break water type set.");
+
+ yield return new TestCaseData(
+ new WaveReductionConfiguration
+ {
+ BreakWaterType = ReadBreakWaterType.Wall,
+ BreakWaterHeight = 23.4,
+ UseForeshoreProfile = false
+ },
+ "waveReductionWithoutUseBreakWater.xml")
+ .SetName("Wave reduction without use break water set.");
+
+ yield return new TestCaseData(
+ new WaveReductionConfiguration
+ {
+ UseBreakWater = true,
+ BreakWaterType = ReadBreakWaterType.Dam,
+ BreakWaterHeight = 0.2,
+ },
+ "waveReductionWithoutUseForeshoreProfile.xml")
+ .SetName("Wave reduction without use foreshore profile set.");
+ }
+
[Test]
[TestCaseSource(nameof(GetDistributions))]
- public void WriteDistribution_WithoutDifferentSetParameters_WritesStochastWithSetParameters(MeanStandardDeviationStochastConfiguration distribution, string fileName)
+ public void WriteDistribution_WithDifferentSetParameters_WritesStochastWithSetParameters(MeanStandardDeviationStochastConfiguration distribution, string fileName)
{
// Setup
- string filePath = TestHelper.GetScratchPadPath(nameof(WriteDistribution_WithoutDifferentSetParameters_WritesStochastWithSetParameters));
+ string filePath = TestHelper.GetScratchPadPath(nameof(WriteDistribution_WithDifferentSetParameters_WritesStochastWithSetParameters));
const string name = "normal";
try
@@ -128,10 +187,10 @@
[Test]
[TestCaseSource(nameof(GetVariationCoefficientDistributions))]
- public void WriteDistribution_WithoutDifferentSetParameters_WritesStochastWithSetParameters(MeanVariationCoefficientStochastConfiguration distribution, string fileName)
+ public void WriteDistribution_WithDifferentSetParameters_WritesStochastWithSetParameters(MeanVariationCoefficientStochastConfiguration distribution, string fileName)
{
// Setup
- string filePath = TestHelper.GetScratchPadPath(nameof(WriteDistribution_WithoutDifferentSetParameters_WritesStochastWithSetParameters));
+ string filePath = TestHelper.GetScratchPadPath(nameof(WriteDistribution_WithDifferentSetParameters_WritesStochastWithSetParameters));
const string name = "variation coefficient normal";
try
@@ -153,6 +212,32 @@
}
}
+ [Test]
+ [TestCaseSource(nameof(GetWaveReductions))]
+ public void WriteWaveReduction_WithoutDifferentSetParameters_WritesStochastWithSetParameters(WaveReductionConfiguration waveReduction, string fileName)
+ {
+ // Setup
+ string filePath = TestHelper.GetScratchPadPath(nameof(WriteWaveReduction_WithoutDifferentSetParameters_WritesStochastWithSetParameters));
+
+ try
+ {
+ using (XmlWriter xmlWriter = CreateXmlWriter(filePath))
+ {
+ // Call
+ xmlWriter.WriteWaveReduction(waveReduction);
+ }
+
+ // Assert
+ string actualXml = File.ReadAllText(filePath);
+ string expectedXml = GetTestFileContent(fileName);
+ Assert.AreEqual(expectedXml, actualXml);
+ }
+ finally
+ {
+ File.Delete(filePath);
+ }
+ }
+
private string GetTestFileContent(string testFile)
{
return File.ReadAllText(Path.Combine(testDirectory, testFile));
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReduction.xml
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReduction.xml (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReduction.xml (revision bd630045ef64f5b7e321021205aae3a4d32f4a5e)
@@ -0,0 +1,6 @@
+
+ true
+ havendam
+ 2.33
+ false
+
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutBreakWaterHeight.xml
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutBreakWaterHeight.xml (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutBreakWaterHeight.xml (revision bd630045ef64f5b7e321021205aae3a4d32f4a5e)
@@ -0,0 +1,5 @@
+
+ true
+ caisson
+ false
+
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutBreakWaterType.xml
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutBreakWaterType.xml (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutBreakWaterType.xml (revision bd630045ef64f5b7e321021205aae3a4d32f4a5e)
@@ -0,0 +1,5 @@
+
+ false
+ 12.66
+ true
+
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutParameters.xml
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutParameters.xml (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutParameters.xml (revision bd630045ef64f5b7e321021205aae3a4d32f4a5e)
@@ -0,0 +1 @@
+
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutUseBreakWater.xml
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutUseBreakWater.xml (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutUseBreakWater.xml (revision bd630045ef64f5b7e321021205aae3a4d32f4a5e)
@@ -0,0 +1,5 @@
+
+ verticalewand
+ 23.4
+ false
+
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutUseForeshoreProfile.xml
===================================================================
diff -u
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutUseForeshoreProfile.xml (revision 0)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/CalculationConfigurationWriter/waveReductionWithoutUseForeshoreProfile.xml (revision bd630045ef64f5b7e321021205aae3a4d32f4a5e)
@@ -0,0 +1,5 @@
+
+ true
+ havendam
+ 0.2
+
\ No newline at end of file