Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Common/HydraRingCalculationData.cs =================================================================== diff -u -rdd610d07aa21d3a9b5dcdaa7013aaab0dce29143 -r6241d8b1d8a7329857bc6dc8ef1648893f8365dd --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Common/HydraRingCalculationData.cs (.../HydraRingCalculationData.cs) (revision dd610d07aa21d3a9b5dcdaa7013aaab0dce29143) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Common/HydraRingCalculationData.cs (.../HydraRingCalculationData.cs) (revision 6241d8b1d8a7329857bc6dc8ef1648893f8365dd) @@ -68,6 +68,17 @@ } /// + /// Gets the profile points to use during the calculation. + /// + public virtual IEnumerable ProfilePoints + { + get + { + yield break; + } + } + + /// /// Gets the target reliability index to use during the calculation. /// /// Only relevant for type 2 computations. Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Common/HydraRingConfiguration.cs =================================================================== diff -u -r2c6b53332f530b9060259e3d821fc78e204245db -r6241d8b1d8a7329857bc6dc8ef1648893f8365dd --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Common/HydraRingConfiguration.cs (.../HydraRingConfiguration.cs) (revision 2c6b53332f530b9060259e3d821fc78e204245db) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Common/HydraRingConfiguration.cs (.../HydraRingConfiguration.cs) (revision 6241d8b1d8a7329857bc6dc8ef1648893f8365dd) @@ -23,6 +23,7 @@ using System.Collections.Generic; using System.Collections.Specialized; using System.Globalization; +using System.Linq; using Ringtoets.HydraRing.Calculation.Settings; using Ringtoets.HydraRing.Calculation.Types; @@ -105,6 +106,7 @@ InitializeDesignTablesConfiguration(configurationDictionary); InitializeNumericsConfiguration(configurationDictionary); InitializeVariableDatasConfiguration(configurationDictionary); + InitializeCalculationProfiles(configurationDictionary); InitializeAreasConfiguration(configurationDictionary); InitializeProjectsConfiguration(configurationDictionary); @@ -398,6 +400,40 @@ configurationDictionary["VariableDatas"] = orderDictionaries; } + private void InitializeCalculationProfiles(Dictionary> configurationDictionary) + { + var orderDictionaries = new List(); + + foreach (var hydraRingCalculation in hydraRingCalculations) + { + for (var i = 0; i < hydraRingCalculation.ProfilePoints.Count(); i++) + { + var hydraRingProfilePoint = hydraRingCalculation.ProfilePoints.ElementAt(i); + + orderDictionaries.Add(new OrderedDictionary + { + { + "SectionId", 999 // TODO: Dike section integration + }, + { + "SequenceNumber", i + }, + { + "XCoordinate", GetHydraRingValue(hydraRingProfilePoint.X) + }, + { + "ZCoordinate", GetHydraRingValue(hydraRingProfilePoint.Z) + }, + { + "Roughness", GetHydraRingValue(hydraRingProfilePoint.Roughness) + } + }); + } + } + + configurationDictionary["CalculationProfiles"] = orderDictionaries; + } + private void InitializeAreasConfiguration(Dictionary> configurationDictionary) { configurationDictionary["Areas"] = new List @@ -446,6 +482,8 @@ if (configurationDictionary[tableName].Count <= 0) { + lines.Add(""); + continue; } Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Common/HydraRingProfilePoint.cs =================================================================== diff -u --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Common/HydraRingProfilePoint.cs (revision 0) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Common/HydraRingProfilePoint.cs (revision 6241d8b1d8a7329857bc6dc8ef1648893f8365dd) @@ -0,0 +1,55 @@ +namespace Ringtoets.HydraRing.Calculation.Common +{ + /// + /// Container for Hydra-Ring profile point related data. + /// + public class HydraRingProfilePoint + { + private readonly double x; + private readonly double z; + + /// + /// Creates a new instance of the class. + /// + /// The x coordinate. + /// The z coordinate. + public HydraRingProfilePoint(double x, double z) + { + this.x = x; + this.z = z; + } + + /// + /// Gets the x coordinate. + /// + public double X + { + get + { + return x; + } + } + + /// + /// Gets the z coordinate. + /// + public double Z + { + get + { + return z; + } + } + + /// + /// Gets the roughness. + /// + public virtual double Roughness + { + get + { + return 1.0; + } + } + } +} \ No newline at end of file Index: Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj =================================================================== diff -u -r75310fcf4912fed7da59caa53a101992b048969e -r6241d8b1d8a7329857bc6dc8ef1648893f8365dd --- Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision 75310fcf4912fed7da59caa53a101992b048969e) +++ Ringtoets/HydraRing/src/Ringtoets.HydraRing.Calculation/Ringtoets.HydraRing.Calculation.csproj (.../Ringtoets.HydraRing.Calculation.csproj) (revision 6241d8b1d8a7329857bc6dc8ef1648893f8365dd) @@ -39,6 +39,7 @@ Properties\GlobalAssembly.cs + Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Common/HydraRingCalculationDataTest.cs =================================================================== diff -u -r2c6b53332f530b9060259e3d821fc78e204245db -r6241d8b1d8a7329857bc6dc8ef1648893f8365dd --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Common/HydraRingCalculationDataTest.cs (.../HydraRingCalculationDataTest.cs) (revision 2c6b53332f530b9060259e3d821fc78e204245db) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Common/HydraRingCalculationDataTest.cs (.../HydraRingCalculationDataTest.cs) (revision 6241d8b1d8a7329857bc6dc8ef1648893f8365dd) @@ -19,7 +19,6 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System.Linq; using NUnit.Framework; using Ringtoets.HydraRing.Calculation.Common; using Ringtoets.HydraRing.Calculation.Types; @@ -38,7 +37,8 @@ // Assert Assert.AreEqual(1, hydraRingCalculationData.HydraulicBoundaryLocationId); Assert.AreEqual(HydraRingFailureMechanismType.QVariant, hydraRingCalculationData.FailureMechanismType); - Assert.IsTrue(!hydraRingCalculationData.Variables.Any()); + CollectionAssert.IsEmpty(hydraRingCalculationData.Variables); + CollectionAssert.IsEmpty(hydraRingCalculationData.ProfilePoints); Assert.IsNaN(hydraRingCalculationData.Beta); } Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Common/HydraRingConfigurationTest.cs =================================================================== diff -u -r2c6b53332f530b9060259e3d821fc78e204245db -r6241d8b1d8a7329857bc6dc8ef1648893f8365dd --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Common/HydraRingConfigurationTest.cs (.../HydraRingConfigurationTest.cs) (revision 2c6b53332f530b9060259e3d821fc78e204245db) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Common/HydraRingConfigurationTest.cs (.../HydraRingConfigurationTest.cs) (revision 6241d8b1d8a7329857bc6dc8ef1648893f8365dd) @@ -63,6 +63,8 @@ "DELETE FROM [VariableDatas];" + Environment.NewLine + "INSERT INTO [VariableDatas] VALUES (999, 1, NULL, NULL, 26, 0, 0, NULL, NULL, NULL, NULL, 0, NULL, 300);" + Environment.NewLine + Environment.NewLine + + "DELETE FROM [CalculationProfiles];" + Environment.NewLine + + Environment.NewLine + "DELETE FROM [Areas];" + Environment.NewLine + "INSERT INTO [Areas] VALUES (1, '1', 'Nederland');" + Environment.NewLine + Environment.NewLine + Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Common/HydraRingProfilePointTest.cs =================================================================== diff -u --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Common/HydraRingProfilePointTest.cs (revision 0) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Common/HydraRingProfilePointTest.cs (revision 6241d8b1d8a7329857bc6dc8ef1648893f8365dd) @@ -0,0 +1,42 @@ +// Copyright (C) Stichting Deltares 2016. All rights reserved. +// +// This file is part of Ringtoets. +// +// Ringtoets is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +using NUnit.Framework; +using Ringtoets.HydraRing.Calculation.Common; + +namespace Ringtoets.HydraRing.Calculation.Test.Common +{ + [TestFixture] + public class HydraRingProfilePointTest + { + [Test] + public void Constructor_ExpectedValues() + { + // Call + var hydraRingProfilePoint = new HydraRingProfilePoint(1.1, 2.2); + + // Assert + Assert.AreEqual(1.1, hydraRingProfilePoint.X); + Assert.AreEqual(2.2, hydraRingProfilePoint.Z); + Assert.AreEqual(1.0, hydraRingProfilePoint.Roughness); + } + } +} Index: Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj =================================================================== diff -u -r2c6b53332f530b9060259e3d821fc78e204245db -r6241d8b1d8a7329857bc6dc8ef1648893f8365dd --- Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision 2c6b53332f530b9060259e3d821fc78e204245db) +++ Ringtoets/HydraRing/test/Ringtoets.HydraRing.Calculation.Test/Ringtoets.HydraRing.Calculation.Test.csproj (.../Ringtoets.HydraRing.Calculation.Test.csproj) (revision 6241d8b1d8a7329857bc6dc8ef1648893f8365dd) @@ -50,6 +50,7 @@ +