Index: DeltaShell.sln
===================================================================
diff -u -rbf4322caa6a74c61bf905b8156f6110aa07f9afc -r0cc887bb46e8cd47745f5743311902faa4c6bc87
--- DeltaShell.sln (.../DeltaShell.sln) (revision bf4322caa6a74c61bf905b8156f6110aa07f9afc)
+++ DeltaShell.sln (.../DeltaShell.sln) (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -130,13 +130,13 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Forms", "src\Plugins\Wti\Wti.Forms\Wti.Forms.csproj", "{7CD038E1-E111-4969-ACED-22C5BD2974E1}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Calculation", "src\Plugins\Wti\Wti.Calculation\Wti.Calculation.csproj", "{D64E4F0E-E341-496F-82B2-941AD202B4E3}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Calculation", "src\Plugins\Ringtoets\Piping\src\Ringtoets.Piping.Calculation\Wti.Calculation.csproj", "{D64E4F0E-E341-496F-82B2-941AD202B4E3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ringtoets.Piping.Plugin", "src\Plugins\Ringtoets\Piping\src\Ringtoets.Piping.Plugin\Ringtoets.Piping.Plugin.csproj", "{1D3D58B6-EF7E-401E-92A0-104067D222EE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wti", "Wti", "{BC862348-6B4E-49EA-9099-2E5BE6DC183A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Calculation.Test", "test\Plugins\Wti\Wti.Calculation.Test\Wti.Calculation.Test.csproj", "{91389DA2-3FF4-4559-90B3-4061549789DD}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Calculation.Test", "src\Plugins\Ringtoets\Piping\test\Ringtoets.Piping.Calculation.Test\Wti.Calculation.Test.csproj", "{91389DA2-3FF4-4559-90B3-4061549789DD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Forms.Test", "test\Plugins\Wti\Wti.Forms.Test\Wti.Forms.Test.csproj", "{622A8282-D872-4DD5-8B70-578A403F74FF}"
EndProject
@@ -160,7 +160,7 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Base", "src\Common\Wti.Base\Wti.Base.csproj", "{C90B77DA-E421-43CC-B82E-529651BC21AC}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Calculation.TestUtil", "test\Plugins\Wti\Wti.Calculation.TestUtil\Wti.Calculation.TestUtil.csproj", "{27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Calculation.TestUtil", "src\Plugins\Ringtoets\Piping\test\Ringtoets.Piping.Calculation.TestUtil\Wti.Calculation.TestUtil.csproj", "{27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Wti.Data.TestUtil", "test\Plugins\Wti\Wti.Data.TestUtil\Wti.Data.TestUtil.csproj", "{955E574D-67CE-4347-AA6B-7DF8A04ED754}"
EndProject
@@ -523,21 +523,21 @@
{CE994CC9-6F6A-48AC-B4BE-02C30A21F4DB} = {C9DA93BC-1034-4D15-AD4E-773E3F560179}
{35B87B7A-7F50-4139-B563-589EE522B1ED} = {C9DA93BC-1034-4D15-AD4E-773E3F560179}
{7CD038E1-E111-4969-ACED-22C5BD2974E1} = {C9DA93BC-1034-4D15-AD4E-773E3F560179}
- {D64E4F0E-E341-496F-82B2-941AD202B4E3} = {C9DA93BC-1034-4D15-AD4E-773E3F560179}
{F3A82DA4-A377-4009-A424-EFC8839913ED} = {5A029776-37C6-4622-A4E9-9DB9E8E935AB}
- {91389DA2-3FF4-4559-90B3-4061549789DD} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A}
{622A8282-D872-4DD5-8B70-578A403F74FF} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A}
{E4B0E068-F1A3-47BA-965F-0EC1E78E530A} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A}
{19EB1C52-D90B-40F2-A7AF-364CC5D89F68} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A}
- {27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A}
{955E574D-67CE-4347-AA6B-7DF8A04ED754} = {BC862348-6B4E-49EA-9099-2E5BE6DC183A}
{0FA77E45-C347-4677-9DA0-4C330D1440D5} = {F3A82DA4-A377-4009-A424-EFC8839913ED}
{C2EEB390-385B-4471-ABB8-9C1F1A8D0C11} = {F3A82DA4-A377-4009-A424-EFC8839913ED}
{3CCB05DB-C7B3-4EF7-B41D-22B6D2A3774E} = {C4E268AD-A25B-4F47-8F92-E5137FDF7CC7}
{1D3D58B6-EF7E-401E-92A0-104067D222EE} = {0FA77E45-C347-4677-9DA0-4C330D1440D5}
{10B8D63D-87E8-46DF-ACA9-A8CF22EE8FB5} = {0FA77E45-C347-4677-9DA0-4C330D1440D5}
+ {D64E4F0E-E341-496F-82B2-941AD202B4E3} = {0FA77E45-C347-4677-9DA0-4C330D1440D5}
{9A5C8069-520E-49D3-AA62-E8FB19614A27} = {C2EEB390-385B-4471-ABB8-9C1F1A8D0C11}
{D783543B-46A1-4848-A812-AF5A5259ED7E} = {C2EEB390-385B-4471-ABB8-9C1F1A8D0C11}
+ {91389DA2-3FF4-4559-90B3-4061549789DD} = {C2EEB390-385B-4471-ABB8-9C1F1A8D0C11}
+ {27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8} = {C2EEB390-385B-4471-ABB8-9C1F1A8D0C11}
{4AD99020-8612-46E5-A313-F9ADA7B196E4} = {0D2E4E16-EE0A-4E50-9218-947B1D91C84D}
EndGlobalSection
GlobalSection(TextTemplating) = postSolution
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculation.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculation.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculation.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,194 @@
+using System.Collections.Generic;
+using System.Linq;
+using Deltares.WTIPiping;
+
+using Wti.Calculation.Properties;
+
+namespace Wti.Calculation.Piping
+{
+ ///
+ /// This class represents a combination of piping sub-calculations, which together can be used
+ /// to assess based on piping.
+ ///
+ public class PipingCalculation
+ {
+ private readonly PipingCalculationInput input;
+
+ ///
+ /// Constructs a new . The is used to
+ /// obtain the parameters used in the different sub calculations.
+ ///
+ /// The containing all the values required
+ /// for performing a piping calculation.
+ public PipingCalculation(PipingCalculationInput input)
+ {
+ this.input = input;
+ }
+
+ ///
+ /// Performs the actual sub calculations and returns a , which
+ /// contains the results of all sub calculations.
+ ///
+ /// A containing the results of the sub calculations.
+ /// Thrown when any of the invocations of the sub-calculations from the kernel throws an Exception.
+ public PipingCalculationResult Calculate()
+ {
+ var upliftResult = CalculateUplift();
+ var heaveResult = CalculateHeave();
+ var sellmeijerResult = CalculateSellmeijer();
+
+ return new PipingCalculationResult(
+ upliftResult.Zu,
+ upliftResult.FoSu,
+ heaveResult.Zh,
+ heaveResult.FoSh,
+ sellmeijerResult.Zp,
+ sellmeijerResult.FoSp
+ );
+ }
+
+ ///
+ /// Returns a list of validation messages. The validation messages are based on the values of the
+ /// which was provided to this and are determined by the Piping kernel.
+ ///
+ public List Validate()
+ {
+ List upliftCalculatorValidationResults = input.SurfaceLine != null ?
+ CreateUpliftCalculator().Validate() :
+ new List(new[]
+ {
+ Resources.PipingCalculation_Validate_Lacks_surfaceline_uplift
+ });
+ List heaveCalculatorValidationResults = CreateHeaveCalculator().Validate();
+ List sellmeijerCalculatorValidationResults = CreateSellmeijerCalculator().Validate();
+
+ return upliftCalculatorValidationResults.Concat(heaveCalculatorValidationResults).Concat(sellmeijerCalculatorValidationResults).ToList();
+ }
+
+ private Sellmeijer2011Calculator CalculateSellmeijer()
+ {
+ Sellmeijer2011Calculator sellmeijerCalculator = CreateSellmeijerCalculator();
+
+ try
+ {
+ sellmeijerCalculator.Calculate();
+ }
+ catch (PipingException e)
+ {
+ throw new PipingCalculationException(e.Message, e);
+ }
+ catch (PipingException e)
+ {
+ throw new PipingCalculationException(e.Message, e);
+ }
+
+ return sellmeijerCalculator;
+ }
+
+ private HeaveCalculator CalculateHeave()
+ {
+ var heaveCalculator = CreateHeaveCalculator();
+
+ try
+ {
+ heaveCalculator.Calculate();
+ }
+ catch (PipingException e)
+ {
+ throw new PipingCalculationException(e.Message, e);
+ }
+
+ return heaveCalculator;
+ }
+
+ private WTIUpliftCalculator CalculateUplift()
+ {
+ WTIUpliftCalculator upliftCalculator = CreateUpliftCalculator();
+
+ try
+ {
+ upliftCalculator.Calculate();
+ }
+ catch (WTIUpliftCalculatorException e)
+ {
+ throw new PipingCalculationException(e.Message, e);
+ }
+ catch (PipingException e)
+ {
+ throw new PipingCalculationException(e.Message, e);
+ }
+
+ return upliftCalculator;
+ }
+
+ private HeaveCalculator CreateHeaveCalculator()
+ {
+ var calculator = new HeaveCalculator
+ {
+ Ich = input.CriticalHeaveGradient,
+ PhiExit = input.PiezometricHeadExit,
+ DTotal = input.ThicknessCoverageLayer,
+ PhiPolder = input.PiezometricHeadPolder,
+ RExit = input.DampingFactorExit,
+ HExit = input.PhreaticLevelExit
+ };
+ return calculator;
+ }
+
+ private WTIUpliftCalculator CreateUpliftCalculator()
+ {
+ var effectiveStressResult = CalculateEffectiveThickness();
+
+ var calculator = new WTIUpliftCalculator
+ {
+ VolumetricWeightOfWater = input.WaterVolumetricWeight,
+ ModelFactorUplift = input.UpliftModelFactor,
+ EffectiveStress = effectiveStressResult.EffectiveStress,
+ HRiver = input.AssessmentLevel,
+ PhiExit = input.PiezometricHeadExit,
+ RExit = input.DampingFactorExit,
+ HExit = input.PhreaticLevelExit,
+ PhiPolder = input.PiezometricHeadPolder
+ };
+ return calculator;
+ }
+
+ private Sellmeijer2011Calculator CreateSellmeijerCalculator()
+ {
+ var calculator = new Sellmeijer2011Calculator
+ {
+ ModelFactorPiping = input.SellmeijerModelFactor,
+ HRiver = input.AssessmentLevel,
+ HExit = input.PhreaticLevelExit,
+ Rc = input.SellmeijerReductionFactor,
+ DTotal = input.ThicknessCoverageLayer,
+ SeepageLength = input.SeepageLength,
+ GammaSubParticles = input.SandParticlesVolumicWeight,
+ WhitesDragCoefficient = input.WhitesDragCoefficient,
+ D70 = input.Diameter70,
+ VolumetricWeightOfWater = input.WaterVolumetricWeight,
+ DarcyPermeability = input.DarcyPermeability,
+ KinematicViscosityWater = input.WaterKinematicViscosity,
+ Gravity = input.Gravity,
+ DAquifer = input.ThicknessAquiferLayer,
+ D70Mean = input.MeanDiameter70,
+ BeddingAngle = input.BeddingAngle
+ };
+ return calculator;
+ }
+
+ private EffectiveThicknessCalculator CalculateEffectiveThickness()
+ {
+ var calculator = new EffectiveThicknessCalculator
+ {
+ ExitPointXCoordinate = input.ExitPointXCoordinate,
+ PhreaticLevel = input.PhreaticLevelExit,
+ SoilProfile = PipingProfileCreator.Create(),
+ SurfaceLine = PipingSurfaceLineCreator.Create(input.SurfaceLine),
+ VolumicWeightOfWater = input.WaterVolumetricWeight
+ };
+ calculator.Calculate();
+ return calculator;
+ }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculationException.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculationException.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculationException.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,35 @@
+using System;
+
+namespace Wti.Calculation.Piping
+{
+ ///
+ /// Exception thrown when something went wrong in the
+ ///
+ public class PipingCalculationException : Exception
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public PipingCalculationException()
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class
+ /// with a specified error message.
+ ///
+ /// The message that describes the error.
+ public PipingCalculationException(string message) : base (message)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the System.Exception class with a specified error message
+ /// and a reference to the inner exception that is the cause of this exception.
+ ///
+ /// The error message that explains the reason for the exception.
+ /// The exception that is the cause of the current exception, or a
+ /// null reference if no inner exception is specified.
+ public PipingCalculationException(string message, Exception innerException) : base(message, innerException) {}
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculationInput.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculationInput.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculationInput.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,361 @@
+using Wti.Data;
+
+namespace Wti.Calculation.Piping
+{
+ ///
+ /// This class contains all the parameters that are required to perform a piping assessment.
+ ///
+ public class PipingCalculationInput
+ {
+ private readonly double waterVolumetricWeight;
+ private readonly double upliftModelFactor;
+ private readonly double assessmentLevel;
+ private readonly double piezometricHeadExit;
+ private readonly double dampingFactorExit;
+ private readonly double phreaticLevelExit;
+ private readonly double piezometricHeadPolder;
+ private readonly double criticalHeaveGradient;
+ private readonly double thicknessCoverageLayer;
+ private readonly double sellmeijerModelFactor;
+ private readonly double sellmeijerReductionFactor;
+ private readonly double seepageLength;
+ private readonly double sandParticlesVolumicWeight;
+ private readonly double whitesDragCoefficient;
+ private readonly double diameter70;
+ private readonly double darcyPermeability;
+ private readonly double waterKinematicViscosity;
+ private readonly double gravity;
+ private readonly double thicknessAquiferLayer;
+ private readonly double meanDiameter70;
+ private readonly double beddingAngle;
+ private readonly double exitPointXCoordinate;
+ private readonly RingtoetsPipingSurfaceLine surfaceLine;
+
+ ///
+ /// Constructs a new , which contains values for the parameters used
+ /// in the piping sub calculations.
+ ///
+ /// The volumetric weight of water. [kN/m³]
+ /// The calculation value used to account for uncertainty in the model for uplift.
+ /// The outside high water level. [m]
+ /// The piezometric head at the exit point. [m]
+ /// The damping factor at the exit point.
+ /// The phreatic level at the exit point. [m]
+ /// The piezometric head in the hinterland. [m]
+ /// The critical exit gradient for heave.
+ /// The total thickness of the coverage layer at the exit point. [m]
+ /// The calculation value used to account for uncertainty in the model for Sellmeijer.
+ /// The reduction factor Sellmeijer.
+ /// The horizontal distance between entree and exit point. [m]
+ /// The (lowerbound) volumic weight of sand grain material of a sand layer under water. [kN/m³]
+ /// The White's drag coefficient.
+ /// The sieve size through which 70% fraction of the grains of the top part of the aquifer passes. [m]
+ /// The Darcy-speed with which water flows through the aquifer layer. [m/s]
+ /// The kinematic viscosity of water at 10 degrees Celsius. [m²/s]
+ /// The gravitational acceleration. [m/s²]
+ /// The thickness of the aquifer layer. [m]
+ /// The mean diameter of small scale tests applied to different kinds of sand, on which the formula of Sellmeijer has been fit. [m]
+ /// The angle of the force balance representing the amount in which sand grains resist rolling. [°]
+ /// The x coordinate of the exit point. [m]
+ /// The surface line.
+ public PipingCalculationInput(double waterVolumetricWeight, double upliftModelFactor, double assessmentLevel, double piezometricHeadExit, double dampingFactorExit, double phreaticLevelExit, double piezometricHeadPolder, double criticalHeaveGradient, double thicknessCoverageLayer, double sellmeijerModelFactor, double sellmeijerReductionFactor, double seepageLength, double sandParticlesVolumicWeight, double whitesDragCoefficient, double diameter70, double darcyPermeability, double waterKinematicViscosity, double gravity, double thicknessAquiferLayer, double meanDiameter70, double beddingAngle, double exitPointXCoordinate, RingtoetsPipingSurfaceLine surfaceLine)
+ {
+ this.waterVolumetricWeight = waterVolumetricWeight;
+ this.upliftModelFactor = upliftModelFactor;
+ this.assessmentLevel = assessmentLevel;
+ this.piezometricHeadExit = piezometricHeadExit;
+ this.dampingFactorExit = dampingFactorExit;
+ this.phreaticLevelExit = phreaticLevelExit;
+ this.piezometricHeadPolder = piezometricHeadPolder;
+ this.criticalHeaveGradient = criticalHeaveGradient;
+ this.thicknessCoverageLayer = thicknessCoverageLayer;
+ this.sellmeijerModelFactor = sellmeijerModelFactor;
+ this.sellmeijerReductionFactor = sellmeijerReductionFactor;
+ this.seepageLength = seepageLength;
+ this.sandParticlesVolumicWeight = sandParticlesVolumicWeight;
+ this.whitesDragCoefficient = whitesDragCoefficient;
+ this.diameter70 = diameter70;
+ this.darcyPermeability = darcyPermeability;
+ this.waterKinematicViscosity = waterKinematicViscosity;
+ this.gravity = gravity;
+ this.thicknessAquiferLayer = thicknessAquiferLayer;
+ this.meanDiameter70 = meanDiameter70;
+ this.beddingAngle = beddingAngle;
+ this.exitPointXCoordinate = exitPointXCoordinate;
+ this.surfaceLine = surfaceLine;
+ }
+
+ #region properties
+
+ ///
+ /// Gets the volumetric weight of water.
+ /// [kN/m³]
+ ///
+ public double WaterVolumetricWeight
+ {
+ get
+ {
+ return waterVolumetricWeight;
+ }
+ }
+
+ ///
+ /// Gets the calculation value used to account for uncertainty in the model for uplift.
+ ///
+ public double UpliftModelFactor
+ {
+ get
+ {
+ return upliftModelFactor;
+ }
+ }
+
+ ///
+ /// Gets the outside high water level.
+ /// [m]
+ ///
+ public double AssessmentLevel
+ {
+ get
+ {
+ return assessmentLevel;
+ }
+ }
+
+ ///
+ /// Gets the piezometric head at the exit point.
+ /// [m]
+ ///
+ public double PiezometricHeadExit
+ {
+ get
+ {
+ return piezometricHeadExit;
+ }
+ }
+
+ ///
+ /// Gets the damping factor at the exit point.
+ ///
+ public double DampingFactorExit
+ {
+ get
+ {
+ return dampingFactorExit;
+ }
+ }
+
+ ///
+ /// Gets the phreatic level at the exit point.
+ /// [m]
+ ///
+ public double PhreaticLevelExit
+ {
+ get
+ {
+ return phreaticLevelExit;
+ }
+ }
+
+ ///
+ /// Gets the piezometric head in the hinterland.
+ /// [m]
+ ///
+ public double PiezometricHeadPolder
+ {
+ get
+ {
+ return piezometricHeadPolder;
+ }
+ }
+
+ ///
+ /// Gets the critical exit gradient for heave.
+ ///
+ public double CriticalHeaveGradient
+ {
+ get
+ {
+ return criticalHeaveGradient;
+ }
+ }
+
+ ///
+ /// Gets the total thickness of the coverage layer at the exit point.
+ /// [m]
+ ///
+ public double ThicknessCoverageLayer
+ {
+ get
+ {
+ return thicknessCoverageLayer;
+ }
+ }
+
+ ///
+ /// Gets the calculation value used to account for uncertainty in the model for Sellmeijer.
+ ///
+ public double SellmeijerModelFactor
+ {
+ get
+ {
+ return sellmeijerModelFactor;
+ }
+ }
+
+ ///
+ /// Gets the reduction factor Sellmeijer.
+ ///
+ public double SellmeijerReductionFactor
+ {
+ get
+ {
+ return sellmeijerReductionFactor;
+ }
+ }
+
+ ///
+ /// Gets the horizontal distance between entree and exit point.
+ /// [m]
+ ///
+ public double SeepageLength
+ {
+ get
+ {
+ return seepageLength;
+ }
+ }
+
+ ///
+ /// Gets the (lowerbound) volumic weight of sand grain material of a sand layer under water.
+ /// [kN/m³]
+ ///
+ public double SandParticlesVolumicWeight
+ {
+ get
+ {
+ return sandParticlesVolumicWeight;
+ }
+ }
+
+ ///
+ /// Gets the White's drag coefficient.
+ ///
+ public double WhitesDragCoefficient
+ {
+ get
+ {
+ return whitesDragCoefficient;
+ }
+ }
+
+ ///
+ /// Gets the sieve size through which 70% fraction of the grains of the top part of the aquifer passes.
+ /// [m]
+ ///
+ public double Diameter70
+ {
+ get
+ {
+ return diameter70;
+ }
+ }
+
+ ///
+ /// Gets the Darcy-speed with which water flows through the aquifer layer.
+ /// [m/s]
+ ///
+ public double DarcyPermeability
+ {
+ get
+ {
+ return darcyPermeability;
+ }
+ }
+
+ ///
+ /// Gets the kinematic viscosity of water at 10 degrees Celsius.
+ /// [m²/s]
+ ///
+ public double WaterKinematicViscosity
+ {
+ get
+ {
+ return waterKinematicViscosity;
+ }
+ }
+
+ ///
+ /// Gets the gravitational acceleration.
+ /// [m/s²]
+ ///
+ public double Gravity
+ {
+ get
+ {
+ return gravity;
+ }
+ }
+
+ ///
+ /// Gets the thickness of the aquifer layer.
+ /// [m]
+ ///
+ public double ThicknessAquiferLayer
+ {
+ get
+ {
+ return thicknessAquiferLayer;
+ }
+ }
+
+ ///
+ /// Gets the mean diameter of small scale tests applied to different kinds of sand, on which the formula of Sellmeijer has been fit.
+ /// [m]
+ ///
+ public double MeanDiameter70
+ {
+ get
+ {
+ return meanDiameter70;
+ }
+ }
+
+ ///
+ /// Gets the angle of the force balance representing the amount in which sand grains resist rolling.
+ /// [°]
+ ///
+ public double BeddingAngle
+ {
+ get
+ {
+ return beddingAngle;
+ }
+ }
+
+ ///
+ /// Gets the x coordinate of the exit point.
+ /// [m]
+ ///
+ public double ExitPointXCoordinate
+ {
+ get
+ {
+ return exitPointXCoordinate;
+ }
+ }
+
+ ///
+ /// Gets the surface line.
+ ///
+ public RingtoetsPipingSurfaceLine SurfaceLine
+ {
+ get
+ {
+ return surfaceLine;
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculationResult.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculationResult.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingCalculationResult.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,104 @@
+namespace Wti.Calculation.Piping
+{
+ ///
+ /// This class contains all the results of a complete piping calculation.
+ ///
+ public class PipingCalculationResult
+ {
+ private readonly double upliftZValue;
+ private readonly double upliftFactorOfSafety;
+ private readonly double heaveZValue;
+ private readonly double heaveFactorOfSafety;
+ private readonly double sellmeijerZValue;
+ private readonly double sellmeijerFactorOfSafety;
+
+ ///
+ /// Constructs a new . The result will hold all the values which were given.
+ ///
+ /// The z-value of the Uplift sub calculation.
+ /// The factory of safety of the Uplift sub calculation.
+ /// The z-value of the Heave sub calculation.
+ /// The factory of safety of the Heave sub calculation.
+ /// The z-value of the Sellmeijer sub calculation.
+ /// The factory of safety of the Sellmeijer sub calculation.
+ public PipingCalculationResult(double upliftZValue, double upliftFactorOfSafety, double heaveZValue, double heaveFactorOfSafety, double sellmeijerZValue, double sellmeijerFactorOfSafety)
+ {
+ this.upliftZValue = upliftZValue;
+ this.upliftFactorOfSafety = upliftFactorOfSafety;
+ this.heaveZValue = heaveZValue;
+ this.heaveFactorOfSafety = heaveFactorOfSafety;
+ this.sellmeijerZValue = sellmeijerZValue;
+ this.sellmeijerFactorOfSafety = sellmeijerFactorOfSafety;
+ }
+
+ #region properties
+
+ ///
+ /// Gets the z-value of the Uplift sub calculation.
+ ///
+ public double UpliftZValue
+ {
+ get
+ {
+ return upliftZValue;
+ }
+ }
+
+ ///
+ /// Gets the factory of safety of the Uplift sub calculation.
+ ///
+ public double UpliftFactorOfSafety
+ {
+ get
+ {
+ return upliftFactorOfSafety;
+ }
+ }
+
+ ///
+ /// Gets the z-value of the Heave sub calculation.
+ ///
+ public double HeaveZValue
+ {
+ get
+ {
+ return heaveZValue;
+ }
+ }
+
+ ///
+ /// Gets the factory of safety of the Heave sub calculation.
+ ///
+ public double HeaveFactorOfSafety
+ {
+ get
+ {
+ return heaveFactorOfSafety;
+ }
+ }
+
+ ///
+ /// Gets the z-value of the Sellmeijer sub calculation.
+ ///
+ public double SellmeijerZValue
+ {
+ get
+ {
+ return sellmeijerZValue;
+ }
+ }
+
+ ///
+ /// Gets the factory of safety of the Sellmeijer sub calculation.
+ ///
+ public double SellmeijerFactorOfSafety
+ {
+ get
+ {
+ return sellmeijerFactorOfSafety;
+ }
+ }
+
+ #endregion
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingProfileCreator.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingProfileCreator.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingProfileCreator.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,26 @@
+using Deltares.WTIPiping;
+
+namespace Wti.Calculation.Piping
+{
+ ///
+ /// Creates instances which are required by the .
+ ///
+ internal static class PipingProfileCreator
+ {
+ ///
+ /// Creates a simple with a single default constructed .
+ ///
+ ///
+ public static PipingProfile Create()
+ {
+ var profile = new PipingProfile();
+ var layer = new PipingLayer
+ {
+ IsAquifer = true
+ };
+ profile.Layers.Add(layer);
+
+ return profile;
+ }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingSurfaceLineCreator.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingSurfaceLineCreator.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Piping/PipingSurfaceLineCreator.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,31 @@
+using System.Linq;
+
+using Deltares.WTIPiping;
+
+using Wti.Data;
+
+namespace Wti.Calculation.Piping
+{
+ ///
+ /// Creates instances which are required by the .
+ ///
+ internal static class PipingSurfaceLineCreator
+ {
+ ///
+ /// Creates a for the kernel
+ /// given different surface line.
+ ///
+ /// The surface line configured in the Ringtoets application.
+ /// The surface line to be consumed by the kernel.
+ public static PipingSurfaceLine Create(RingtoetsPipingSurfaceLine line)
+ {
+ var surfaceLine = new PipingSurfaceLine
+ {
+ Name = line.Name
+ };
+ surfaceLine.Points.AddRange(line.Points.Select(p => new PipingPoint(p.X, p.Y, p.Z)));
+
+ return surfaceLine;
+ }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/AssemblyInfo.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/AssemblyInfo.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/AssemblyInfo.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,8 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("Wti.Calculation")]
+[assembly: AssemblyProduct("Wti.Calculation")]
+[assembly: Guid("7fb99994-e34b-4c0d-a86c-e668bd789ebb")]
+[assembly: InternalsVisibleTo("Wti.Calculation.Test")]
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/Resources.Designer.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/Resources.Designer.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/Resources.Designer.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,81 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.18444
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Wti.Calculation.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Wti.Calculation.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Een dwarsdoorsnede moet geselecteerd zijn om een Uplift berekening uit te kunnen voeren..
+ ///
+ internal static string PipingCalculation_Validate_Lacks_surfaceline_uplift {
+ get {
+ return ResourceManager.GetString("PipingCalculation_Validate_Lacks_surfaceline_uplift", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to .
+ ///
+ internal static string String1 {
+ get {
+ return ResourceManager.GetString("String1", resourceCulture);
+ }
+ }
+ }
+}
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/Resources.resx
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/Resources.resx (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/Resources.resx (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+
+ Een dwarsdoorsnede moet geselecteerd zijn om een Uplift berekening uit te kunnen voeren.
+
+
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Wti.Calculation.csproj
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Wti.Calculation.csproj (revision 0)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Wti.Calculation.csproj (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,93 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {D64E4F0E-E341-496F-82B2-941AD202B4E3}
+ Library
+ Properties
+ Wti.Calculation
+ Wti.Calculation
+ v4.0
+ 512
+
+
+ true
+ bin\Debug\
+ 4
+ DEBUG;TRACE
+ full
+ x86
+ false
+ prompt
+ MinimumRecommendedRules.ruleset
+ bin\Debug\Wti.Calculation.XML
+
+
+ bin\Release\
+ 4
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+ MinimumRecommendedRules.ruleset
+ bin\Release\Wti.Calculation.XML
+
+
+
+ ..\..\..\..\..\..\lib\Plugins\Wti\Deltares.WTIPiping.dll
+
+
+
+
+
+
+ Properties\GlobalAssembly.cs
+
+
+
+
+
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ {c90b77da-e421-43cc-b82e-529651bc21ac}
+ Wti.Base
+ False
+
+
+ {ce994cc9-6f6a-48ac-b4be-02c30a21f4db}
+ Wti.Data
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj
===================================================================
diff -u -rabafde44f0d5eacfbd71a1a8ea8b4c25fed0f799 -r0cc887bb46e8cd47745f5743311902faa4c6bc87
--- src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (.../Ringtoets.Piping.Service.csproj) (revision abafde44f0d5eacfbd71a1a8ea8b4c25fed0f799)
+++ src/Plugins/Ringtoets/Piping/src/Ringtoets.Piping.Service/Ringtoets.Piping.Service.csproj (.../Ringtoets.Piping.Service.csproj) (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -82,14 +82,14 @@
Wti.Base
False
-
- {D64E4F0E-E341-496F-82B2-941AD202B4E3}
- Wti.Calculation
-
{CE994CC9-6F6A-48AC-B4BE-02C30A21F4DB}
Wti.Data
+
+ {d64e4f0e-e341-496f-82b2-941ad202b4e3}
+ Wti.Calculation
+
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationExceptionTest.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationExceptionTest.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationExceptionTest.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,52 @@
+using System;
+using NUnit.Framework;
+using Wti.Calculation.Piping;
+
+namespace Wti.Calculation.Test.Piping
+{
+ public class PipingCalculationExceptionTest
+ {
+ [Test]
+ public void DefaultConstructor_InnerExceptionNullAndMessageDefault()
+ {
+ // Setup
+ var expectedMessage = String.Format("Exception of type '{0}' was thrown.", typeof(PipingCalculationException).FullName);
+
+ // Call
+ var exception = new PipingCalculationException();
+
+ // Assert
+ Assert.IsNull(exception.InnerException);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Constructor_WithCustomMessage_InnerExceptionNullAndMessageSetToCustom()
+ {
+ // Setup
+ var expectedMessage ="Some exception message";
+
+ // Call
+ var exception = new PipingCalculationException(expectedMessage);
+
+ // Assert
+ Assert.IsNull(exception.InnerException);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+
+ [Test]
+ public void Constructor_WithCustomMessageAndInnerException_InnerExceptionSetAndMessageSetToCustom()
+ {
+ // Setup
+ var expectedMessage = "Some exception message";
+ var expectedInnerException = new Exception();
+
+ // Call
+ var exception = new PipingCalculationException(expectedMessage, expectedInnerException);
+
+ // Assert
+ Assert.AreSame(expectedInnerException, exception.InnerException);
+ Assert.AreEqual(expectedMessage, exception.Message);
+ }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationInputTest.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationInputTest.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationInputTest.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,89 @@
+using System;
+using NUnit.Framework;
+using Wti.Calculation.Piping;
+using Wti.Data;
+
+namespace Wti.Calculation.Test.Piping
+{
+ public class PipingCalculationInputTest
+ {
+ [Test]
+ public void GivenSomeRandomValues_WhenPipingCalculationInputConstructedFromInput_ThenPropertiesAreSet()
+ {
+ var random = new Random(22);
+
+ double volumetricWeightOfWaterValue = random.NextDouble();
+ double modelFactorUpliftValue = random.NextDouble();
+ double hRiverValue = random.NextDouble();
+ double phiExitValue = random.NextDouble();
+ double rExitValue = random.NextDouble();
+ double hExitValue = random.NextDouble();
+ double phiPolderValue = random.NextDouble();
+ double ichValue = random.NextDouble();
+ double dTotalValue = random.NextDouble();
+ double sellmeijerModelFactorValue = random.NextDouble();
+ double reductionFactorValue = random.NextDouble();
+ double seepageLengthValue = random.NextDouble();
+ double sandParticlesVolumicWeightValue = random.NextDouble();
+ double whitesDragCoefficientValue = random.NextDouble();
+ double diameter70Value = random.NextDouble();
+ double darcyPermeabilityValue = random.NextDouble();
+ double waterKinematicViscosityValue = random.NextDouble();
+ double gravityValue = random.NextDouble();
+ double thicknessAquiferLayerValue = random.NextDouble();
+ double meanDiameter70Value = random.NextDouble();
+ double beddingAngleValue = random.NextDouble();
+ double exitPointXCoordinate = random.NextDouble();
+ var surfaceLine = new RingtoetsPipingSurfaceLine();
+
+ var input = new PipingCalculationInput(
+ volumetricWeightOfWaterValue,
+ modelFactorUpliftValue,
+ hRiverValue,
+ phiExitValue,
+ rExitValue,
+ hExitValue,
+ phiPolderValue,
+ ichValue,
+ dTotalValue,
+ sellmeijerModelFactorValue,
+ reductionFactorValue,
+ seepageLengthValue,
+ sandParticlesVolumicWeightValue,
+ whitesDragCoefficientValue,
+ diameter70Value,
+ darcyPermeabilityValue,
+ waterKinematicViscosityValue,
+ gravityValue,
+ thicknessAquiferLayerValue,
+ meanDiameter70Value,
+ beddingAngleValue,
+ exitPointXCoordinate,
+ surfaceLine);
+
+ Assert.AreEqual(volumetricWeightOfWaterValue, input.WaterVolumetricWeight);
+ Assert.AreEqual(modelFactorUpliftValue, input.UpliftModelFactor);
+ Assert.AreEqual(hRiverValue, input.AssessmentLevel);
+ Assert.AreEqual(phiExitValue, input.PiezometricHeadExit);
+ Assert.AreEqual(rExitValue, input.DampingFactorExit);
+ Assert.AreEqual(hExitValue, input.PhreaticLevelExit);
+ Assert.AreEqual(phiPolderValue, input.PiezometricHeadPolder);
+ Assert.AreEqual(ichValue, input.CriticalHeaveGradient);
+ Assert.AreEqual(dTotalValue, input.ThicknessCoverageLayer);
+ Assert.AreEqual(sellmeijerModelFactorValue, input.SellmeijerModelFactor);
+ Assert.AreEqual(reductionFactorValue, input.SellmeijerReductionFactor);
+ Assert.AreEqual(seepageLengthValue, input.SeepageLength);
+ Assert.AreEqual(sandParticlesVolumicWeightValue, input.SandParticlesVolumicWeight);
+ Assert.AreEqual(whitesDragCoefficientValue, input.WhitesDragCoefficient);
+ Assert.AreEqual(diameter70Value, input.Diameter70);
+ Assert.AreEqual(darcyPermeabilityValue, input.DarcyPermeability);
+ Assert.AreEqual(waterKinematicViscosityValue, input.WaterKinematicViscosity);
+ Assert.AreEqual(gravityValue, input.Gravity);
+ Assert.AreEqual(thicknessAquiferLayerValue, input.ThicknessAquiferLayer);
+ Assert.AreEqual(meanDiameter70Value, input.MeanDiameter70);
+ Assert.AreEqual(beddingAngleValue, input.BeddingAngle);
+ Assert.AreEqual(exitPointXCoordinate, input.ExitPointXCoordinate);
+ Assert.AreSame(surfaceLine, input.SurfaceLine);
+ }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationResultTest.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationResultTest.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationResultTest.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,30 @@
+using System;
+using NUnit.Framework;
+using Wti.Calculation.Piping;
+
+namespace Wti.Calculation.Test.Piping
+{
+ public class PipingCalculationResultTest
+ {
+ [Test]
+ public void GivenSomeValues_WhenConstructedWithValues_ThenPropertiesAreSet()
+ {
+ var random = new Random(22);
+ var zuValue = random.NextDouble();
+ var foSuValue = random.NextDouble();
+ var zhValue = random.NextDouble();
+ var foShValue = random.NextDouble();
+ var zsValue = random.NextDouble();
+ var foSsValue = random.NextDouble();
+
+ var actual = new PipingCalculationResult(zuValue, foSuValue, zhValue, foShValue, zsValue, foSsValue);
+
+ Assert.That(actual.UpliftZValue, Is.EqualTo(zuValue));
+ Assert.That(actual.UpliftFactorOfSafety, Is.EqualTo(foSuValue));
+ Assert.That(actual.HeaveZValue, Is.EqualTo(zhValue));
+ Assert.That(actual.HeaveFactorOfSafety, Is.EqualTo(foShValue));
+ Assert.That(actual.SellmeijerZValue, Is.EqualTo(zsValue));
+ Assert.That(actual.SellmeijerFactorOfSafety, Is.EqualTo(foSsValue));
+ }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationTest.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationTest.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingCalculationTest.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,260 @@
+using System.Collections.Generic;
+using System.Linq;
+using NUnit.Framework;
+using Wti.Calculation.Piping;
+using Wti.Calculation.TestUtil;
+
+namespace Wti.Calculation.Test.Piping
+{
+ public class PipingCalculationTest
+ {
+ [Test]
+ public void GivenACompleteInput_WhenCalculationPerformed_ThenResultContainsNoNaN()
+ {
+ PipingCalculationInput input = new TestPipingInput().AsRealInput();
+
+ PipingCalculationResult actual = new PipingCalculation(input).Calculate();
+
+ Assert.IsNotNull(actual);
+ Assert.IsFalse(double.IsNaN(actual.UpliftZValue));
+ Assert.IsFalse(double.IsNaN(actual.UpliftFactorOfSafety));
+ Assert.IsFalse(double.IsNaN(actual.HeaveZValue));
+ Assert.IsFalse(double.IsNaN(actual.HeaveFactorOfSafety));
+ Assert.IsFalse(double.IsNaN(actual.SellmeijerZValue));
+ Assert.IsFalse(double.IsNaN(actual.SellmeijerFactorOfSafety));
+ }
+
+ [Test]
+ [TestCase(0)]
+ [TestCase(-1e-6)]
+ [TestCase(-100)]
+ public void Validate_ZeroOrNegativeSeepageLength_ValidationMessageForPipingLength(double seepageLength)
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ SeepageLength = seepageLength
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(1, validationMessages.Count);
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("Piping length")));
+ }
+
+ [Test]
+ [TestCase(0)]
+ [TestCase(-1e-6)]
+ [TestCase(-100)]
+ public void Validate_ZeroOrNegativeAquiferThickness_ValidationMessageForDAquifer(double aquiferThickness)
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ ThicknessAquiferLayer = aquiferThickness
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(1, validationMessages.Count);
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("DAquifer")));
+ }
+
+ [Test]
+ [TestCase(-1e-6)]
+ [TestCase(-100)]
+ public void Validate_NegativeBeddingAngle_ValidationMessageForBeddingAngle(double beddingAngle)
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ BeddingAngle = beddingAngle
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(1, validationMessages.Count);
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("Bedding angle")));
+ }
+
+ [Test]
+ [TestCase(-1e-6)]
+ [TestCase(-100)]
+ public void Validate_PiezometricHeadExitSameAsPhreaticLevelExit_ValidationMessageForPhiExitAndHExit(double level)
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ PiezometricHeadExit = level,
+ PhreaticLevelExit = level
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(2, validationMessages.Count);
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("PhiExit - HExit")));
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("phiExit - hExit")));
+ }
+
+ [Test]
+ public void Validate_PhreaticLevelExitZero_TwoValidationMessageForRExit()
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ DampingFactorExit = 0
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(2, validationMessages.Count);
+ Assert.AreEqual(2, validationMessages.Count(message => message.Contains("Rexit")));
+ }
+
+ [Test]
+ public void Validate_ThicknessCoverageLayerZero_ValidationMessageForDTotal()
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ ThicknessCoverageLayer = 0
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(1, validationMessages.Count);
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("Dtotal")));
+ }
+
+ [Test]
+ public void Validate_ThicknessAquiferLayerZero_ValidationMessageForDAquifer()
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ ThicknessAquiferLayer = 0
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(1, validationMessages.Count);
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("DAquifer")));
+ }
+
+ [Test]
+ public void Validate_VolumetricWeightWaterZero_ValidationMessageForVolumetricWeightWater()
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ WaterVolumetricWeight = 0
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(1, validationMessages.Count);
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("Volumetric weight water")));
+ }
+
+ [Test]
+ [TestCase(2, 1, 2, 0.5)]
+ [TestCase(1, 1, 0, 2)]
+ [TestCase(8, 4, 2, 2)]
+ public void Validate_DifferenceAssessmentLevelAndPhreaticLevelExitEqualToSellmeijerReductionFactorTimesThicknessCoverageLayer_ValidationMessageForHRiverHExitRcDTotal(
+ double assessmentLevel, double phreaticLevelExit, double sellmeijerReductionFactor, double thicknessCoverageLayer)
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ AssessmentLevel = assessmentLevel,
+ PhreaticLevelExit = phreaticLevelExit,
+ SellmeijerReductionFactor = sellmeijerReductionFactor,
+ ThicknessCoverageLayer = thicknessCoverageLayer
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(1, validationMessages.Count);
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("HRiver - HExit - (Rc*DTotal)")));
+ }
+
+ [Test]
+ public void Validate_NoSurfaceLineSet_ValidationMessageForHavingNoSurfaceLineSelected()
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ SurfaceLine = null,
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(1, validationMessages.Count);
+ Assert.AreEqual("Een dwarsdoorsnede moet geselecteerd zijn om een Uplift berekening uit te kunnen voeren.", validationMessages[0]);
+ }
+
+ [Test]
+ public void Validate_AssessmentLevelPhreaticLevelExitSellmeijerReductionFactorThicknessCoverageLayerZero_ValidationMessageForHRiverHExitRcDTotalAndDTotal()
+ {
+ // Setup
+ PipingCalculationInput input = new TestPipingInput
+ {
+ AssessmentLevel = 0,
+ PhreaticLevelExit = 0,
+ SellmeijerReductionFactor = 0,
+ ThicknessCoverageLayer = 0
+ }.AsRealInput();
+
+ var calculation = new PipingCalculation(input);
+
+ // Call
+ List validationMessages = calculation.Validate();
+
+ // Assert
+ Assert.AreEqual(2, validationMessages.Count);
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("HRiver - HExit - (Rc*DTotal)")));
+ Assert.IsTrue(validationMessages.Any(message => message.Contains("Dtotal")));
+ }
+
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingProfileCreatorTest.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingProfileCreatorTest.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingProfileCreatorTest.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,21 @@
+using Deltares.WTIPiping;
+using NUnit.Framework;
+using Wti.Calculation.Piping;
+
+namespace Wti.Calculation.Test.Piping
+{
+ public class PipingProfileCreatorTest
+ {
+ [Test]
+ public void Create_Always_ReturnsProfileWithSingleAquiferLayer()
+ {
+ // Call
+ PipingProfile actual = PipingProfileCreator.Create();
+
+ // Assert
+ Assert.IsNotNull(actual.Layers);
+ Assert.AreEqual(1, actual.Layers.Count);
+ Assert.IsTrue(actual.Layers[0].IsAquifer);
+ }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingSurfaceLineCreatorTest.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingSurfaceLineCreatorTest.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Piping/PipingSurfaceLineCreatorTest.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,39 @@
+using System.Linq;
+
+using Deltares.WTIPiping;
+using NUnit.Framework;
+using Wti.Calculation.Piping;
+using Wti.Data;
+
+namespace Wti.Calculation.Test.Piping
+{
+ public class PipingSurfaceLineCreatorTest
+ {
+ [Test]
+ public void Create_Always_ReturnsSurfaceLineWithASinglePointAtOrigin()
+ {
+ // Setup
+ const string name = "Local coordinate surfaceline";
+ var surfaceLine = new RingtoetsPipingSurfaceLine
+ {
+ Name = name
+ };
+ surfaceLine.SetGeometry(new[]
+ {
+ new Point3D { X = 0.0, Y = 0.0, Z = 1.1 },
+ new Point3D { X = 2.2, Y = 0.0, Z = 3.3 },
+ new Point3D { X = 4.4, Y = 0.0, Z = 5.5 }
+ });
+
+ // Call
+ PipingSurfaceLine actual = PipingSurfaceLineCreator.Create(surfaceLine);
+
+ // Assert
+ Assert.AreEqual(name, actual.Name);
+ CollectionAssert.AreEqual(surfaceLine.Points.Select(p => p.X).ToArray(), actual.Points.Select(p => p.X).ToArray());
+ CollectionAssert.AreEqual(surfaceLine.Points.Select(p => p.Y).ToArray(), actual.Points.Select(p => p.Y).ToArray());
+ CollectionAssert.AreEqual(surfaceLine.Points.Select(p => p.Z).ToArray(), actual.Points.Select(p => p.Z).ToArray());
+ CollectionAssert.AreEqual(Enumerable.Repeat(PipingCharacteristicPointType.None, surfaceLine.Points.Count()), actual.Points.Select(p => p.Type));
+ }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Properties/AssemblyInfo.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Properties/AssemblyInfo.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Properties/AssemblyInfo.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,39 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+
+[assembly: AssemblyTitle("Wti.Calculation.Test")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Wti.Calculation.Test")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+
+[assembly: Guid("49535e18-f522-49a4-b2ee-c7e801313c38")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Wti.Calculation.Test.csproj
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Wti.Calculation.Test.csproj (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/Wti.Calculation.Test.csproj (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,77 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {91389DA2-3FF4-4559-90B3-4061549789DD}
+ Library
+ Properties
+ Wti.Calculation.Test
+ Wti.Calculation.Test
+ v4.0
+ 512
+
+
+ true
+ bin\Debug\
+ 4
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ bin\Release\
+ 4
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+
+ ..\..\..\..\..\..\lib\Plugins\Wti\Deltares.WTIPiping.dll
+
+
+ ..\..\..\..\..\..\lib\nunit.framework.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {ce994cc9-6f6a-48ac-b4be-02c30a21f4db}
+ Wti.Data
+
+
+ {d64e4f0e-e341-496f-82b2-941ad202b4e3}
+ Wti.Calculation
+
+
+ {27e0a5c9-3abf-426a-a3da-7d0b83a218c8}
+ Wti.Calculation.TestUtil
+
+
+
+
+
+
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/Properties/AssemblyInfo.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/Properties/AssemblyInfo.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/Properties/AssemblyInfo.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,35 @@
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Wti.Calculation.TestUtil")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Wti.Calculation.TestUtil")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("ea719e81-b4d3-44bb-a184-c75224f6cb56")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/TestPipingInput.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/TestPipingInput.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/TestPipingInput.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,109 @@
+using System;
+
+using Wti.Calculation.Piping;
+using Wti.Data;
+
+namespace Wti.Calculation.TestUtil
+{
+ public class TestPipingInput
+ {
+ public double WaterVolumetricWeight;
+ public double UpliftModelFactor;
+ public double AssessmentLevel;
+ public double PiezometricHeadExit;
+ public double DampingFactorExit;
+ public double PhreaticLevelExit;
+ public double PiezometricHeadPolder;
+ public double CriticalHeaveGradient;
+ public double ThicknessCoverageLayer;
+ public double SellmeijerModelFactor;
+ public double SellmeijerReductionFactor;
+ public double SeepageLength;
+ public double SandParticlesVolumicWeight;
+ public double WhitesDragCoefficient;
+ public double Diameter70;
+ public double DarcyPermeability;
+ public double WaterKinematicViscosity;
+ public double Gravity;
+ public double ExitPointXCoordinate;
+ public double BeddingAngle;
+ public double MeanDiameter70;
+ public double ThicknessAquiferLayer;
+ public RingtoetsPipingSurfaceLine SurfaceLine;
+
+ private readonly Random random = new Random(22);
+ private double last;
+
+ public TestPipingInput()
+ {
+ WaterVolumetricWeight = NextIncrementalDouble();
+ UpliftModelFactor = NextIncrementalDouble();
+ AssessmentLevel = NextIncrementalDouble();
+ PiezometricHeadExit = NextIncrementalDouble();
+ PhreaticLevelExit = NextIncrementalDouble();
+ DampingFactorExit = NextIncrementalDouble();
+ PiezometricHeadPolder = NextIncrementalDouble();
+ CriticalHeaveGradient = NextIncrementalDouble();
+ ThicknessCoverageLayer = NextIncrementalDouble();
+ SellmeijerModelFactor = NextIncrementalDouble();
+ SellmeijerReductionFactor = NextIncrementalDouble();
+ SeepageLength = NextIncrementalDouble();
+ SandParticlesVolumicWeight = NextIncrementalDouble();
+ WhitesDragCoefficient = NextIncrementalDouble();
+ Diameter70 = NextIncrementalDouble();
+ DarcyPermeability = NextIncrementalDouble();
+ WaterKinematicViscosity = NextIncrementalDouble();
+ Gravity = NextIncrementalDouble();
+ ExitPointXCoordinate = NextIncrementalDouble();
+ BeddingAngle = NextIncrementalDouble();
+ MeanDiameter70 = NextIncrementalDouble();
+ ThicknessAquiferLayer = NextIncrementalDouble();
+ SurfaceLine = CreateValidSurfaceLine();
+ }
+
+ private RingtoetsPipingSurfaceLine CreateValidSurfaceLine()
+ {
+ return new RingtoetsPipingSurfaceLine();
+ }
+
+ ///
+ /// The returned double is sure to be different from the last time it was called.
+ ///
+ private double NextIncrementalDouble()
+ {
+ return last += random.NextDouble() + 1e-6;
+ }
+
+ ///
+ /// Returns the current set value as a
+ ///
+ public PipingCalculationInput AsRealInput()
+ {
+ return new PipingCalculationInput(
+ WaterVolumetricWeight,
+ UpliftModelFactor,
+ AssessmentLevel,
+ PiezometricHeadExit,
+ DampingFactorExit,
+ PhreaticLevelExit,
+ PiezometricHeadPolder,
+ CriticalHeaveGradient,
+ ThicknessCoverageLayer,
+ SellmeijerModelFactor,
+ SellmeijerReductionFactor,
+ SeepageLength,
+ SandParticlesVolumicWeight,
+ WhitesDragCoefficient,
+ Diameter70,
+ DarcyPermeability,
+ WaterKinematicViscosity,
+ Gravity,
+ ThicknessAquiferLayer,
+ MeanDiameter70,
+ BeddingAngle,
+ ExitPointXCoordinate,
+ SurfaceLine
+ );
+ }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/TestPipingOutput.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/TestPipingOutput.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/TestPipingOutput.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,9 @@
+using Wti.Data;
+
+namespace Wti.Calculation.Test.Piping.Stub
+{
+ public class TestPipingOutput : PipingOutput
+ {
+ public TestPipingOutput() : base(0, 0, 0, 0, 0, 0) {}
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/TestPipingSoilProfile.cs
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/TestPipingSoilProfile.cs (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/TestPipingSoilProfile.cs (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,10 @@
+using System.Collections.ObjectModel;
+using Wti.Data;
+
+namespace Wti.Calculation.Test.Piping.Stub
+{
+ public class TestPipingSoilProfile : PipingSoilProfile
+ {
+ public TestPipingSoilProfile() : base("", 0.0, new Collection {new PipingSoilLayer(0.0)}) { }
+ }
+}
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/Wti.Calculation.TestUtil.csproj
===================================================================
diff -u
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/Wti.Calculation.TestUtil.csproj (revision 0)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Calculation.TestUtil/Wti.Calculation.TestUtil.csproj (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -0,0 +1,67 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8}
+ Library
+ Properties
+ Wti.Calculation.TestUtil
+ Wti.Calculation.TestUtil
+ v4.0
+ 512
+
+
+ true
+ bin\Debug\
+ 4
+ DEBUG;TRACE
+ full
+ x86
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+ bin\Release\
+ 4
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {ce994cc9-6f6a-48ac-b4be-02c30a21f4db}
+ Wti.Data
+
+
+ {d64e4f0e-e341-496f-82b2-941ad202b4e3}
+ Wti.Calculation
+
+
+
+
+
\ No newline at end of file
Index: src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj
===================================================================
diff -u -r997aecb266c33ed99c524f743879a17f1d94b37f -r0cc887bb46e8cd47745f5743311902faa4c6bc87
--- src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision 997aecb266c33ed99c524f743879a17f1d94b37f)
+++ src/Plugins/Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -81,7 +81,7 @@
{7cd038e1-e111-4969-aced-22c5bd2974e1}
Wti.Forms
-
+
{27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8}
Wti.Calculation.TestUtil
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Piping/PipingCalculation.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Piping/PipingCalculationException.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Piping/PipingCalculationInput.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Piping/PipingCalculationResult.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Piping/PipingProfileCreator.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Piping/PipingSurfaceLineCreator.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Properties/AssemblyInfo.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Properties/Resources.Designer.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Properties/Resources.resx'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `src/Plugins/Wti/Wti.Calculation/Wti.Calculation.csproj'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.Test/Piping/PipingCalculationExceptionTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.Test/Piping/PipingCalculationInputTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.Test/Piping/PipingCalculationResultTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.Test/Piping/PipingCalculationTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.Test/Piping/PipingProfileCreatorTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.Test/Piping/PipingSurfaceLineCreatorTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.Test/Properties/AssemblyInfo.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.Test/Wti.Calculation.Test.csproj'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.TestUtil/Properties/AssemblyInfo.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.TestUtil/TestPipingInput.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.TestUtil/TestPipingOutput.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.TestUtil/TestPipingSoilProfile.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag 0cc887bb46e8cd47745f5743311902faa4c6bc87 refers to a dead (removed) revision in file `test/Plugins/Wti/Wti.Calculation.TestUtil/Wti.Calculation.TestUtil.csproj'.
Fisheye: No comparison available. Pass `N' to diff?
Index: test/Plugins/Wti/Wti.Forms.Test/Wti.Forms.Test.csproj
===================================================================
diff -u -r9cd3db94455d7ac8ec96d2504f46ca66a203a724 -r0cc887bb46e8cd47745f5743311902faa4c6bc87
--- test/Plugins/Wti/Wti.Forms.Test/Wti.Forms.Test.csproj (.../Wti.Forms.Test.csproj) (revision 9cd3db94455d7ac8ec96d2504f46ca66a203a724)
+++ test/Plugins/Wti/Wti.Forms.Test/Wti.Forms.Test.csproj (.../Wti.Forms.Test.csproj) (revision 0cc887bb46e8cd47745f5743311902faa4c6bc87)
@@ -97,7 +97,7 @@
{7cd038e1-e111-4969-aced-22c5bd2974e1}
Wti.Forms
-
+
{27E0A5C9-3ABF-426A-A3DA-7D0B83A218C8}
Wti.Calculation.TestUtil