Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfiguration.cs
===================================================================
diff -u -rb1fd20384e0835b604bb68d94e16e8ead46ed93e -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfiguration.cs (.../GrassCoverErosionInwardsCalculationConfiguration.cs) (revision b1fd20384e0835b604bb68d94e16e8ead46ed93e)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfiguration.cs (.../GrassCoverErosionInwardsCalculationConfiguration.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -52,7 +52,7 @@
///
/// Gets the Id of the dike profile of the read grass cover erosion inwards calculation.
///
- public string DikeProfileId { get; set; }
+ public string DikeProfile { get; set; }
///
/// Gets the orientation of the grass cover erosion inwards calculation.
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporter.cs
===================================================================
diff -u -r237b9031d74382e26141395ff845d5e43f44981d -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationExporter.cs) (revision 237b9031d74382e26141395ff845d5e43f44981d)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationExporter.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -22,16 +22,23 @@
using System;
using System.Collections.Generic;
using Ringtoets.Common.Data.Calculation;
+using Ringtoets.Common.Data.DikeProfiles;
+using Ringtoets.Common.IO.Configurations;
using Ringtoets.Common.IO.Configurations.Export;
+using Ringtoets.Common.IO.Configurations.Helpers;
using Ringtoets.GrassCoverErosionInwards.Data;
+using Ringtoets.GrassCoverErosionInwards.IO.Configurations.Helpers;
namespace Ringtoets.GrassCoverErosionInwards.IO.Configurations
{
///
/// Exports a grass cover erosion inwards calculation configuration and stores it as an XML file.
///
public class GrassCoverErosionInwardsCalculationConfigurationExporter
- : CalculationConfigurationExporter
+ : SchemaCalculationConfigurationExporter<
+ GrassCoverErosionInwardsCalculationConfigurationWriter,
+ GrassCoverErosionInwardsCalculation,
+ GrassCoverErosionInwardsCalculationConfiguration>
{
///
/// Creates a new instance of .
@@ -42,5 +49,53 @@
/// Thrown when is invalid.
public GrassCoverErosionInwardsCalculationConfigurationExporter(IEnumerable configuration, string filePath)
: base(configuration, filePath) {}
+
+ protected override GrassCoverErosionInwardsCalculationConfigurationWriter CreateWriter(string filePath)
+ {
+ return new GrassCoverErosionInwardsCalculationConfigurationWriter(filePath);
+ }
+
+ protected override GrassCoverErosionInwardsCalculationConfiguration ToConfiguration(GrassCoverErosionInwardsCalculation calculation)
+ {
+ GrassCoverErosionInwardsInput input = calculation.InputParameters;
+ var configuration = new GrassCoverErosionInwardsCalculationConfiguration(calculation.Name);
+
+ configuration.HydraulicBoundaryLocation = input.HydraulicBoundaryLocation?.Name;
+
+ if (input.DikeProfile != null)
+ {
+ configuration.DikeProfile = input.DikeProfile.Id;
+ configuration.DikeHeight = input.DikeHeight;
+ configuration.Orientation = input.Orientation;
+
+ configuration.WaveReduction = new WaveReductionConfiguration
+ {
+ UseForeshoreProfile = input.UseForeshore,
+ UseBreakWater = input.UseBreakWater,
+ BreakWaterHeight = input.BreakWater.Height
+ };
+
+ if (Enum.IsDefined(typeof(BreakWaterType), input.BreakWater.Type))
+ {
+ configuration.WaveReduction.BreakWaterType = (ConfigurationBreakWaterType?)
+ new ConfigurationBreakWaterTypeConverter().ConvertFrom(input.BreakWater.Type);
+ }
+ }
+
+ if (Enum.IsDefined(typeof(DikeHeightCalculationType), input.DikeHeightCalculationType))
+ {
+ configuration.DikeHeightCalculationType = (ConfigurationHydraulicLoadsCalculationType?)
+ new ConfigurationHydraulicLoadsCalculationTypeConverter().ConvertFrom(input.DikeHeightCalculationType);
+ }
+ if (Enum.IsDefined(typeof(OvertoppingRateCalculationType), input.OvertoppingRateCalculationType))
+ {
+ configuration.OvertoppingRateCalculationType = (ConfigurationHydraulicLoadsCalculationType?)
+ new ConfigurationHydraulicLoadsCalculationTypeConverter().ConvertFrom(input.OvertoppingRateCalculationType);
+ }
+
+ configuration.CriticalFlowRate = input.CriticalFlowRate.ToStochastConfiguration();
+
+ return configuration;
+ }
}
}
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationImporter.cs
===================================================================
diff -u -rb1fd20384e0835b604bb68d94e16e8ead46ed93e -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationImporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationImporter.cs) (revision b1fd20384e0835b604bb68d94e16e8ead46ed93e)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationImporter.cs (.../GrassCoverErosionInwardsCalculationConfigurationImporter.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -105,7 +105,7 @@
if (TryReadCriticalWaveReduction(calculationConfiguration, calculation)
&& TryReadHydraulicBoundaryLocation(calculationConfiguration.HydraulicBoundaryLocation, calculation)
- && TryReadDikeProfile(calculationConfiguration.DikeProfileId, calculation)
+ && TryReadDikeProfile(calculationConfiguration.DikeProfile, calculation)
&& TryReadOrientation(calculationConfiguration, calculation)
&& TryReadDikeHeight(calculationConfiguration, calculation)
&& ValidateWaveReduction(calculationConfiguration, calculation))
@@ -286,7 +286,7 @@
{
Log.LogCalculationConversionError(string.Format(
Resources.GrassCoverErosionInwardsCalculationConfigurationImporter_ValidateWaveReduction_DikeProfile_0_has_no_geometry_and_cannot_be_used,
- calculationConfiguration.DikeProfileId),
+ calculationConfiguration.DikeProfile),
calculation.Name);
return false;
}
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationReader.cs
===================================================================
diff -u -rb1fd20384e0835b604bb68d94e16e8ead46ed93e -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationReader.cs (.../GrassCoverErosionInwardsCalculationConfigurationReader.cs) (revision b1fd20384e0835b604bb68d94e16e8ead46ed93e)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationReader.cs (.../GrassCoverErosionInwardsCalculationConfigurationReader.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -85,7 +85,7 @@
var configuration = new GrassCoverErosionInwardsCalculationConfiguration(calculationElement.Attribute(ConfigurationSchemaIdentifiers.NameAttribute).Value)
{
HydraulicBoundaryLocation = calculationElement.GetStringValueFromDescendantElement(ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement),
- DikeProfileId = calculationElement.GetStringValueFromDescendantElement(GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.DikeProfileElement),
+ DikeProfile = calculationElement.GetStringValueFromDescendantElement(GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.DikeProfileElement),
Orientation = calculationElement.GetDoubleValueFromDescendantElement(ConfigurationSchemaIdentifiers.Orientation),
DikeHeight = calculationElement.GetDoubleValueFromDescendantElement(GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.DikeHeightElement),
DikeHeightCalculationType = (ConfigurationHydraulicLoadsCalculationType?) calculationElement.GetConvertedValueFromDescendantStringElement(
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationWriter.cs
===================================================================
diff -u -r8336ede0837d35257e8b85c3b0090b0774342d90 -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationWriter.cs (.../GrassCoverErosionInwardsCalculationConfigurationWriter.cs) (revision 8336ede0837d35257e8b85c3b0090b0774342d90)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/GrassCoverErosionInwardsCalculationConfigurationWriter.cs (.../GrassCoverErosionInwardsCalculationConfigurationWriter.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -19,135 +19,93 @@
// Stichting Deltares and remain full property of Stichting Deltares at all times.
// All rights reserved.
-using System.Collections.Generic;
+using System;
using System.Xml;
-using Ringtoets.Common.Data.Probabilistics;
using Ringtoets.Common.IO.Configurations;
using Ringtoets.Common.IO.Configurations.Export;
-using Ringtoets.GrassCoverErosionInwards.Data;
using Ringtoets.GrassCoverErosionInwards.IO.Configurations.Helpers;
namespace Ringtoets.GrassCoverErosionInwards.IO.Configurations
{
///
/// Writer for writing a grass cover erosion inwards calculation configuration to XML.
///
- public class GrassCoverErosionInwardsCalculationConfigurationWriter : CalculationConfigurationWriter
+ public class GrassCoverErosionInwardsCalculationConfigurationWriter : SchemaCalculationConfigurationWriter
{
- protected override void WriteCalculation(GrassCoverErosionInwardsCalculation calculation, XmlWriter writer)
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The path of the file to write to.
+ /// Thrown when is invalid.
+ /// A valid path:
+ ///
+ /// - is not empty or null,
+ /// - does not consist out of only whitespace characters,
+ /// - does not contain an invalid character,
+ /// - does not end with a directory or path separator (empty file name).
+ ///
+ public GrassCoverErosionInwardsCalculationConfigurationWriter(string filePath) : base(filePath) {}
+
+ protected override void WriteCalculation(GrassCoverErosionInwardsCalculationConfiguration configuration, XmlWriter writer)
{
writer.WriteStartElement(ConfigurationSchemaIdentifiers.CalculationElement);
- writer.WriteAttributeString(ConfigurationSchemaIdentifiers.NameAttribute, calculation.Name);
+ writer.WriteAttributeString(ConfigurationSchemaIdentifiers.NameAttribute, configuration.Name);
- GrassCoverErosionInwardsInput input = calculation.InputParameters;
+ WriteElementWhenContentAvailable(
+ writer,
+ ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement,
+ configuration.HydraulicBoundaryLocation);
- WriteHydraulicBoundaryLocation(input, writer);
+ WriteElementWhenContentAvailable(
+ writer,
+ GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.DikeProfileElement,
+ configuration.DikeProfile);
+ WriteElementWhenContentAvailable(
+ writer,
+ ConfigurationSchemaIdentifiers.Orientation,
+ configuration.Orientation);
+ WriteElementWhenContentAvailable(
+ writer,
+ GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.DikeHeightElement,
+ configuration.DikeHeight);
- WriteDikeProfileId(input, writer);
-
- WriteOrientation(input, writer);
-
- WriteDikeHeight(input, writer);
-
- writer.WriteElementString(
+ WriteConfigurationLoadSchematizationTypeWhenAvailable(
+ writer,
GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.DikeHeightCalculationTypeElement,
- HydraulicLoadsCalculationTypeAsXmlString((ConfigurationHydraulicLoadsCalculationType) input.DikeHeightCalculationType));
+ configuration.DikeHeightCalculationType);
- writer.WriteElementString(
+ WriteConfigurationLoadSchematizationTypeWhenAvailable(
+ writer,
GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.OvertoppingRateCalculationTypeElement,
- HydraulicLoadsCalculationTypeAsXmlString((ConfigurationHydraulicLoadsCalculationType) input.OvertoppingRateCalculationType));
+ configuration.OvertoppingRateCalculationType);
- WriteWaveReduction(input, writer);
+ WriteWaveReductionWhenAvailable(writer, configuration.WaveReduction);
- WriteDistributions(CreateInputDistributions(input), writer);
+ writer.WriteStartElement(ConfigurationSchemaIdentifiers.StochastsElement);
+ WriteDistributionWhenAvailable(
+ writer,
+ GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.CriticalFlowRateStochastName,
+ configuration.CriticalFlowRate);
+
writer.WriteEndElement();
- }
- private static void WriteHydraulicBoundaryLocation(GrassCoverErosionInwardsInput input, XmlWriter writer)
- {
- if (input.HydraulicBoundaryLocation == null)
- {
- return;
- }
-
- writer.WriteElementString(
- ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement,
- input.HydraulicBoundaryLocation.Name);
+ writer.WriteEndElement();
}
- private static void WriteDikeProfileId(GrassCoverErosionInwardsInput input, XmlWriter writer)
+ private static void WriteConfigurationLoadSchematizationTypeWhenAvailable(
+ XmlWriter writer,
+ string elementName,
+ ConfigurationHydraulicLoadsCalculationType? configuration)
{
- if (input.DikeProfile == null)
+ if (!configuration.HasValue)
{
return;
}
- writer.WriteElementString(
- GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.DikeProfileElement,
- input.DikeProfile.Id);
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+ writer.WriteElementString(elementName,
+ converter.ConvertToInvariantString(configuration.Value));
}
-
- private static void WriteOrientation(GrassCoverErosionInwardsInput input, XmlWriter writer)
- {
- if (input.DikeProfile == null)
- {
- return;
- }
-
- writer.WriteElementString(
- ConfigurationSchemaIdentifiers.Orientation,
- XmlConvert.ToString(input.Orientation));
- }
-
- private static void WriteDikeHeight(GrassCoverErosionInwardsInput input, XmlWriter writer)
- {
- if (input.DikeProfile == null)
- {
- return;
- }
-
- writer.WriteElementString(
- GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.DikeHeightElement,
- XmlConvert.ToString(input.DikeHeight));
- }
-
- private static string HydraulicLoadsCalculationTypeAsXmlString(ConfigurationHydraulicLoadsCalculationType type)
- {
- return new ConfigurationHydraulicLoadsCalculationTypeConverter().ConvertToInvariantString(type);
- }
-
- private static void WriteWaveReduction(GrassCoverErosionInwardsInput input, XmlWriter writer)
- {
- if (input.DikeProfile == null)
- {
- return;
- }
-
- writer.WriteStartElement(ConfigurationSchemaIdentifiers.WaveReduction);
-
- writer.WriteElementString(
- ConfigurationSchemaIdentifiers.UseBreakWater,
- XmlConvert.ToString(input.UseBreakWater));
-
- WriteBreakWaterProperties(input.BreakWater, writer);
-
- writer.WriteElementString(
- ConfigurationSchemaIdentifiers.UseForeshore,
- XmlConvert.ToString(input.UseForeshore));
-
- writer.WriteEndElement();
- }
-
- private static IDictionary CreateInputDistributions(GrassCoverErosionInwardsInput calculationInputParameters)
- {
- return new Dictionary
- {
- {
- GrassCoverErosionInwardsCalculationConfigurationSchemaIdentifiers.CriticalFlowRateStochastName,
- calculationInputParameters.CriticalFlowRate
- }
- };
- }
}
}
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/Helpers/ConfigurationHydraulicLoadsCalculationTypeConverter.cs
===================================================================
diff -u -r8336ede0837d35257e8b85c3b0090b0774342d90 -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/Helpers/ConfigurationHydraulicLoadsCalculationTypeConverter.cs (.../ConfigurationHydraulicLoadsCalculationTypeConverter.cs) (revision 8336ede0837d35257e8b85c3b0090b0774342d90)
+++ Ringtoets/GrassCoverErosionInwards/src/Ringtoets.GrassCoverErosionInwards.IO/Configurations/Helpers/ConfigurationHydraulicLoadsCalculationTypeConverter.cs (.../ConfigurationHydraulicLoadsCalculationTypeConverter.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -22,6 +22,7 @@
using System;
using System.ComponentModel;
using System.Globalization;
+using Ringtoets.GrassCoverErosionInwards.Data;
using Ringtoets.GrassCoverErosionInwards.IO.Properties;
namespace Ringtoets.GrassCoverErosionInwards.IO.Configurations.Helpers
@@ -31,11 +32,47 @@
///
public class ConfigurationHydraulicLoadsCalculationTypeConverter : TypeConverter
{
+ public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
+ {
+ return destinationType == typeof(DikeHeightCalculationType)
+ || destinationType == typeof(OvertoppingRateCalculationType)
+ || base.CanConvertTo(context, destinationType);
+ }
+
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
+ var readHydraulicLoadsCalculationType = (ConfigurationHydraulicLoadsCalculationType) value;
+
+ if (destinationType == typeof(DikeHeightCalculationType))
+ {
+ switch (readHydraulicLoadsCalculationType)
+ {
+ case ConfigurationHydraulicLoadsCalculationType.NoCalculation:
+ return DikeHeightCalculationType.NoCalculation;
+ case ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm:
+ return DikeHeightCalculationType.CalculateByAssessmentSectionNorm;
+ case ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability:
+ return DikeHeightCalculationType.CalculateByProfileSpecificRequiredProbability;
+ default:
+ throw new NotSupportedException();
+ }
+ }
+ if (destinationType == typeof(OvertoppingRateCalculationType))
+ {
+ switch (readHydraulicLoadsCalculationType)
+ {
+ case ConfigurationHydraulicLoadsCalculationType.NoCalculation:
+ return OvertoppingRateCalculationType.NoCalculation;
+ case ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm:
+ return OvertoppingRateCalculationType.CalculateByAssessmentSectionNorm;
+ case ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability:
+ return OvertoppingRateCalculationType.CalculateByProfileSpecificRequiredProbability;
+ default:
+ throw new NotSupportedException();
+ }
+ }
if (destinationType == typeof(string))
{
- var readHydraulicLoadsCalculationType = (ConfigurationHydraulicLoadsCalculationType) value;
switch (readHydraulicLoadsCalculationType)
{
case ConfigurationHydraulicLoadsCalculationType.NoCalculation:
@@ -53,15 +90,42 @@
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
- if (sourceType == typeof(string))
- {
- return true;
- }
- return base.CanConvertFrom(context, sourceType);
+ return sourceType == typeof(string)
+ || sourceType == typeof(DikeHeightCalculationType)
+ || sourceType == typeof(OvertoppingRateCalculationType)
+ || base.CanConvertFrom(context, sourceType);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
+ if (value is DikeHeightCalculationType)
+ {
+ switch ((DikeHeightCalculationType) value)
+ {
+ case DikeHeightCalculationType.NoCalculation:
+ return ConfigurationHydraulicLoadsCalculationType.NoCalculation;
+ case DikeHeightCalculationType.CalculateByAssessmentSectionNorm:
+ return ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm;
+ case DikeHeightCalculationType.CalculateByProfileSpecificRequiredProbability:
+ return ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability;
+ default:
+ throw new NotSupportedException();
+ }
+ }
+ if (value is OvertoppingRateCalculationType)
+ {
+ switch ((OvertoppingRateCalculationType) value)
+ {
+ case OvertoppingRateCalculationType.NoCalculation:
+ return ConfigurationHydraulicLoadsCalculationType.NoCalculation;
+ case OvertoppingRateCalculationType.CalculateByAssessmentSectionNorm:
+ return ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm;
+ case OvertoppingRateCalculationType.CalculateByProfileSpecificRequiredProbability:
+ return ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability;
+ default:
+ throw new NotSupportedException();
+ }
+ }
var text = value as string;
if (text != null)
{
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporterTest.cs
===================================================================
diff -u -r237b9031d74382e26141395ff845d5e43f44981d -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporterTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationExporterTest.cs) (revision 237b9031d74382e26141395ff845d5e43f44981d)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationExporterTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationExporterTest.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -19,6 +19,7 @@
// 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;
@@ -31,10 +32,11 @@
{
[TestFixture]
public class GrassCoverErosionInwardsCalculationConfigurationExporterTest
- : CustomCalculationConfigurationExporterDesignGuidelinesTestFixture<
+ : CustomSchemaCalculationConfigurationExporterDesignGuidelinesTestFixture<
GrassCoverErosionInwardsCalculationConfigurationExporter,
GrassCoverErosionInwardsCalculationConfigurationWriter,
- GrassCoverErosionInwardsCalculation>
+ GrassCoverErosionInwardsCalculation,
+ GrassCoverErosionInwardsCalculationConfiguration>
{
[Test]
public void Export_ValidData_ReturnTrueAndWritesFile()
@@ -81,5 +83,10 @@
{
return new GrassCoverErosionInwardsCalculation();
}
+
+ protected override GrassCoverErosionInwardsCalculationConfigurationExporter CallConfigurationFilePathConstructor(IEnumerable calculations, string filePath)
+ {
+ return new GrassCoverErosionInwardsCalculationConfigurationExporter(calculations, filePath);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationReaderTest.cs
===================================================================
diff -u -rb1fd20384e0835b604bb68d94e16e8ead46ed93e -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationReaderTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationReaderTest.cs) (revision b1fd20384e0835b604bb68d94e16e8ead46ed93e)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationReaderTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationReaderTest.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -218,7 +218,7 @@
Assert.IsNotNull(calculation);
Assert.AreEqual("Calculation", calculation.Name);
Assert.IsNull(calculation.HydraulicBoundaryLocation);
- Assert.IsNull(calculation.DikeProfileId);
+ Assert.IsNull(calculation.DikeProfile);
Assert.IsNull(calculation.Orientation);
Assert.IsNull(calculation.DikeHeight);
Assert.IsNull(calculation.DikeHeightCalculationType);
@@ -317,7 +317,7 @@
Assert.IsNotNull(calculation);
Assert.AreEqual("Berekening 1", calculation.Name);
Assert.AreEqual("Some_hydraulic_boundary_location", calculation.HydraulicBoundaryLocation);
- Assert.AreEqual("some_dike_profile", calculation.DikeProfileId);
+ Assert.AreEqual("some_dike_profile", calculation.DikeProfile);
Assert.AreEqual(67.1, calculation.Orientation);
Assert.AreEqual(3.45, calculation.DikeHeight);
Assert.AreEqual(ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm, calculation.DikeHeightCalculationType);
@@ -347,7 +347,7 @@
Assert.IsNotNull(calculation);
Assert.AreEqual("Partial calculation 2", calculation.Name);
Assert.IsNull(calculation.HydraulicBoundaryLocation);
- Assert.AreEqual("id_of_dikeprofile", calculation.DikeProfileId);
+ Assert.AreEqual("id_of_dikeprofile", calculation.DikeProfile);
Assert.IsNull(calculation.Orientation);
Assert.AreEqual(-1.2, calculation.DikeHeight);
Assert.IsNull(calculation.DikeHeightCalculationType);
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationTest.cs
===================================================================
diff -u -rb1fd20384e0835b604bb68d94e16e8ead46ed93e -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationTest.cs) (revision b1fd20384e0835b604bb68d94e16e8ead46ed93e)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationTest.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -52,7 +52,7 @@
Assert.IsInstanceOf(readCalculation);
Assert.AreEqual(name, readCalculation.Name);
Assert.IsNull(readCalculation.HydraulicBoundaryLocation);
- Assert.IsNull(readCalculation.DikeProfileId);
+ Assert.IsNull(readCalculation.DikeProfile);
Assert.IsNull(readCalculation.Orientation);
Assert.IsNull(readCalculation.DikeHeight);
Assert.IsNull(readCalculation.DikeHeightCalculationType);
@@ -84,7 +84,7 @@
{
Name = calculationName,
HydraulicBoundaryLocation = hydraulicBoundaryLocationName,
- DikeProfileId = dikeProfileId,
+ DikeProfile = dikeProfileId,
Orientation = orientation,
DikeHeight = dikeHeight,
DikeHeightCalculationType = dikeHeightCalculationType,
@@ -106,7 +106,7 @@
// Assert
Assert.AreEqual(calculationName, readCalculation.Name);
Assert.AreEqual(hydraulicBoundaryLocationName, readCalculation.HydraulicBoundaryLocation);
- Assert.AreEqual(dikeProfileId, readCalculation.DikeProfileId);
+ Assert.AreEqual(dikeProfileId, readCalculation.DikeProfile);
Assert.AreEqual(orientation, readCalculation.Orientation);
Assert.AreEqual(dikeHeight, readCalculation.DikeHeight);
Assert.AreEqual(dikeHeightCalculationType, readCalculation.DikeHeightCalculationType);
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationWriterTest.cs
===================================================================
diff -u -r237b9031d74382e26141395ff845d5e43f44981d -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationWriterTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationWriterTest.cs) (revision 237b9031d74382e26141395ff845d5e43f44981d)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/GrassCoverErosionInwardsCalculationConfigurationWriterTest.cs (.../GrassCoverErosionInwardsCalculationConfigurationWriterTest.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -20,49 +20,42 @@
// All rights reserved.
using System.IO;
-using Core.Common.Base.Data;
using Core.Common.TestUtil;
using NUnit.Framework;
-using Ringtoets.Common.Data.Calculation;
-using Ringtoets.Common.Data.DikeProfiles;
-using Ringtoets.Common.Data.TestUtil;
+using Ringtoets.Common.IO.Configurations;
using Ringtoets.Common.IO.TestUtil;
-using Ringtoets.GrassCoverErosionInwards.Data;
using Ringtoets.GrassCoverErosionInwards.IO.Configurations;
namespace Ringtoets.GrassCoverErosionInwards.IO.Test.Configurations
{
[TestFixture]
public class GrassCoverErosionInwardsCalculationConfigurationWriterTest
- : CustomCalculationConfigurationWriterDesignGuidelinesTestFixture<
+ : CustomSchemaCalculationConfigurationWriterDesignGuidelinesTestFixture<
GrassCoverErosionInwardsCalculationConfigurationWriter,
- GrassCoverErosionInwardsCalculation>
+ GrassCoverErosionInwardsCalculationConfiguration>
{
[Test]
- public void WriteConfiguration_SparseCalculation_WritesSparseConfigurationToFile()
+ public void WriteConfiguration_SparseConfiguration_WritesSparseConfigurationToFile()
{
// Setup
string filePath = TestHelper.GetScratchPadPath(
- $"{nameof(WriteConfiguration_SparseCalculation_WritesSparseConfigurationToFile)}.xml");
+ $"{nameof(WriteConfiguration_SparseConfiguration_WritesSparseConfigurationToFile)}.xml");
string expectedXmlFilePath = TestHelper.GetTestDataPath(
TestDataPath.Ringtoets.GrassCoverErosionInwards.IO,
Path.Combine(nameof(GrassCoverErosionInwardsCalculationConfigurationWriter), "sparseConfiguration.xml"));
- var calculation = new GrassCoverErosionInwardsCalculation
- {
- Name = "Berekening 1"
- };
+ var calculation = new GrassCoverErosionInwardsCalculationConfiguration("Berekening 1");
try
{
- var writer = new GrassCoverErosionInwardsCalculationConfigurationWriter();
+ var writer = new GrassCoverErosionInwardsCalculationConfigurationWriter(filePath);
// Call
writer.Write(new[]
{
calculation
- }, filePath);
+ });
// Assert
string actualXml = File.ReadAllText(filePath);
@@ -77,27 +70,27 @@
}
[Test]
- public void WriteConfiguration_CompleteCalculation_WritesCompleteConfigurationToFile()
+ public void WriteConfiguration_CompleteConfiguration_WritesCompleteConfigurationToFile()
{
// Setup
string filePath = TestHelper.GetScratchPadPath(
- $"{nameof(WriteConfiguration_CompleteCalculation_WritesCompleteConfigurationToFile)}.xml");
+ $"{nameof(WriteConfiguration_CompleteConfiguration_WritesCompleteConfigurationToFile)}.xml");
string expectedXmlFilePath = TestHelper.GetTestDataPath(
TestDataPath.Ringtoets.GrassCoverErosionInwards.IO,
Path.Combine(nameof(GrassCoverErosionInwardsCalculationConfigurationWriter), "completeConfiguration.xml"));
- GrassCoverErosionInwardsCalculation calculation = CreateCompleteCalculation();
+ GrassCoverErosionInwardsCalculationConfiguration calculation = CreateCompleteCalculation();
try
{
- var writer = new GrassCoverErosionInwardsCalculationConfigurationWriter();
+ var writer = new GrassCoverErosionInwardsCalculationConfigurationWriter(filePath);
// Call
writer.Write(new[]
{
calculation
- }, filePath);
+ });
// Assert
string actualXml = File.ReadAllText(filePath);
@@ -117,35 +110,28 @@
// Setup
string filePath = TestHelper.GetScratchPadPath("test.xml");
- GrassCoverErosionInwardsCalculation calculation = CreateCompleteCalculation();
- var calculation2 = new GrassCoverErosionInwardsCalculation
+ GrassCoverErosionInwardsCalculationConfiguration calculation = CreateCompleteCalculation();
+ var calculation2 = new GrassCoverErosionInwardsCalculationConfiguration("Berekening 2");
+ var calculationGroup2 = new CalculationGroupConfiguration("Nested", new IConfigurationItem[]
{
- Name = "Berekening 2"
- };
- var calculationGroup2 = new CalculationGroup("Nested", false)
- {
- Children =
- {
- calculation2
- }
- };
+ calculation2
+ });
- var calculationGroup = new CalculationGroup("Testmap", false)
+ var calculationGroup = new CalculationGroupConfiguration("Testmap", new IConfigurationItem[]
{
- Children =
- {
- calculation,
- calculationGroup2
- }
- };
+ calculation,
+ calculationGroup2
+ });
try
{
+ var writer = new GrassCoverErosionInwardsCalculationConfigurationWriter(filePath);
+
// Call
- new GrassCoverErosionInwardsCalculationConfigurationWriter().Write(new[]
+ writer.Write(new[]
{
calculationGroup
- }, filePath);
+ });
// Assert
Assert.IsTrue(File.Exists(filePath));
@@ -164,30 +150,34 @@
}
}
- private static GrassCoverErosionInwardsCalculation CreateCompleteCalculation()
+ private static GrassCoverErosionInwardsCalculationConfiguration CreateCompleteCalculation()
{
- return new GrassCoverErosionInwardsCalculation
+ return new GrassCoverErosionInwardsCalculationConfiguration("Berekening 1")
{
- Name = "Berekening 1",
- InputParameters =
+ HydraulicBoundaryLocation = "Locatie1",
+ DikeProfile = "id",
+ Orientation = 67.1,
+ DikeHeightCalculationType = ConfigurationHydraulicLoadsCalculationType.NoCalculation,
+ OvertoppingRateCalculationType = ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm,
+ DikeHeight = 0,
+ WaveReduction = new WaveReductionConfiguration
{
- HydraulicBoundaryLocation = new TestHydraulicBoundaryLocation("Locatie1"),
- DikeProfile = new TestDikeProfile("dijkProfiel", "id"),
- Orientation = (RoundedDouble) 67.1,
- UseForeshore = true,
+ UseForeshoreProfile = true,
UseBreakWater = true,
- BreakWater =
- {
- Height = (RoundedDouble) 1.23,
- Type = BreakWaterType.Caisson
- },
- CriticalFlowRate =
- {
- Mean = (RoundedDouble) 0.1,
- StandardDeviation = (RoundedDouble) 0.1
- }
+ BreakWaterHeight = 1.23,
+ BreakWaterType = ConfigurationBreakWaterType.Caisson
+ },
+ CriticalFlowRate = new StochastConfiguration
+ {
+ Mean = 0.1,
+ StandardDeviation = 0.1
}
};
}
+
+ protected override GrassCoverErosionInwardsCalculationConfigurationWriter CreateWriterInstance(string filePath)
+ {
+ return new GrassCoverErosionInwardsCalculationConfigurationWriter(filePath);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/Helpers/ConfigurationHydraulicLoadsCalculationTypeConverterTest.cs
===================================================================
diff -u -r8336ede0837d35257e8b85c3b0090b0774342d90 -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/Helpers/ConfigurationHydraulicLoadsCalculationTypeConverterTest.cs (.../ConfigurationHydraulicLoadsCalculationTypeConverterTest.cs) (revision 8336ede0837d35257e8b85c3b0090b0774342d90)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/Configurations/Helpers/ConfigurationHydraulicLoadsCalculationTypeConverterTest.cs (.../ConfigurationHydraulicLoadsCalculationTypeConverterTest.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -22,6 +22,7 @@
using System;
using System.ComponentModel;
using NUnit.Framework;
+using Ringtoets.GrassCoverErosionInwards.Data;
using Ringtoets.GrassCoverErosionInwards.IO.Configurations;
using Ringtoets.GrassCoverErosionInwards.IO.Configurations.Helpers;
@@ -54,12 +55,38 @@
}
[Test]
- public void CanConvertTo_NotString_ReturnFalse()
+ public void CanConvertTo_DikeHeightCalculationType_ReturnTrue()
{
// Setup
var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
// Call
+ bool canConvertToString = converter.CanConvertTo(typeof(DikeHeightCalculationType));
+
+ // Assert
+ Assert.IsTrue(canConvertToString);
+ }
+
+ [Test]
+ public void CanConvertTo_OvertoppingRateCalculationType_ReturnTrue()
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
+ // Call
+ bool canConvertToString = converter.CanConvertTo(typeof(OvertoppingRateCalculationType));
+
+ // Assert
+ Assert.IsTrue(canConvertToString);
+ }
+
+ [Test]
+ public void CanConvertTo_OtherType_ReturnFalse()
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
+ // Call
bool canConvert = converter.CanConvertTo(typeof(object));
// Assert
@@ -70,7 +97,7 @@
[TestCase(ConfigurationHydraulicLoadsCalculationType.NoCalculation, "niet")]
[TestCase(ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm, "norm")]
[TestCase(ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability, "doorsnede")]
- public void ConvertTo_VariousCases_ReturnExpectedValues(ConfigurationHydraulicLoadsCalculationType value, string expectedResult)
+ public void ConvertTo_StringVariousCases_ReturnExpectedValues(ConfigurationHydraulicLoadsCalculationType value, string expectedResult)
{
// Setup
var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
@@ -83,15 +110,64 @@
}
[Test]
- public void ConvertTo_InvalidReadHydraulicLoadsCalculationTypeValue_ThrowNotSupportedException()
+ [TestCase(
+ ConfigurationHydraulicLoadsCalculationType.NoCalculation,
+ DikeHeightCalculationType.NoCalculation)]
+ [TestCase(
+ ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm,
+ DikeHeightCalculationType.CalculateByAssessmentSectionNorm)]
+ [TestCase(
+ ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability,
+ DikeHeightCalculationType.CalculateByProfileSpecificRequiredProbability)]
+ public void ConvertTo_DikeHeightCalculationTypeVariousCases_ReturnExpectedValues(
+ ConfigurationHydraulicLoadsCalculationType value, DikeHeightCalculationType expectedResult)
{
// Setup
var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+ // Call
+ object result = converter.ConvertTo(value, typeof(DikeHeightCalculationType));
+
+ // Assert
+ Assert.AreEqual(expectedResult, result);
+ }
+
+ [Test]
+ [TestCase(
+ ConfigurationHydraulicLoadsCalculationType.NoCalculation,
+ OvertoppingRateCalculationType.NoCalculation)]
+ [TestCase(
+ ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm,
+ OvertoppingRateCalculationType.CalculateByAssessmentSectionNorm)]
+ [TestCase(
+ ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability,
+ OvertoppingRateCalculationType.CalculateByProfileSpecificRequiredProbability)]
+ public void ConvertTo_OvertoppingRateCalculationTypeVariousCases_ReturnExpectedValues(
+ ConfigurationHydraulicLoadsCalculationType value, OvertoppingRateCalculationType expectedResult)
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
+ // Call
+ object result = converter.ConvertTo(value, typeof(OvertoppingRateCalculationType));
+
+ // Assert
+ Assert.AreEqual(expectedResult, result);
+ }
+
+ [Test]
+ [TestCase(typeof(string))]
+ [TestCase(typeof(DikeHeightCalculationType))]
+ [TestCase(typeof(OvertoppingRateCalculationType))]
+ public void ConvertTo_InvalidReadHydraulicLoadsCalculationTypeValue_ThrowNotSupportedException(Type type)
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
const ConfigurationHydraulicLoadsCalculationType invalidValue = (ConfigurationHydraulicLoadsCalculationType) 9999999;
// Call
- TestDelegate call = () => converter.ConvertTo(invalidValue, typeof(string));
+ TestDelegate call = () => converter.ConvertTo(invalidValue, type);
// Assert
Assert.Throws(call);
@@ -124,12 +200,38 @@
}
[Test]
- public void CanConvertFrom_NonString_ReturnFalse()
+ public void CanConvertFrom_DikeHeightCalculationType_ReturnTrue()
{
// Setup
var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
// Call
+ bool canConvertFromString = converter.CanConvertFrom(typeof(DikeHeightCalculationType));
+
+ // Assert
+ Assert.IsTrue(canConvertFromString);
+ }
+
+ [Test]
+ public void CanConvertFrom_OvertoppingRateCalculationType_ReturnTrue()
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
+ // Call
+ bool canConvertFromString = converter.CanConvertFrom(typeof(OvertoppingRateCalculationType));
+
+ // Assert
+ Assert.IsTrue(canConvertFromString);
+ }
+
+ [Test]
+ public void CanConvertFrom_OtherType_ReturnFalse()
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
+ // Call
bool canConvert = converter.CanConvertFrom(typeof(object));
// Assert
@@ -140,7 +242,7 @@
[TestCase("niet", ConfigurationHydraulicLoadsCalculationType.NoCalculation)]
[TestCase("norm", ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm)]
[TestCase("doorsnede", ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability)]
- public void ConvertFrom_VariousCases_ReturnExpectedValue(string value, ConfigurationHydraulicLoadsCalculationType expectedResult)
+ public void ConvertFrom_StringVariousCases_ReturnExpectedValue(string value, ConfigurationHydraulicLoadsCalculationType expectedResult)
{
// Setup
var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
@@ -153,6 +255,52 @@
}
[Test]
+ [TestCase(
+ DikeHeightCalculationType.NoCalculation,
+ ConfigurationHydraulicLoadsCalculationType.NoCalculation)]
+ [TestCase(
+ DikeHeightCalculationType.CalculateByAssessmentSectionNorm,
+ ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm)]
+ [TestCase(
+ DikeHeightCalculationType.CalculateByProfileSpecificRequiredProbability,
+ ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability)]
+ public void ConvertFrom_DikeHeightCalculationTypeVariousCases_ReturnExpectedValue(
+ DikeHeightCalculationType value, ConfigurationHydraulicLoadsCalculationType expectedResult)
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
+ // Call
+ object result = converter.ConvertFrom(value);
+
+ // Assert
+ Assert.AreEqual(expectedResult, result);
+ }
+
+ [Test]
+ [TestCase(
+ OvertoppingRateCalculationType.NoCalculation,
+ ConfigurationHydraulicLoadsCalculationType.NoCalculation)]
+ [TestCase(
+ OvertoppingRateCalculationType.CalculateByAssessmentSectionNorm,
+ ConfigurationHydraulicLoadsCalculationType.CalculateByAssessmentSectionNorm)]
+ [TestCase(
+ OvertoppingRateCalculationType.CalculateByProfileSpecificRequiredProbability,
+ ConfigurationHydraulicLoadsCalculationType.CalculateByProfileSpecificRequiredProbability)]
+ public void ConvertFrom_OvertoppingRateCalculationTypeVariousCases_ReturnExpectedValue(
+ OvertoppingRateCalculationType value, ConfigurationHydraulicLoadsCalculationType expectedResult)
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
+ // Call
+ object result = converter.ConvertFrom(value);
+
+ // Assert
+ Assert.AreEqual(expectedResult, result);
+ }
+
+ [Test]
public void ConvertFrom_UnsupportedString_ThrowNotSupportedException()
{
// Setup
@@ -164,5 +312,31 @@
// Assert
Assert.Throws(call);
}
+
+ [Test]
+ public void ConvertFrom_UnsupportedDikeHeightCalculationType_ThrowNotSupportedException()
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
+ // Call
+ TestDelegate call = () => converter.ConvertFrom((DikeHeightCalculationType) 9999);
+
+ // Assert
+ Assert.Throws(call);
+ }
+
+ [Test]
+ public void ConvertFrom_UnsupportedOvertoppingRateCalculationType_ThrowNotSupportedException()
+ {
+ // Setup
+ var converter = new ConfigurationHydraulicLoadsCalculationTypeConverter();
+
+ // Call
+ TestDelegate call = () => converter.ConvertFrom((OvertoppingRateCalculationType) 9999);
+
+ // Assert
+ Assert.Throws(call);
+ }
}
}
\ No newline at end of file
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationWriter/completeConfiguration.xml
===================================================================
diff -u -r5196322c56646e0417694a2d8c161d707f56415c -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationWriter/completeConfiguration.xml (.../completeConfiguration.xml) (revision 5196322c56646e0417694a2d8c161d707f56415c)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationWriter/completeConfiguration.xml (.../completeConfiguration.xml) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -6,7 +6,7 @@
67.1
0
niet
- niet
+ norm
true
caisson
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml
===================================================================
diff -u -r5196322c56646e0417694a2d8c161d707f56415c -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml (.../folderWithSubfolderAndCalculation.xml) (revision 5196322c56646e0417694a2d8c161d707f56415c)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml (.../folderWithSubfolderAndCalculation.xml) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -7,7 +7,7 @@
67.1
0
niet
- niet
+ norm
true
caisson
@@ -23,14 +23,7 @@
Index: Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationWriter/sparseConfiguration.xml
===================================================================
diff -u -r194c06df5e2f55b8711d53c52f95fedd0262bdae -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationWriter/sparseConfiguration.xml (.../sparseConfiguration.xml) (revision 194c06df5e2f55b8711d53c52f95fedd0262bdae)
+++ Ringtoets/GrassCoverErosionInwards/test/Ringtoets.GrassCoverErosionInwards.IO.Test/test-data/GrassCoverErosionInwardsCalculationConfigurationWriter/sparseConfiguration.xml (.../sparseConfiguration.xml) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -1,13 +1,6 @@
- niet
- niet
-
-
- 0.004
- 0.0006
-
-
+
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Configurations/PipingCalculationConfigurationExporter.cs
===================================================================
diff -u -r756064ca162892256021ac1616fe4680b2bba320 -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Configurations/PipingCalculationConfigurationExporter.cs (.../PipingCalculationConfigurationExporter.cs) (revision 756064ca162892256021ac1616fe4680b2bba320)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Configurations/PipingCalculationConfigurationExporter.cs (.../PipingCalculationConfigurationExporter.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -51,18 +51,34 @@
{
PipingInput input = calculation.InputParameters;
- return new PipingCalculationConfiguration(calculation.Name)
+ var calculationConfiguration = new PipingCalculationConfiguration(calculation.Name);
+
+ if (input.HydraulicBoundaryLocation != null)
{
- HydraulicBoundaryLocation = input.HydraulicBoundaryLocation?.Name,
- AssessmentLevel = input.HydraulicBoundaryLocation == null ? input.AssessmentLevel : (double?)null,
- DampingFactorExit = input.DampingFactorExit.ToStochastConfiguration(),
- PhreaticLevelExit = input.PhreaticLevelExit.ToStochastConfiguration(),
- SurfaceLine = input.SurfaceLine?.Name,
- EntryPointL = input.EntryPointL,
- ExitPointL = input.ExitPointL,
- StochasticSoilModel = input.StochasticSoilModel?.Name,
- StochasticSoilProfile = input.StochasticSoilProfile?.SoilProfile.Name
- };
+ calculationConfiguration.HydraulicBoundaryLocation = input.HydraulicBoundaryLocation.Name;
+ }
+ else if(input.UseAssessmentLevelManualInput)
+ {
+ calculationConfiguration.AssessmentLevel = input.AssessmentLevel;
+ }
+
+ calculationConfiguration.DampingFactorExit = input.DampingFactorExit.ToStochastConfiguration();
+ calculationConfiguration.PhreaticLevelExit = input.PhreaticLevelExit.ToStochastConfiguration();
+
+ if (input.SurfaceLine != null)
+ {
+ calculationConfiguration.SurfaceLine = input.SurfaceLine.Name;
+ calculationConfiguration.EntryPointL = input.EntryPointL;
+ calculationConfiguration.ExitPointL = input.ExitPointL;
+ }
+
+ if (input.StochasticSoilModel != null)
+ {
+ calculationConfiguration.StochasticSoilModel = input.StochasticSoilModel.Name;
+ calculationConfiguration.StochasticSoilProfile = input.StochasticSoilProfile?.SoilProfile.Name;
+ }
+
+ return calculationConfiguration;
}
}
}
\ No newline at end of file
Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Configurations/PipingCalculationConfigurationWriter.cs
===================================================================
diff -u -r756064ca162892256021ac1616fe4680b2bba320 -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/Piping/src/Ringtoets.Piping.IO/Configurations/PipingCalculationConfigurationWriter.cs (.../PipingCalculationConfigurationWriter.cs) (revision 756064ca162892256021ac1616fe4680b2bba320)
+++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Configurations/PipingCalculationConfigurationWriter.cs (.../PipingCalculationConfigurationWriter.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -20,12 +20,9 @@
// All rights reserved.
using System;
-using System.Collections.Generic;
using System.Xml;
-using Ringtoets.Common.Data.Probabilistics;
using Ringtoets.Common.IO.Configurations;
using Ringtoets.Common.IO.Configurations.Export;
-using Ringtoets.Piping.Data;
namespace Ringtoets.Piping.IO.Configurations
{
@@ -53,46 +50,29 @@
writer.WriteStartElement(ConfigurationSchemaIdentifiers.CalculationElement);
writer.WriteAttributeString(ConfigurationSchemaIdentifiers.NameAttribute, configuration.Name);
- if (configuration.AssessmentLevel.HasValue)
- {
- WriteElementWhenContentAvailable(writer,
- PipingCalculationConfigurationSchemaIdentifiers.AssessmentLevelElement,
- configuration.AssessmentLevel);
- }
- else
- {
- WriteElementWhenContentAvailable(writer,
- ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement,
- configuration.HydraulicBoundaryLocation);
- }
+ WriteElementWhenContentAvailable(writer,
+ PipingCalculationConfigurationSchemaIdentifiers.AssessmentLevelElement,
+ configuration.AssessmentLevel);
+ WriteElementWhenContentAvailable(writer,
+ ConfigurationSchemaIdentifiers.HydraulicBoundaryLocationElement,
+ configuration.HydraulicBoundaryLocation);
- if (configuration.SurfaceLine != null)
- {
- WriteElementWhenContentAvailable(writer,
- PipingCalculationConfigurationSchemaIdentifiers.SurfaceLineElement,
- configuration.SurfaceLine);
- WriteElementWhenContentAvailable(writer,
- PipingCalculationConfigurationSchemaIdentifiers.EntryPointLElement,
- configuration.EntryPointL);
- WriteElementWhenContentAvailable(writer,
- PipingCalculationConfigurationSchemaIdentifiers.ExitPointLElement,
- configuration.ExitPointL);
- }
+ WriteElementWhenContentAvailable(writer,
+ PipingCalculationConfigurationSchemaIdentifiers.SurfaceLineElement,
+ configuration.SurfaceLine);
+ WriteElementWhenContentAvailable(writer,
+ PipingCalculationConfigurationSchemaIdentifiers.EntryPointLElement,
+ configuration.EntryPointL);
+ WriteElementWhenContentAvailable(writer,
+ PipingCalculationConfigurationSchemaIdentifiers.ExitPointLElement,
+ configuration.ExitPointL);
+ WriteElementWhenContentAvailable(writer,
+ PipingCalculationConfigurationSchemaIdentifiers.StochasticSoilModelElement,
+ configuration.StochasticSoilModel);
+ WriteElementWhenContentAvailable(writer,
+ PipingCalculationConfigurationSchemaIdentifiers.StochasticSoilProfileElement,
+ configuration.StochasticSoilProfile);
- if (configuration.StochasticSoilModel != null)
- {
- WriteElementWhenContentAvailable(writer,
- PipingCalculationConfigurationSchemaIdentifiers.StochasticSoilModelElement,
- configuration.StochasticSoilModel);
-
- if (configuration.StochasticSoilProfile != null)
- {
- WriteElementWhenContentAvailable(writer,
- PipingCalculationConfigurationSchemaIdentifiers.StochasticSoilProfileElement,
- configuration.StochasticSoilProfile);
- }
- }
-
writer.WriteStartElement(ConfigurationSchemaIdentifiers.StochastsElement);
WriteDistributionWhenAvailable(writer,
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Configurations/PipingCalculationConfigurationExporterTest.cs
===================================================================
diff -u -r756064ca162892256021ac1616fe4680b2bba320 -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Configurations/PipingCalculationConfigurationExporterTest.cs (.../PipingCalculationConfigurationExporterTest.cs) (revision 756064ca162892256021ac1616fe4680b2bba320)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Configurations/PipingCalculationConfigurationExporterTest.cs (.../PipingCalculationConfigurationExporterTest.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -42,6 +42,35 @@
PipingCalculation,
PipingCalculationConfiguration>
{
+
+ private static IEnumerable Calculations
+ {
+ get
+ {
+ yield return new TestCaseData("calculationWithoutHydraulicLocation",
+ PipingTestDataGenerator.GetPipingCalculationWithoutHydraulicLocationAndAssessmentLevel())
+ .SetName("calculationWithoutHydraulicLocation");
+ yield return new TestCaseData("calculationWithAssessmentLevel",
+ PipingTestDataGenerator.GetPipingCalculationWithAssessmentLevel())
+ .SetName("calculationWithAssessmentLevel");
+ yield return new TestCaseData("calculationWithoutSurfaceLine",
+ PipingTestDataGenerator.GetPipingCalculationWithoutSurfaceLine())
+ .SetName("calculationWithoutSurfaceLine");
+ yield return new TestCaseData("calculationWithoutSoilModel",
+ PipingTestDataGenerator.GetPipingCalculationWithoutSoilModel())
+ .SetName("calculationWithoutSoilModel");
+ yield return new TestCaseData("calculationWithoutSoilProfile",
+ PipingTestDataGenerator.GetPipingCalculationWithoutSoilProfile())
+ .SetName("calculationWithoutSoilProfile");
+ yield return new TestCaseData("calculationWithNaNs",
+ PipingTestDataGenerator.GetPipingCalculationWithNaNs())
+ .SetName("calculationWithNaNs");
+ yield return new TestCaseData("calculationWithInfinities",
+ PipingTestDataGenerator.GetPipingCalculationWithInfinities())
+ .SetName("calculationWithInfinities");
+ }
+ }
+
[Test]
public void Export_ValidData_ReturnTrueAndWritesFile()
{
@@ -93,6 +122,20 @@
}, expectedXmlFilePath);
}
+ [Test]
+ [TestCaseSource(nameof(Calculations))]
+ public void Write_ValidCalculation_ValidFile(string expectedFileName, PipingCalculation calculation)
+ {
+ // Setup
+ string expectedXmlFilePath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Piping.IO, Path.Combine("PipingCalculationConfigurationWriter", $"{expectedFileName}.xml"));
+
+ // Call and Assert
+ WriteAndValidate(new[]
+ {
+ calculation
+ }, expectedXmlFilePath);
+ }
+
protected override PipingCalculation CreateCalculation()
{
return PipingTestDataGenerator.GetPipingCalculation();
Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Configurations/PipingCalculationConfigurationWriterTest.cs
===================================================================
diff -u -r756064ca162892256021ac1616fe4680b2bba320 -r4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb
--- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Configurations/PipingCalculationConfigurationWriterTest.cs (.../PipingCalculationConfigurationWriterTest.cs) (revision 756064ca162892256021ac1616fe4680b2bba320)
+++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Configurations/PipingCalculationConfigurationWriterTest.cs (.../PipingCalculationConfigurationWriterTest.cs) (revision 4c5ed0f6a4b5f4bbf8a39c6dd6d9d372ee54acfb)
@@ -19,7 +19,6 @@
// 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.Base.Geometry;
using Core.Common.TestUtil;
@@ -37,75 +36,6 @@
PipingCalculationConfigurationWriter,
PipingCalculationConfiguration>
{
- private static IEnumerable Calculations
- {
- get
- {
-
- var calculation = CreateFullCalculationConfiguration();
- calculation.HydraulicBoundaryLocation = null;
- calculation.EntryPointL = 0.0;
- calculation.ExitPointL = 10;
- yield return new TestCaseData("calculationWithoutHydraulicLocation",
- calculation)
- .SetName("calculationWithoutHydraulicLocation");
-
- calculation = CreateFullCalculationConfiguration();
- calculation.AssessmentLevel = 3.0;
- calculation.EntryPointL = 0.0;
- calculation.ExitPointL = 10;
- yield return new TestCaseData("calculationWithAssessmentLevel",
- calculation)
- .SetName("calculationWithAssessmentLevel");
-
- calculation = CreateFullCalculationConfiguration();
- calculation.SurfaceLine = null;
- yield return new TestCaseData("calculationWithoutSurfaceLine",
- calculation)
- .SetName("calculationWithoutSurfaceLine");
-
- calculation = CreateFullCalculationConfiguration();
- calculation.StochasticSoilModel = null;
- calculation.EntryPointL = 0.0;
- calculation.ExitPointL = 10;
- yield return new TestCaseData("calculationWithoutSoilModel",
- calculation)
- .SetName("calculationWithoutSoilModel");
-
- calculation = CreateFullCalculationConfiguration();
- calculation.StochasticSoilProfile = null;
- calculation.EntryPointL = 0.0;
- calculation.ExitPointL = 10;
- yield return new TestCaseData("calculationWithoutSoilProfile",
- calculation)
- .SetName("calculationWithoutSoilProfile");
-
- calculation = CreateFullCalculationConfiguration();
- calculation.AssessmentLevel = double.NaN;
- calculation.EntryPointL = double.NaN;
- calculation.ExitPointL = double.NaN;
- calculation.PhreaticLevelExit.Mean = double.NaN;
- calculation.PhreaticLevelExit.StandardDeviation = double.NaN;
- calculation.DampingFactorExit.Mean = double.NaN;
- calculation.DampingFactorExit.StandardDeviation = double.NaN;
- yield return new TestCaseData("calculationWithNaNs",
- calculation)
- .SetName("calculationWithNaNs");
-
- calculation = CreateFullCalculationConfiguration();
- calculation.AssessmentLevel = double.NegativeInfinity;
- calculation.EntryPointL = double.NegativeInfinity;
- calculation.ExitPointL = double.PositiveInfinity;
- calculation.PhreaticLevelExit.Mean = double.NegativeInfinity;
- calculation.PhreaticLevelExit.StandardDeviation = double.PositiveInfinity;
- calculation.DampingFactorExit.Mean = double.PositiveInfinity;
- calculation.DampingFactorExit.StandardDeviation = double.PositiveInfinity;
- yield return new TestCaseData("calculationWithInfinities",
- calculation)
- .SetName("calculationWithInfinities");
- }
- }
-
[Test]
public void Write_CalculationGroupsAndCalculation_ValidFile()
{
@@ -193,36 +123,6 @@
};
}
- [Test]
- [TestCaseSource(nameof(Calculations))]
- public void Write_ValidCalculation_ValidFile(string expectedFileName, PipingCalculationConfiguration calculation)
- {
- // Setup
- string filePath = TestHelper.GetScratchPadPath("test.xml");
-
- try
- {
- // Call
- new PipingCalculationConfigurationWriter(filePath).Write(new[]
- {
- calculation
- });
-
- // Assert
- Assert.IsTrue(File.Exists(filePath));
-
- string actualXml = File.ReadAllText(filePath);
- string expectedXmlFilePath = TestHelper.GetTestDataPath(TestDataPath.Ringtoets.Piping.IO, Path.Combine("PipingCalculationConfigurationWriter", $"{expectedFileName}.xml"));
- string expectedXml = File.ReadAllText(expectedXmlFilePath);
-
- Assert.AreEqual(expectedXml, actualXml);
- }
- finally
- {
- File.Delete(filePath);
- }
- }
-
protected override PipingCalculationConfigurationWriter CreateWriterInstance(string filePath)
{
return new PipingCalculationConfigurationWriter(filePath);