Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Exporters/StabilityPointStructuresCalculationConfigurationExporter.cs =================================================================== diff -u -raa1c2bfcb381ab5ae4b35dcfce35e09616325563 -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Exporters/StabilityPointStructuresCalculationConfigurationExporter.cs (.../StabilityPointStructuresCalculationConfigurationExporter.cs) (revision aa1c2bfcb381ab5ae4b35dcfce35e09616325563) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Exporters/StabilityPointStructuresCalculationConfigurationExporter.cs (.../StabilityPointStructuresCalculationConfigurationExporter.cs) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -23,6 +23,7 @@ using System.Collections.Generic; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.Structures; +using Ringtoets.Common.IO.Configurations.Helpers; using Ringtoets.Common.IO.Exporters; using Ringtoets.StabilityPointStructures.Data; using Ringtoets.StabilityPointStructures.IO.Writers; @@ -54,7 +55,18 @@ protected override StabilityPointStructuresCalculationConfiguration ToConfiguration(StructuresCalculation calculation) { - return new StabilityPointStructuresCalculationConfiguration(calculation.Name); + var calculationConfiguration = new StabilityPointStructuresCalculationConfiguration(calculation.Name); + StabilityPointStructuresInput input = calculation.InputParameters; + + calculationConfiguration.HydraulicBoundaryLocationName = input.HydraulicBoundaryLocation?.Name; + calculationConfiguration.DrainCoefficient = input.DrainCoefficient.ToStochastConfigurationWithMean(); + calculationConfiguration.FailureProbabilityStructureWithErosion = input.FailureProbabilityStructureWithErosion; + calculationConfiguration.FactorStormDurationOpenStructure = input.FactorStormDurationOpenStructure; + calculationConfiguration.ModelFactorSuperCriticalFlow = input.ModelFactorSuperCriticalFlow.ToStochastConfigurationWithMean(); + calculationConfiguration.StormDuration = input.StormDuration.ToStochastConfigurationWithMean(); + calculationConfiguration.VolumicWeightWater = input.VolumicWeightWater; + + return calculationConfiguration; } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresCalculationConfiguration.cs =================================================================== diff -u -rf5b1a2d20962607a2e063bd6e5582dfaec00002d -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresCalculationConfiguration.cs (.../StabilityPointStructuresCalculationConfiguration.cs) (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresCalculationConfiguration.cs (.../StabilityPointStructuresCalculationConfiguration.cs) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -57,6 +57,11 @@ public MeanVariationCoefficientStochastConfiguration ConstructiveStrengthQuadraticLoadModel { get; set; } /// + /// Gets or sets the stochast configuration for the drain coefficient of the structure. + /// + public MeanStandardDeviationStochastConfiguration DrainCoefficient { get; set; } + + /// /// Gets or sets the evaluation level of the structure. /// public double? EvaluationLevel { get; set; } @@ -135,5 +140,15 @@ /// Gets or sets the vertical distance of the structure. /// public double? VerticalDistance { get; set; } + + /// + /// Gets or sets the factor for the storm duration for an open structure. + /// + public double? FactorStormDurationOpenStructure { get; set; } + + /// + /// Gets or sets the volumic weight of water. + /// + public double? VolumicWeightWater { get; set; } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresConfigurationSchemaIdentifiers.cs =================================================================== diff -u -r239e0091ca8c9878fc6d324b5a0b85179c45dbb7 -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresConfigurationSchemaIdentifiers.cs (.../StabilityPointStructuresConfigurationSchemaIdentifiers.cs) (revision 239e0091ca8c9878fc6d324b5a0b85179c45dbb7) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/StabilityPointStructuresConfigurationSchemaIdentifiers.cs (.../StabilityPointStructuresConfigurationSchemaIdentifiers.cs) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -49,6 +49,11 @@ public const string ConstructiveStrengthQuadraticLoadModelStochastName = "kwadratischebelastingschematiseringsterkte"; /// + /// The identifier for the drain coefficient stochast name. + /// + public const string DrainCoefficientStochastName = "afvoercoefficient"; + + /// /// The identifier for evaluation level elements. /// public const string EvaluationLevelElement = "analysehoogte"; @@ -139,5 +144,15 @@ /// The identifier for the vertical distance of the structure elements. /// public const string VerticalDistanceElement = "afstandonderkantwandteendijk"; + + /// + /// The identifier for the factor for the storm duration for an open structure elements. + /// + public const string FactorStormDurationOpenStructureElement = "factorstormduur"; + + /// + /// The identifier for the volumic weight of water elements. + /// + public const string VolumicWeightWaterElement = "volumiekgewichtwater"; } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Writers/StabilityPointStructuresCalculationConfigurationWriter.cs =================================================================== diff -u -raa1c2bfcb381ab5ae4b35dcfce35e09616325563 -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Writers/StabilityPointStructuresCalculationConfigurationWriter.cs (.../StabilityPointStructuresCalculationConfigurationWriter.cs) (revision aa1c2bfcb381ab5ae4b35dcfce35e09616325563) +++ Ringtoets/StabilityPointStructures/src/Ringtoets.StabilityPointStructures.IO/Writers/StabilityPointStructuresCalculationConfigurationWriter.cs (.../StabilityPointStructuresCalculationConfigurationWriter.cs) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -50,6 +50,9 @@ StabilityPointStructuresConfigurationSchemaIdentifiers.EvaluationLevelElement, configuration.EvaluationLevel); WriteElementWhenContentAvailable(writer, + StabilityPointStructuresConfigurationSchemaIdentifiers.FactorStormDurationOpenStructureElement, + configuration.FactorStormDurationOpenStructure); + WriteElementWhenContentAvailable(writer, StabilityPointStructuresConfigurationSchemaIdentifiers.FailureProbabilityRepairClosureElement, configuration.FailureProbabilityRepairClosure); @@ -64,6 +67,9 @@ WriteElementWhenContentAvailable(writer, StabilityPointStructuresConfigurationSchemaIdentifiers.VerticalDistanceElement, configuration.VerticalDistance); + WriteElementWhenContentAvailable(writer, + StabilityPointStructuresConfigurationSchemaIdentifiers.VolumicWeightWaterElement, + configuration.VolumicWeightWater); } protected override void WriteSpecificStochasts(StabilityPointStructuresCalculationConfiguration configuration, XmlWriter writer) @@ -81,6 +87,9 @@ StabilityPointStructuresConfigurationSchemaIdentifiers.ConstructiveStrengthQuadraticLoadModelStochastName, configuration.ConstructiveStrengthQuadraticLoadModel); WriteDistributionWhenAvailable(writer, + StabilityPointStructuresConfigurationSchemaIdentifiers.DrainCoefficientStochastName, + configuration.DrainCoefficient); + WriteDistributionWhenAvailable(writer, StabilityPointStructuresConfigurationSchemaIdentifiers.FailureCollisionEnergyStochastName, configuration.FailureCollisionEnergy); WriteDistributionWhenAvailable(writer, Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Exporters/StabilityPointStructuresCalculationConfigurationExporterTest.cs =================================================================== diff -u -raa1c2bfcb381ab5ae4b35dcfce35e09616325563 -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Exporters/StabilityPointStructuresCalculationConfigurationExporterTest.cs (.../StabilityPointStructuresCalculationConfigurationExporterTest.cs) (revision aa1c2bfcb381ab5ae4b35dcfce35e09616325563) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Exporters/StabilityPointStructuresCalculationConfigurationExporterTest.cs (.../StabilityPointStructuresCalculationConfigurationExporterTest.cs) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -20,6 +20,8 @@ // All rights reserved. using System.Collections.Generic; +using System.IO; +using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.Calculation; using Ringtoets.Common.Data.Structures; @@ -39,6 +41,27 @@ StructuresCalculation, StabilityPointStructuresCalculationConfiguration> { + + private static IEnumerable Calculations + { + get + { + yield return new TestCaseData("sparseConfiguration", new[] + { + CreateSparseCalculation() + }) + .SetName("Calculation configuration with none of its parameters set"); + } + } + + private static ICalculation CreateSparseCalculation() + { + return new StructuresCalculation + { + Name = "sparse config" + }; + } + protected override StructuresCalculation CreateCalculation() { return new TestStabilityPointStructuresCalculation(); @@ -50,5 +73,20 @@ { return new StabilityPointStructuresCalculationConfigurationExporter(calculations, filePath); } + + [Test] + [TestCaseSource(nameof(Calculations))] + public void Export_ValidData_ReturnTrueAndWritesFile(string fileName, ICalculationBase[] calculations) + { + // Setup + string testDirectory = TestHelper.GetTestDataPath( + TestDataPath.Ringtoets.StabilityPointStructures.IO, + nameof(StabilityPointStructuresCalculationConfigurationExporter)); + + string expectedXmlFilePath = Path.Combine(testDirectory, $"{fileName}.xml"); + + // Call and Assert + WriteAndValidate(calculations, expectedXmlFilePath); + } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresCalculationConfigurationTest.cs =================================================================== diff -u -rf5b1a2d20962607a2e063bd6e5582dfaec00002d -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresCalculationConfigurationTest.cs (.../StabilityPointStructuresCalculationConfigurationTest.cs) (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresCalculationConfigurationTest.cs (.../StabilityPointStructuresCalculationConfigurationTest.cs) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -56,7 +56,9 @@ Assert.IsNull(configuration.BankWidth); Assert.IsNull(configuration.ConstructiveStrengthLinearLoadModel); Assert.IsNull(configuration.ConstructiveStrengthQuadraticLoadModel); + Assert.IsNull(configuration.DrainCoefficient); Assert.IsNull(configuration.EvaluationLevel); + Assert.IsNull(configuration.FactorStormDurationOpenStructure); Assert.IsNull(configuration.FailureCollisionEnergy); Assert.IsNull(configuration.FailureProbabilityRepairClosure); Assert.IsNull(configuration.FlowVelocityStructureClosable); @@ -72,6 +74,7 @@ Assert.IsNull(configuration.StabilityQuadraticLoadModel); Assert.IsNull(configuration.ThresholdHeightOpenWeir); Assert.IsNull(configuration.VerticalDistance); + Assert.IsNull(configuration.VolumicWeightWater); } [Test] @@ -84,7 +87,9 @@ var bankWidth = new MeanStandardDeviationStochastConfiguration(); var constructiveStrengthLinearLoadModel = new MeanVariationCoefficientStochastConfiguration(); var constructiveStrengthQuadraticLoadModel = new MeanVariationCoefficientStochastConfiguration(); + var drainCoefficient = new MeanStandardDeviationStochastConfiguration(); double evaluationLevel = random.NextDouble(); + double factorStormDurationOpenStructure = random.NextDouble(); var failureCollisionEnergy = new MeanVariationCoefficientStochastConfiguration(); double failureProbabilityRepairClosure = random.NextDouble(); var flowVelocityStructureClosable = new MeanVariationCoefficientStochastConfiguration(); @@ -100,13 +105,16 @@ var stabilityQuadraticLoadModel = new MeanVariationCoefficientStochastConfiguration(); var thresholdHeightOpenWeir = new MeanStandardDeviationStochastConfiguration(); double verticalDistance = random.NextDouble(); + double volumicWeightWater = random.NextDouble(); // Call configuration.AreaFlowApertures = areaFlowApertures; configuration.BankWidth = bankWidth; configuration.ConstructiveStrengthLinearLoadModel = constructiveStrengthLinearLoadModel; configuration.ConstructiveStrengthQuadraticLoadModel = constructiveStrengthQuadraticLoadModel; + configuration.DrainCoefficient = drainCoefficient; configuration.EvaluationLevel = evaluationLevel; + configuration.FactorStormDurationOpenStructure = factorStormDurationOpenStructure; configuration.FailureCollisionEnergy = failureCollisionEnergy; configuration.FailureProbabilityRepairClosure = failureProbabilityRepairClosure; configuration.FlowVelocityStructureClosable = flowVelocityStructureClosable; @@ -122,13 +130,16 @@ configuration.StabilityQuadraticLoadModel = stabilityQuadraticLoadModel; configuration.ThresholdHeightOpenWeir = thresholdHeightOpenWeir; configuration.VerticalDistance = verticalDistance; + configuration.VolumicWeightWater = volumicWeightWater; // Assert Assert.AreSame(areaFlowApertures, configuration.AreaFlowApertures); Assert.AreSame(bankWidth, configuration.BankWidth); Assert.AreSame(constructiveStrengthLinearLoadModel, configuration.ConstructiveStrengthLinearLoadModel); Assert.AreSame(constructiveStrengthQuadraticLoadModel, configuration.ConstructiveStrengthQuadraticLoadModel); + Assert.AreSame(drainCoefficient, configuration.DrainCoefficient); Assert.AreEqual(evaluationLevel, configuration.EvaluationLevel); + Assert.AreEqual(factorStormDurationOpenStructure, configuration.FactorStormDurationOpenStructure); Assert.AreSame(failureCollisionEnergy, configuration.FailureCollisionEnergy); Assert.AreEqual(failureProbabilityRepairClosure, configuration.FailureProbabilityRepairClosure); Assert.AreSame(flowVelocityStructureClosable, configuration.FlowVelocityStructureClosable); @@ -144,6 +155,7 @@ Assert.AreSame(stabilityQuadraticLoadModel, configuration.StabilityQuadraticLoadModel); Assert.AreSame(thresholdHeightOpenWeir, configuration.ThresholdHeightOpenWeir); Assert.AreEqual(verticalDistance, configuration.VerticalDistance); + Assert.AreEqual(volumicWeightWater, configuration.VolumicWeightWater); } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresConfigurationSchemaIdentifiersTest.cs =================================================================== diff -u -r239e0091ca8c9878fc6d324b5a0b85179c45dbb7 -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresConfigurationSchemaIdentifiersTest.cs (.../StabilityPointStructuresConfigurationSchemaIdentifiersTest.cs) (revision 239e0091ca8c9878fc6d324b5a0b85179c45dbb7) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/StabilityPointStructuresConfigurationSchemaIdentifiersTest.cs (.../StabilityPointStructuresConfigurationSchemaIdentifiersTest.cs) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -34,7 +34,9 @@ Assert.AreEqual("bermbreedte", StabilityPointStructuresConfigurationSchemaIdentifiers.BankWidthStochastName); Assert.AreEqual("lineairebelastingschematiseringsterkte", StabilityPointStructuresConfigurationSchemaIdentifiers.ConstructiveStrengthLinearLoadModelStochastName); Assert.AreEqual("kwadratischebelastingschematiseringsterkte", StabilityPointStructuresConfigurationSchemaIdentifiers.ConstructiveStrengthQuadraticLoadModelStochastName); + Assert.AreEqual("afvoercoefficient", StabilityPointStructuresConfigurationSchemaIdentifiers.DrainCoefficientStochastName); Assert.AreEqual("analysehoogte", StabilityPointStructuresConfigurationSchemaIdentifiers.EvaluationLevelElement); + Assert.AreEqual("factorstormduur", StabilityPointStructuresConfigurationSchemaIdentifiers.FactorStormDurationOpenStructureElement); Assert.AreEqual("aanvaarenergie", StabilityPointStructuresConfigurationSchemaIdentifiers.FailureCollisionEnergyStochastName); Assert.AreEqual("faalkansherstel", StabilityPointStructuresConfigurationSchemaIdentifiers.FailureProbabilityRepairClosureElement); Assert.AreEqual("kritiekestroomsnelheid", StabilityPointStructuresConfigurationSchemaIdentifiers.FlowVelocityStructureClosableStochastName); @@ -52,6 +54,7 @@ Assert.AreEqual("kwadratischebelastingschematiseringstabiliteit", StabilityPointStructuresConfigurationSchemaIdentifiers.StabilityQuadraticLoadModelStochastName); Assert.AreEqual("drempelhoogte", StabilityPointStructuresConfigurationSchemaIdentifiers.ThresholdHeightOpenWeirStochastName); Assert.AreEqual("afstandonderkantwandteendijk", StabilityPointStructuresConfigurationSchemaIdentifiers.VerticalDistanceElement); + Assert.AreEqual("volumiekgewichtwater", StabilityPointStructuresConfigurationSchemaIdentifiers.VolumicWeightWaterElement); } } } \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Writers/StabilityPointStructuresCalculationConfigurationWriterTest.cs =================================================================== diff -u -raa1c2bfcb381ab5ae4b35dcfce35e09616325563 -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Writers/StabilityPointStructuresCalculationConfigurationWriterTest.cs (.../StabilityPointStructuresCalculationConfigurationWriterTest.cs) (revision aa1c2bfcb381ab5ae4b35dcfce35e09616325563) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/Writers/StabilityPointStructuresCalculationConfigurationWriterTest.cs (.../StabilityPointStructuresCalculationConfigurationWriterTest.cs) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -133,7 +133,13 @@ Mean = 0.06, VariationCoefficient = 0.16 }, + DrainCoefficient = new MeanStandardDeviationStochastConfiguration + { + Mean = 0.01, + StandardDeviation = 0.02 + }, EvaluationLevel = 1.1, + FactorStormDurationOpenStructure = 1.123, FailureCollisionEnergy = new MeanVariationCoefficientStochastConfiguration { Mean = 0.07, @@ -214,6 +220,7 @@ StandardDeviation = 0.30 }, VerticalDistance = 7.7, + VolumicWeightWater = 9.9, WidthFlowApertures = new MeanStandardDeviationStochastConfiguration { Mean = 0.21, Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationExporter/sparseConfiguration.xml =================================================================== diff -u --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationExporter/sparseConfiguration.xml (revision 0) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationExporter/sparseConfiguration.xml (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -0,0 +1,19 @@ + + + + 1 + 1 + 9.81 + + + 1.1 + + + 6 + + + 1 + + + + \ No newline at end of file Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/completeConfiguration.xml =================================================================== diff -u -rf5b1a2d20962607a2e063bd6e5582dfaec00002d -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/completeConfiguration.xml (.../completeConfiguration.xml) (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/completeConfiguration.xml (.../completeConfiguration.xml) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -7,11 +7,13 @@ 3.3 profiel1 1.1 + 1.123 2.2 verdronkenkoker 4 5.5 7.7 + 9.9 true havendam @@ -63,6 +65,10 @@ 0.05 0.15 + + 0.01 + 0.02 + 0.07 0.17 Index: Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml =================================================================== diff -u -rf5b1a2d20962607a2e063bd6e5582dfaec00002d -re37e45f2e21aa0bf7cb46da85878c18cc2586efe --- Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml (.../folderWithSubfolderAndCalculation.xml) (revision f5b1a2d20962607a2e063bd6e5582dfaec00002d) +++ Ringtoets/StabilityPointStructures/test/Ringtoets.StabilityPointStructures.IO.Test/test-data/StabilityPointStructuresCalculationConfigurationWriter/folderWithSubfolderAndCalculation.xml (.../folderWithSubfolderAndCalculation.xml) (revision e37e45f2e21aa0bf7cb46da85878c18cc2586efe) @@ -8,11 +8,13 @@ 3.3 profiel1 1.1 + 1.123 2.2 verdronkenkoker 4 5.5 7.7 + 9.9 true havendam @@ -64,6 +66,10 @@ 0.05 0.15 + + 0.01 + 0.02 + 0.07 0.17