Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs
===================================================================
diff -u -re473fe41d29060803b0d8f560a48ec8b9618bea4 -r0a3678eabc5460352ffbfff25a9dca65edfef546
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs (.../PipingCalculationConfigurationHelper.cs) (revision e473fe41d29060803b0d8f560a48ec8b9618bea4)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/PipingCalculationConfigurationHelper.cs (.../PipingCalculationConfigurationHelper.cs) (revision 0a3678eabc5460352ffbfff25a9dca65edfef546)
@@ -17,16 +17,18 @@
/// and the .
///
/// Surface lines to generate the structure for and to use to configure
- /// with.
+ /// with.
/// The soil models from which profiles are taken to configure with.
+ ///
+ ///
///
- public static IEnumerable GenerateCalculationsStructure(IEnumerable surfaceLines, IEnumerable soilModels)
+ public static IEnumerable GenerateCalculationsStructure(IEnumerable surfaceLines, IEnumerable soilModels, GeneralPipingInput generalInput, SemiProbabilisticPipingInput semiProbabilisticInput)
{
if (surfaceLines == null)
{
return Enumerable.Empty();
}
- var pipingCalculationGroups = surfaceLines.Select(sl => CreateCalculationGroup(sl, soilModels));
+ var pipingCalculationGroups = surfaceLines.Select(sl => CreateCalculationGroup(sl, soilModels, generalInput, semiProbabilisticInput));
return pipingCalculationGroups;
}
@@ -58,26 +60,26 @@
return soilProfileObjectsForCalculation;
}
- private static IPipingCalculationItem CreateCalculationGroup(RingtoetsPipingSurfaceLine surfaceLine, IEnumerable soilModels)
+ private static IPipingCalculationItem CreateCalculationGroup(RingtoetsPipingSurfaceLine surfaceLine, IEnumerable soilModels, GeneralPipingInput generalInput, SemiProbabilisticPipingInput semiProbabilisticInput)
{
var pipingCalculationGroup = new PipingCalculationGroup(surfaceLine.Name, true);
if (soilModels != null)
{
foreach (var profile in GetPipingSoilProfilesForSurfaceLine(surfaceLine, soilModels))
{
- pipingCalculationGroup.Children.Add(CreatePipingCalculation(surfaceLine, profile, pipingCalculationGroup.Children));
+ pipingCalculationGroup.Children.Add(CreatePipingCalculation(surfaceLine, profile, pipingCalculationGroup.Children, generalInput, semiProbabilisticInput));
}
}
return pipingCalculationGroup;
}
- private static IPipingCalculationItem CreatePipingCalculation(RingtoetsPipingSurfaceLine surfaceLine, PipingSoilProfile profile, IEnumerable calculations)
+ private static IPipingCalculationItem CreatePipingCalculation(RingtoetsPipingSurfaceLine surfaceLine, PipingSoilProfile profile, IEnumerable calculations, GeneralPipingInput generalInput, SemiProbabilisticPipingInput semiProbabilisticInput)
{
var nameBase = string.Format("{0} {1}", surfaceLine.Name, profile.Name);
var name = NamingHelper.GetUniqueName(calculations, nameBase, c => c.Name);
- return new PipingCalculation(new GeneralPipingInput(), new SemiProbabilisticPipingInput())
+ return new PipingCalculation(generalInput, semiProbabilisticInput)
{
Name = name,
InputParameters =
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs
===================================================================
diff -u -r7b59ab6aaa9f81445151848d8b3aa651062ee6b7 -r0a3678eabc5460352ffbfff25a9dca65edfef546
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 7b59ab6aaa9f81445151848d8b3aa651062ee6b7)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 0a3678eabc5460352ffbfff25a9dca65edfef546)
@@ -587,7 +587,7 @@
{
var dialog = new PipingSurfaceLineSelectionDialog(Parent, pipingFailureMechanism.SurfaceLines);
dialog.ShowDialog();
- foreach(var item in PipingCalculationConfigurationHelper.GenerateCalculationsStructure(dialog.SelectedSurfaceLines, pipingFailureMechanism.StochasticSoilModels))
+ foreach (var item in PipingCalculationConfigurationHelper.GenerateCalculationsStructure(dialog.SelectedSurfaceLines, (IEnumerable)pipingFailureMechanism.StochasticSoilModels, pipingFailureMechanism.GeneralInput, pipingFailureMechanism.SemiProbabilisticInput))
{
pipingCalculationGroup.Children.Add(item);
}
Index: Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs
===================================================================
diff -u -r7b59ab6aaa9f81445151848d8b3aa651062ee6b7 -r0a3678eabc5460352ffbfff25a9dca65edfef546
--- Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 7b59ab6aaa9f81445151848d8b3aa651062ee6b7)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Plugin/PipingGuiPlugin.cs (.../PipingGuiPlugin.cs) (revision 0a3678eabc5460352ffbfff25a9dca65edfef546)
@@ -764,14 +764,14 @@
var view = new PipingSurfaceLineSelectionDialog(Gui.MainWindow, nodeData.AvailablePipingSurfaceLines);
view.ShowDialog();
- GeneratePipingCalculations(nodeData.WrappedData, view.SelectedSurfaceLines, nodeData.AvailableStochasticSoilModels);
+ GeneratePipingCalculations(nodeData.WrappedData, view.SelectedSurfaceLines, nodeData.AvailableStochasticSoilModels, nodeData.PipingFailureMechanism.GeneralInput, nodeData.PipingFailureMechanism.SemiProbabilisticInput);
nodeData.NotifyObservers();
}
- private void GeneratePipingCalculations(PipingCalculationGroup target, IEnumerable surfaceLines, IEnumerable soilModels)
+ private void GeneratePipingCalculations(PipingCalculationGroup target, IEnumerable surfaceLines, IEnumerable soilModels, GeneralPipingInput generalInput, SemiProbabilisticPipingInput semiProbabilisticInput)
{
- foreach (var group in PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, soilModels))
+ foreach (var group in PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, soilModels, generalInput, semiProbabilisticInput))
{
target.Children.Add(group);
}
Index: Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PipingCalculationConfigurationHelperTest.cs
===================================================================
diff -u -r3227558c8a8b0542e82d0597f0fc480954a6a44d -r0a3678eabc5460352ffbfff25a9dca65edfef546
--- Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PipingCalculationConfigurationHelperTest.cs (.../PipingCalculationConfigurationHelperTest.cs) (revision 3227558c8a8b0542e82d0597f0fc480954a6a44d)
+++ Ringtoets/Piping/test/Ringtoets.Piping.Forms.Test/PipingCalculationConfigurationHelperTest.cs (.../PipingCalculationConfigurationHelperTest.cs) (revision 0a3678eabc5460352ffbfff25a9dca65edfef546)
@@ -1,8 +1,10 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.Linq;
using Core.Common.Base.Geometry;
using NUnit.Framework;
using Ringtoets.Piping.Data;
+using Ringtoets.Piping.Data.TestUtil;
using Ringtoets.Piping.Primitives;
namespace Ringtoets.Piping.Forms.Test
@@ -230,7 +232,7 @@
new PipingSoilLayer(-5.0),
new PipingSoilLayer(-2.0),
new PipingSoilLayer(1.0)
- }, SoilProfileType.SoilProfile1D, 1);
+ }, SoilProfileType.SoilProfile1D, 1);
var soilProfile2 = new PipingSoilProfile("Profile 2", -8.0, new[]
{
new PipingSoilLayer(-4.0),
@@ -250,7 +252,7 @@
new StochasticSoilProfile(1.0, SoilProfileType.SoilProfile1D, 1)
{
SoilProfile = soilProfile1
- },
+ }
});
var soilModel2 = new StochasticSoilModel(1, "A", "B");
@@ -300,7 +302,7 @@
public void GenerateCalculationsStructure_WithoutSurfaceLines_ReturnsEmptyCollection()
{
// Call
- var result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(null, null).ToList();
+ var result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(null, null, null, null).ToList();
// Assert
Assert.AreEqual(0, result.Count);
@@ -310,13 +312,111 @@
public void GenerateCalculationsStructure_WithEmptySurfaceLines_ReturnsEmptyCollection()
{
// Call
- var result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(Enumerable.Empty(), null).ToList();
+ var result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(Enumerable.Empty(), null, null, null).ToList();
// Assert
Assert.AreEqual(0, result.Count);
}
[Test]
+ public void GenerateCalculationsStructure_WithSurfaceLineAndSoilModelWithoutGeneralInput_ThrowsArgumentNullException()
+ {
+ // Setup
+ var soilProfile1 = new PipingSoilProfile("Profile 1", -10.0, new[]
+ {
+ new PipingSoilLayer(-5.0),
+ new PipingSoilLayer(-2.0),
+ new PipingSoilLayer(1.0)
+ }, SoilProfileType.SoilProfile1D, 1);
+
+ var soilModel = new StochasticSoilModel(1, "A", "B");
+ soilModel.Geometry.AddRange(new[]
+ {
+ new Point2D(1.0, 0.0),
+ new Point2D(5.0, 0.0)
+ });
+ soilModel.StochasticSoilProfiles.Add(
+ new StochasticSoilProfile(0.3, SoilProfileType.SoilProfile1D, 1)
+ {
+ SoilProfile = soilProfile1
+ }
+ );
+ var availableSoilModels = new[]
+ {
+ soilModel
+ };
+
+ var surfaceLine = new RingtoetsPipingSurfaceLine();
+ surfaceLine.SetGeometry(new[]
+ {
+ new Point3D(3.0, 5.0, 0.0),
+ new Point3D(3.0, 0.0, 1.0),
+ new Point3D(3.0, -5.0, 0.0)
+ });
+
+ var surfaceLines = new[]
+ {
+ surfaceLine
+ };
+
+ // Call
+ TestDelegate test = () => PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels, null, new SemiProbabilisticPipingInput()).ToList();
+
+ // Assert
+ var parameter = Assert.Throws(test).ParamName;
+ Assert.AreEqual("generalInputParameters", parameter);
+ }
+
+ [Test]
+ public void GenerateCalculationsStructure_WithSurfaceLineAndSoilModelWithoutSemiProbabilisticInput_ThrowsArgumentNullException()
+ {
+ // Setup
+ var soilProfile1 = new PipingSoilProfile("Profile 1", -10.0, new[]
+ {
+ new PipingSoilLayer(-5.0),
+ new PipingSoilLayer(-2.0),
+ new PipingSoilLayer(1.0)
+ }, SoilProfileType.SoilProfile1D, 1);
+
+ var soilModel = new StochasticSoilModel(1, "A", "B");
+ soilModel.Geometry.AddRange(new[]
+ {
+ new Point2D(1.0, 0.0),
+ new Point2D(5.0, 0.0)
+ });
+ soilModel.StochasticSoilProfiles.Add(
+ new StochasticSoilProfile(0.3, SoilProfileType.SoilProfile1D, 1)
+ {
+ SoilProfile = soilProfile1
+ }
+ );
+ var availableSoilModels = new[]
+ {
+ soilModel
+ };
+
+ var surfaceLine = new RingtoetsPipingSurfaceLine();
+ surfaceLine.SetGeometry(new[]
+ {
+ new Point3D(3.0, 5.0, 0.0),
+ new Point3D(3.0, 0.0, 1.0),
+ new Point3D(3.0, -5.0, 0.0)
+ });
+
+ var surfaceLines = new[]
+ {
+ surfaceLine
+ };
+
+ // Call
+ TestDelegate test = () => PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels, new GeneralPipingInput(), null).ToList();
+
+ // Assert
+ var parameter = Assert.Throws(test).ParamName;
+ Assert.AreEqual("semiProbabilisticInputParameters", parameter);
+ }
+
+ [Test]
public void GenerateCalculationsStructure_WithSurfaceLinesWithoutSoilModels_ReturnsFourEmptyGroups()
{
// Setup
@@ -346,7 +446,7 @@
};
// Call
- var result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(ringtoetsPipingSurfaceLines, null).ToList();
+ var result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(ringtoetsPipingSurfaceLines, null, null, null).ToList();
// Assert
Assert.AreEqual(4, result.Count);
@@ -397,7 +497,7 @@
};
// Call
- var result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(ringtoetsPipingSurfaceLines, Enumerable.Empty()).ToList();
+ var result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(ringtoetsPipingSurfaceLines, Enumerable.Empty(), null, null).ToList();
// Assert
Assert.AreEqual(4, result.Count);
@@ -471,7 +571,7 @@
};
// Call
- IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels).ToList();
+ IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels, new GeneralPipingInput(), new SemiProbabilisticPipingInput()).ToList();
// Assert
Assert.AreEqual(1, result.Count());
@@ -520,7 +620,7 @@
};
// Call
- IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels).ToList();
+ IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels, null, null).ToList();
// Assert
Assert.AreEqual(1, result.Count());
@@ -583,7 +683,7 @@
};
// Call
- IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels).ToList();
+ IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels, null, null).ToList();
// Assert
Assert.AreEqual(1, result.Count());
@@ -622,7 +722,7 @@
new StochasticSoilProfile(1.0, SoilProfileType.SoilProfile1D, 1)
{
SoilProfile = soilProfile1
- },
+ }
});
var soilModel2 = new StochasticSoilModel(1, "A", "B");
@@ -658,7 +758,7 @@
};
// Call
- IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels).ToList();
+ IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels, new GeneralPipingInput(), new SemiProbabilisticPipingInput()).ToList();
// Assert
Assert.AreEqual(1, result.Count());
@@ -710,7 +810,7 @@
new StochasticSoilProfile(1.0, SoilProfileType.SoilProfile1D, 2)
{
SoilProfile = soilProfile2
- },
+ }
});
var soilModel2 = new StochasticSoilModel(1, "A", "B");
@@ -760,7 +860,7 @@
};
// Call
- IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels).ToList();
+ IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels, new GeneralPipingInput(), new SemiProbabilisticPipingInput()).ToList();
// Assert
Assert.AreEqual(2, result.Count());
@@ -790,7 +890,7 @@
}
[Test]
- public void GenerateCalculationsStructure_Always_CreateCalculationsWithSurfaceLineNameAndSoilProfileName()
+ public void GenerateCalculationsStructure_Always_CreateCalculationsWithSurfaceLineNameSoilProfileNameGeneralInputAndSemiProbabilisticInput()
{
// Setup
var soilProfile1 = new PipingSoilProfile("Profile 1", -10.0, new[]
@@ -844,17 +944,26 @@
surfaceLine
};
+ GeneralPipingInput generalInput = new GeneralPipingInput();
+ SemiProbabilisticPipingInput semiProbabilisticInput = new SemiProbabilisticPipingInput();
+
// Call
- IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels).ToList();
+ IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels, generalInput, semiProbabilisticInput).ToList();
// Assert
var group = result.First(sl => sl.Name == surfaceLine.Name) as PipingCalculationGroup;
Assert.NotNull(group);
- var calculationInput1 = (PipingCalculation)group.Children[0];
- var calculationInput2 = (PipingCalculation)group.Children[1];
+ var calculationInput1 = (PipingCalculation) group.Children[0];
+ var calculationInput2 = (PipingCalculation) group.Children[1];
Assert.AreEqual(string.Format("{0} {1}", surfaceLine.Name, soilProfile1.Name), calculationInput1.Name);
Assert.AreEqual(string.Format("{0} {1}", surfaceLine.Name, soilProfile2.Name), calculationInput2.Name);
+
+ Assert.AreSame(semiProbabilisticInput, calculationInput1.SemiProbabilisticParameters);
+ Assert.AreSame(semiProbabilisticInput, calculationInput2.SemiProbabilisticParameters);
+
+ CompareGeneralInputToInput(generalInput, calculationInput1);
+ CompareGeneralInputToInput(generalInput, calculationInput2);
}
[Test]
@@ -924,20 +1033,35 @@
};
// Call
- IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels).ToList();
+ IEnumerable result = PipingCalculationConfigurationHelper.GenerateCalculationsStructure(surfaceLines, availableSoilModels, new GeneralPipingInput(), new SemiProbabilisticPipingInput()).ToList();
// Assert
var group = result.First(sl => sl.Name == surfaceLine.Name) as PipingCalculationGroup;
Assert.NotNull(group);
- var calculationInput1 = (PipingCalculation)group.Children[0];
- var calculationInput2 = (PipingCalculation)group.Children[1];
- var calculationInput3 = (PipingCalculation)group.Children[2];
+ var calculationInput1 = (PipingCalculation) group.Children[0];
+ var calculationInput2 = (PipingCalculation) group.Children[1];
+ var calculationInput3 = (PipingCalculation) group.Children[2];
Assert.AreEqual(string.Format("{0} {1}", surfaceLine.Name, soilProfile1.Name), calculationInput1.Name);
Assert.AreEqual(string.Format("{0} {1} (1)", surfaceLine.Name, soilProfile2.Name), calculationInput2.Name);
Assert.AreEqual(string.Format("{0} {1} (2)", surfaceLine.Name, soilProfile3.Name), calculationInput3.Name);
}
#endregion
+
+ private static void CompareGeneralInputToInput(GeneralPipingInput generalInput, PipingCalculation calculationInput)
+ {
+ Assert.AreEqual(generalInput.BeddingAngle, calculationInput.InputParameters.BeddingAngle);
+ Assert.AreEqual(generalInput.CriticalHeaveGradient, calculationInput.InputParameters.CriticalHeaveGradient);
+ Assert.AreEqual(generalInput.Gravity, calculationInput.InputParameters.Gravity);
+ Assert.AreEqual(generalInput.MeanDiameter70, calculationInput.InputParameters.MeanDiameter70);
+ Assert.AreEqual(generalInput.SandParticlesVolumicWeight, calculationInput.InputParameters.SandParticlesVolumicWeight);
+ Assert.AreEqual(generalInput.SellmeijerModelFactor, calculationInput.InputParameters.SellmeijerModelFactor);
+ Assert.AreEqual(generalInput.SellmeijerReductionFactor, calculationInput.InputParameters.SellmeijerReductionFactor);
+ Assert.AreEqual(generalInput.UpliftModelFactor, calculationInput.InputParameters.UpliftModelFactor);
+ Assert.AreEqual(generalInput.WaterKinematicViscosity, calculationInput.InputParameters.WaterKinematicViscosity);
+ Assert.AreEqual(generalInput.WaterVolumetricWeight, calculationInput.InputParameters.WaterVolumetricWeight);
+ Assert.AreEqual(generalInput.WhitesDragCoefficient, calculationInput.InputParameters.WhitesDragCoefficient);
+ }
}
}
\ No newline at end of file