Index: Ringtoets/Piping/src/Ringtoets.Piping.Calculation/PipingCalculator.cs =================================================================== diff -u -rbbca58832f24a62d39dc744c2db663ed696cfac1 -rcd01ebb93138126cff40f436c309ee8b4bc9069e --- Ringtoets/Piping/src/Ringtoets.Piping.Calculation/PipingCalculator.cs (.../PipingCalculator.cs) (revision bbca58832f24a62d39dc744c2db663ed696cfac1) +++ Ringtoets/Piping/src/Ringtoets.Piping.Calculation/PipingCalculator.cs (.../PipingCalculator.cs) (revision cd01ebb93138126cff40f436c309ee8b4bc9069e) @@ -256,7 +256,7 @@ calculator.Ich = input.CriticalHeaveGradient; calculator.PhiExit = input.PiezometricHeadExit; calculator.DTotal = input.ThicknessCoverageLayer; - calculator.PhiPolder = input.PiezometricHeadPolder; + calculator.PhiPolder = input.PhreaticLevelExit; calculator.RExit = input.DampingFactorExit; calculator.HExit = input.PhreaticLevelExit; return calculator; @@ -272,7 +272,7 @@ calculator.PhiExit = input.PiezometricHeadExit; calculator.RExit = input.DampingFactorExit; calculator.HExit = input.PhreaticLevelExit; - calculator.PhiPolder = input.PiezometricHeadPolder; + calculator.PhiPolder = input.PhreaticLevelExit; return calculator; } Index: Ringtoets/Piping/src/Ringtoets.Piping.Calculation/PipingSurfaceLineCreator.cs =================================================================== diff -u -r4512af7782ee31b36941bb280b54d9da2953dd71 -rcd01ebb93138126cff40f436c309ee8b4bc9069e --- Ringtoets/Piping/src/Ringtoets.Piping.Calculation/PipingSurfaceLineCreator.cs (.../PipingSurfaceLineCreator.cs) (revision 4512af7782ee31b36941bb280b54d9da2953dd71) +++ Ringtoets/Piping/src/Ringtoets.Piping.Calculation/PipingSurfaceLineCreator.cs (.../PipingSurfaceLineCreator.cs) (revision cd01ebb93138126cff40f436c309ee8b4bc9069e) @@ -21,7 +21,7 @@ using System.Collections.Generic; using System.Linq; - +using Core.Common.Base.Geometry; using Deltares.WTIPiping; using Ringtoets.Piping.Data; @@ -49,13 +49,50 @@ { surfaceLine.Points.AddRange(CreatePoints(line)); } - + return surfaceLine; } private static IEnumerable CreatePoints(RingtoetsPipingSurfaceLine line) { - return line.ProjectGeometryToLZ().Select(p => new PipingPoint(p.X, 0.0, p.Y)); + var projectedPoints = line.ProjectGeometryToLZ().ToArray(); + var pipingPoints = new List(); + for (int i = 0; i < line.Points.Length; i++) + { + var pipingPoint = CreatePoint(line, projectedPoints, i); + pipingPoints.Add(pipingPoint); + } + return pipingPoints; } + + private static PipingPoint CreatePoint(RingtoetsPipingSurfaceLine line, Point2D[] projectedPoints, int index) + { + var surfaceLinePoint = line.Points[index]; + var projectedPoint = projectedPoints[index]; + var pipingPoint = new PipingPoint(projectedPoint.X, 0.0, projectedPoint.Y); + + if (ReferenceEquals(line.DitchPolderSide, surfaceLinePoint)) + { + pipingPoint.Type = PipingCharacteristicPointType.DitchPolderSide; + } + if (ReferenceEquals(line.BottomDitchPolderSide, surfaceLinePoint)) + { + pipingPoint.Type = PipingCharacteristicPointType.BottomDitchPolderSide; + } + if (ReferenceEquals(line.BottomDitchDikeSide, surfaceLinePoint)) + { + pipingPoint.Type = PipingCharacteristicPointType.BottomDitchDikeSide; + } + if (ReferenceEquals(line.DitchDikeSide, surfaceLinePoint)) + { + pipingPoint.Type = PipingCharacteristicPointType.DitchDikeSide; + } + if (ReferenceEquals(line.DikeToeAtPolder, surfaceLinePoint)) + { + pipingPoint.Type = PipingCharacteristicPointType.DikeToeAtPolder; + } + + return pipingPoint; + } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/AssemblyInfo.cs =================================================================== diff -u -r4512af7782ee31b36941bb280b54d9da2953dd71 -rcd01ebb93138126cff40f436c309ee8b4bc9069e --- Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/AssemblyInfo.cs (.../AssemblyInfo.cs) (revision 4512af7782ee31b36941bb280b54d9da2953dd71) +++ Ringtoets/Piping/src/Ringtoets.Piping.Calculation/Properties/AssemblyInfo.cs (.../AssemblyInfo.cs) (revision cd01ebb93138126cff40f436c309ee8b4bc9069e) @@ -27,4 +27,5 @@ [assembly: AssemblyProduct("Ringtoets.Piping.Calculation")] [assembly: Guid("7fb99994-e34b-4c0d-a86c-e668bd789ebb")] [assembly: InternalsVisibleTo("Ringtoets.Piping.Calculation.Test")] +[assembly: InternalsVisibleTo("Ringtoets.Piping.Service.Test")] [assembly: InternalsVisibleTo("Ringtoets.Piping.Integration.Test")] \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/PipingSurfaceLineCreatorTest.cs =================================================================== diff -u -r9eb91cfa000697ddfdeace89aa8f1e959fc1f7f9 -rcd01ebb93138126cff40f436c309ee8b4bc9069e --- Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/PipingSurfaceLineCreatorTest.cs (.../PipingSurfaceLineCreatorTest.cs) (revision 9eb91cfa000697ddfdeace89aa8f1e959fc1f7f9) +++ Ringtoets/Piping/test/Ringtoets.Piping.Calculation.Test/PipingSurfaceLineCreatorTest.cs (.../PipingSurfaceLineCreatorTest.cs) (revision cd01ebb93138126cff40f436c309ee8b4bc9069e) @@ -150,5 +150,146 @@ Assert.AreEqual(name, actual.Name); CollectionAssert.IsEmpty(actual.Points); } + + [Test] + public void Create_SurfaceLineWithDikeToePolderSide_CreateSurfaceLineWithDikeToePolderSideSet() + { + // Setup + const string name = "Surfaceline without points"; + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = name + }; + var point = new Point3D (1.0, 1.0, 2.2); + surfaceLine.SetGeometry(new[] + { + point, + }); + surfaceLine.SetDikeToeAtPolderAt(point); + + // Call + PipingSurfaceLine actual = PipingSurfaceLineCreator.Create(surfaceLine); + + // Assert + Assert.AreEqual(name, actual.Name); + Assert.AreEqual(1, actual.Points.Count); + AssertPointsAreEqual(new Point3D(0.0, 0.0, 2.2), actual.DikeToeAtPolder); + } + + [Test] + public void Create_SurfaceLineWithDitchDikeSide_CreateSurfaceLineWithDitchDikeSideSet() + { + // Setup + const string name = "Surfaceline without points"; + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = name + }; + var point = new Point3D(1.0, 1.0, 2.2); + surfaceLine.SetGeometry(new[] + { + point, + }); + surfaceLine.SetDitchDikeSideAt(point); + + // Call + PipingSurfaceLine actual = PipingSurfaceLineCreator.Create(surfaceLine); + + // Assert + Assert.AreEqual(name, actual.Name); + Assert.AreEqual(1, actual.Points.Count); + AssertPointsAreEqual(new Point3D(0.0, 0.0, 2.2), actual.DitchDikeSide); + } + + [Test] + public void Create_SurfaceLineWithBottomDitchDikeSide_CreateSurfaceLineWithBottomDitchDikeSideSet() + { + // Setup + const string name = "Surfaceline without points"; + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = name + }; + var point = new Point3D(1.0, 1.0, 2.2); + surfaceLine.SetGeometry(new[] + { + point, + }); + surfaceLine.SetBottomDitchDikeSideAt(point); + + // Call + PipingSurfaceLine actual = PipingSurfaceLineCreator.Create(surfaceLine); + + // Assert + Assert.AreEqual(name, actual.Name); + Assert.AreEqual(1, actual.Points.Count); + AssertPointsAreEqual(new Point3D(0.0, 0.0, 2.2), actual.BottomDitchDikeSide); + } + + [Test] + public void Create_SurfaceLineWithBottomPolderDikeSide_CreateSurfaceLineWithBottomDitchPolderSideSet() + { + // Setup + const string name = "Surfaceline without points"; + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = name + }; + var point = new Point3D(1.0, 1.0, 2.2); + surfaceLine.SetGeometry(new[] + { + point, + }); + surfaceLine.SetBottomDitchPolderSideAt(point); + + // Call + PipingSurfaceLine actual = PipingSurfaceLineCreator.Create(surfaceLine); + + // Assert + Assert.AreEqual(name, actual.Name); + Assert.AreEqual(1, actual.Points.Count); + AssertPointsAreEqual(new Point3D(0.0, 0.0, 2.2), actual.BottomDitchPolderSide); + } + + [Test] + public void Create_SurfaceLineWithPolderDikeSide_CreateSurfaceLineWithDitchPolderSideSet() + { + // Setup + const string name = "Surfaceline without points"; + var surfaceLine = new RingtoetsPipingSurfaceLine + { + Name = name + }; + var point = new Point3D(1.0, 1.0, 2.2); + surfaceLine.SetGeometry(new[] + { + point, + }); + surfaceLine.SetDitchPolderSideAt(point); + + // Call + PipingSurfaceLine actual = PipingSurfaceLineCreator.Create(surfaceLine); + + // Assert + Assert.AreEqual(name, actual.Name); + Assert.AreEqual(1, actual.Points.Count); + AssertPointsAreEqual(new Point3D(0.0, 0.0, 2.2), actual.DitchPolderSide); + } + + private void AssertPointsAreEqual(Point3D point, PipingPoint otherPoint) + { + if (point == null) + { + Assert.IsNull(otherPoint); + return; + } + if (otherPoint == null) + { + Assert.Fail("Expected value for otherPoint."); + } + Assert.AreEqual(point.X, otherPoint.X); + Assert.AreEqual(point.Y, otherPoint.Y); + Assert.AreEqual(point.Z, otherPoint.Z); + } } } \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationFactory.cs =================================================================== diff -u -ra5b051a25a6bb059d5928e29a8d741a8ec31fcd5 -rcd01ebb93138126cff40f436c309ee8b4bc9069e --- Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationFactory.cs (.../PipingCalculationFactory.cs) (revision a5b051a25a6bb059d5928e29a8d741a8ec31fcd5) +++ Ringtoets/Piping/test/Ringtoets.Piping.Data.TestUtil/PipingCalculationFactory.cs (.../PipingCalculationFactory.cs) (revision cd01ebb93138126cff40f436c309ee8b4bc9069e) @@ -25,11 +25,27 @@ } }); var surfaceLine = new RingtoetsPipingSurfaceLine(); + var firstCharacteristicPointLocation = new Point3D(0.2, 0.0, top / 6); + var secondCharacteristicPointLocation = new Point3D(0.3, 0.0, 2 * top / 6); + var thirdCharacteristicPointLocation = new Point3D(0.4, 0.0, 3 * top / 6); + var fourthCharacteristicPointLocation = new Point3D(0.5, 0.0, 4 * top / 6); + var fifthCharacteristicPointLocation = new Point3D(0.6, 0.0, 5 * top / 6); surfaceLine.SetGeometry(new [] { new Point3D(0.0, 0.0, 0.0), + firstCharacteristicPointLocation, + secondCharacteristicPointLocation, + thirdCharacteristicPointLocation, + fourthCharacteristicPointLocation, + fifthCharacteristicPointLocation, new Point3D(1.0, 0.0, top) }); + surfaceLine.SetDikeToeAtPolderAt(firstCharacteristicPointLocation); + surfaceLine.SetDitchDikeSideAt(secondCharacteristicPointLocation); + surfaceLine.SetBottomDitchDikeSideAt(thirdCharacteristicPointLocation); + surfaceLine.SetBottomDitchPolderSideAt(fourthCharacteristicPointLocation); + surfaceLine.SetDitchPolderSideAt(fifthCharacteristicPointLocation); + return new PipingCalculation(new GeneralPipingInput()) { InputParameters = Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs =================================================================== diff -u -rbd3efea84460c4ca2a2e9279a18983eddc4e85be -rcd01ebb93138126cff40f436c309ee8b4bc9069e --- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (.../PipingCalculationServiceTest.cs) (revision bd3efea84460c4ca2a2e9279a18983eddc4e85be) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/PipingCalculationServiceTest.cs (.../PipingCalculationServiceTest.cs) (revision cd01ebb93138126cff40f436c309ee8b4bc9069e) @@ -4,6 +4,7 @@ using Core.Common.Base.Data; using Core.Common.Base.Geometry; using Core.Common.TestUtil; +using Deltares.WTIPiping; using Ringtoets.Piping.Calculation.TestUtil; using NUnit.Framework; @@ -228,44 +229,7 @@ PipingCalculationService.Validate(validPipingCalculation); // Assert - var testFactory = (TestPipingSubCalculatorFactory) PipingCalculationService.SubCalculatorFactory; - var heaveCalculator = testFactory.LastCreatedHeaveCalculator; - var upliftCalculator = testFactory.LastCreatedUpliftCalculator; - var effectiveThicknessCalculator = testFactory.LastCreatedEffectiveThicknessCalculator; - var sellmeijerCalculator = testFactory.LastCreatedSellmeijerCalculator; - - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetThicknessCoverageLayer(input).GetDesignValue(), heaveCalculator.DTotal); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), heaveCalculator.HExit); - Assert.AreEqual(input.CriticalHeaveGradient, heaveCalculator.Ich); - Assert.AreEqual(input.PiezometricHeadExit, heaveCalculator.PhiExit); - Assert.AreEqual(input.PiezometricHeadPolder, heaveCalculator.PhiPolder); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input).GetDesignValue(), heaveCalculator.RExit); - - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), upliftCalculator.HExit); - Assert.AreEqual(input.AssessmentLevel.Value, upliftCalculator.HRiver); - Assert.AreEqual(input.UpliftModelFactor, upliftCalculator.ModelFactorUplift); - Assert.AreEqual(input.PiezometricHeadExit, upliftCalculator.PhiExit); - Assert.AreEqual(input.PiezometricHeadPolder, upliftCalculator.PhiPolder); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input).GetDesignValue(), upliftCalculator.RExit); - Assert.AreEqual(input.WaterVolumetricWeight, upliftCalculator.VolumetricWeightOfWater); - Assert.AreEqual(effectiveThicknessCalculator.EffectiveStress, upliftCalculator.EffectiveStress); - - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetSeepageLength(input).GetDesignValue(), sellmeijerCalculator.SeepageLength); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), sellmeijerCalculator.HExit); - Assert.AreEqual(input.AssessmentLevel.Value, sellmeijerCalculator.HRiver); - Assert.AreEqual(input.WaterKinematicViscosity, sellmeijerCalculator.KinematicViscosityWater); - Assert.AreEqual(input.SellmeijerModelFactor, sellmeijerCalculator.ModelFactorPiping); - Assert.AreEqual(input.SellmeijerReductionFactor, sellmeijerCalculator.Rc); - Assert.AreEqual(input.WaterVolumetricWeight, sellmeijerCalculator.VolumetricWeightOfWater); - Assert.AreEqual(input.WhitesDragCoefficient, sellmeijerCalculator.WhitesDragCoefficient); - Assert.AreEqual(input.BeddingAngle, sellmeijerCalculator.BeddingAngle); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetThicknessCoverageLayer(input).GetDesignValue(), sellmeijerCalculator.DTotal); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDiameter70(input).GetDesignValue(), sellmeijerCalculator.D70); - Assert.AreEqual(input.MeanDiameter70, sellmeijerCalculator.D70Mean); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetThicknessAquiferLayer(input).GetDesignValue(), sellmeijerCalculator.DAquifer); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDarcyPermeability(input).GetDesignValue(), sellmeijerCalculator.DarcyPermeability); - Assert.AreEqual(input.SandParticlesVolumicWeight, sellmeijerCalculator.GammaSubParticles); - Assert.AreEqual(input.Gravity, sellmeijerCalculator.Gravity); + AssertSubCalculatorInputs(input); } } @@ -282,46 +246,101 @@ PipingCalculationService.Calculate(validPipingCalculation); // Assert - var testFactory = (TestPipingSubCalculatorFactory)PipingCalculationService.SubCalculatorFactory; - var heaveCalculator = testFactory.LastCreatedHeaveCalculator; - var upliftCalculator = testFactory.LastCreatedUpliftCalculator; - var effectiveThicknessCalculator = testFactory.LastCreatedEffectiveThicknessCalculator; - var sellmeijerCalculator = testFactory.LastCreatedSellmeijerCalculator; + AssertSubCalculatorInputs(input); + } + } - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetThicknessCoverageLayer(input).GetDesignValue(), heaveCalculator.DTotal); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), heaveCalculator.HExit); - Assert.AreEqual(input.CriticalHeaveGradient, heaveCalculator.Ich); - Assert.AreEqual(input.PiezometricHeadExit, heaveCalculator.PhiExit); - Assert.AreEqual(input.PiezometricHeadPolder, heaveCalculator.PhiPolder); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input).GetDesignValue(), heaveCalculator.RExit); + private void AssertSubCalculatorInputs(PipingInput input) + { + var testFactory = (TestPipingSubCalculatorFactory) PipingCalculationService.SubCalculatorFactory; + var heaveCalculator = testFactory.LastCreatedHeaveCalculator; + var upliftCalculator = testFactory.LastCreatedUpliftCalculator; + var effectiveThicknessCalculator = testFactory.LastCreatedEffectiveThicknessCalculator; + var sellmeijerCalculator = testFactory.LastCreatedSellmeijerCalculator; - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), upliftCalculator.HExit); - Assert.AreEqual(input.AssessmentLevel.Value, upliftCalculator.HRiver); - Assert.AreEqual(input.UpliftModelFactor, upliftCalculator.ModelFactorUplift); - Assert.AreEqual(input.PiezometricHeadExit, upliftCalculator.PhiExit); - Assert.AreEqual(input.PiezometricHeadPolder, upliftCalculator.PhiPolder); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input).GetDesignValue(), upliftCalculator.RExit); - Assert.AreEqual(input.WaterVolumetricWeight, upliftCalculator.VolumetricWeightOfWater); - Assert.AreEqual(effectiveThicknessCalculator.EffectiveStress, upliftCalculator.EffectiveStress); + Assert.AreEqual(input.ExitPointL.Value, effectiveThicknessCalculator.ExitPointXCoordinate); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), effectiveThicknessCalculator.PhreaticLevel); + AssertEqualSoilProfiles(input.SoilProfile, effectiveThicknessCalculator.SoilProfile); + AssertEqualSurfaceLines(input.SurfaceLine, effectiveThicknessCalculator.SurfaceLine); + Assert.AreEqual(input.WaterVolumetricWeight, effectiveThicknessCalculator.VolumicWeightOfWater); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetSeepageLength(input).GetDesignValue(), sellmeijerCalculator.SeepageLength); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), sellmeijerCalculator.HExit); - Assert.AreEqual(input.AssessmentLevel.Value, sellmeijerCalculator.HRiver); - Assert.AreEqual(input.WaterKinematicViscosity, sellmeijerCalculator.KinematicViscosityWater); - Assert.AreEqual(input.SellmeijerModelFactor, sellmeijerCalculator.ModelFactorPiping); - Assert.AreEqual(input.SellmeijerReductionFactor, sellmeijerCalculator.Rc); - Assert.AreEqual(input.WaterVolumetricWeight, sellmeijerCalculator.VolumetricWeightOfWater); - Assert.AreEqual(input.WhitesDragCoefficient, sellmeijerCalculator.WhitesDragCoefficient); - Assert.AreEqual(input.BeddingAngle, sellmeijerCalculator.BeddingAngle); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetThicknessCoverageLayer(input).GetDesignValue(), sellmeijerCalculator.DTotal); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDiameter70(input).GetDesignValue(), sellmeijerCalculator.D70); - Assert.AreEqual(input.MeanDiameter70, sellmeijerCalculator.D70Mean); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetThicknessAquiferLayer(input).GetDesignValue(), sellmeijerCalculator.DAquifer); - Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDarcyPermeability(input).GetDesignValue(), sellmeijerCalculator.DarcyPermeability); - Assert.AreEqual(input.SandParticlesVolumicWeight, sellmeijerCalculator.GammaSubParticles); - Assert.AreEqual(input.Gravity, sellmeijerCalculator.Gravity); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetThicknessCoverageLayer(input).GetDesignValue(), heaveCalculator.DTotal); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), heaveCalculator.HExit); + Assert.AreEqual(input.CriticalHeaveGradient, heaveCalculator.Ich); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), heaveCalculator.PhiPolder); + Assert.AreEqual(input.PiezometricHeadExit, heaveCalculator.PhiExit); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input).GetDesignValue(), heaveCalculator.RExit); + + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), upliftCalculator.HExit); + Assert.AreEqual(input.AssessmentLevel.Value, upliftCalculator.HRiver); + Assert.AreEqual(input.UpliftModelFactor, upliftCalculator.ModelFactorUplift); + Assert.AreEqual(input.PiezometricHeadExit, upliftCalculator.PhiExit); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), upliftCalculator.PhiPolder); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDampingFactorExit(input).GetDesignValue(), upliftCalculator.RExit); + Assert.AreEqual(input.WaterVolumetricWeight, upliftCalculator.VolumetricWeightOfWater); + Assert.AreEqual(effectiveThicknessCalculator.EffectiveStress, upliftCalculator.EffectiveStress); + + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetSeepageLength(input).GetDesignValue(), sellmeijerCalculator.SeepageLength); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetPhreaticLevelExit(input).GetDesignValue(), sellmeijerCalculator.HExit); + Assert.AreEqual(input.AssessmentLevel.Value, sellmeijerCalculator.HRiver); + Assert.AreEqual(input.WaterKinematicViscosity, sellmeijerCalculator.KinematicViscosityWater); + Assert.AreEqual(input.SellmeijerModelFactor, sellmeijerCalculator.ModelFactorPiping); + Assert.AreEqual(input.SellmeijerReductionFactor, sellmeijerCalculator.Rc); + Assert.AreEqual(input.WaterVolumetricWeight, sellmeijerCalculator.VolumetricWeightOfWater); + Assert.AreEqual(input.WhitesDragCoefficient, sellmeijerCalculator.WhitesDragCoefficient); + Assert.AreEqual(input.BeddingAngle, sellmeijerCalculator.BeddingAngle); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetThicknessCoverageLayer(input).GetDesignValue(), sellmeijerCalculator.DTotal); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDiameter70(input).GetDesignValue(), sellmeijerCalculator.D70); + Assert.AreEqual(input.MeanDiameter70, sellmeijerCalculator.D70Mean); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetThicknessAquiferLayer(input).GetDesignValue(), sellmeijerCalculator.DAquifer); + Assert.AreEqual(PipingSemiProbabilisticDesignValueFactory.GetDarcyPermeability(input).GetDesignValue(), sellmeijerCalculator.DarcyPermeability); + Assert.AreEqual(input.SandParticlesVolumicWeight, sellmeijerCalculator.GammaSubParticles); + Assert.AreEqual(input.Gravity, sellmeijerCalculator.Gravity); + } + + private void AssertEqualSurfaceLines(RingtoetsPipingSurfaceLine pipingSurfaceLine, PipingSurfaceLine otherSurfaceLine) + { + AssertPointsAreEqual(pipingSurfaceLine.DitchDikeSide, otherSurfaceLine.DitchDikeSide); + AssertPointsAreEqual(pipingSurfaceLine.BottomDitchDikeSide, otherSurfaceLine.BottomDitchDikeSide); + AssertPointsAreEqual(pipingSurfaceLine.BottomDitchPolderSide, otherSurfaceLine.BottomDitchPolderSide); + AssertPointsAreEqual(pipingSurfaceLine.DitchPolderSide, otherSurfaceLine.DitchPolderSide); + AssertPointsAreEqual(pipingSurfaceLine.DikeToeAtPolder, otherSurfaceLine.DikeToeAtPolder); + + Assert.AreEqual(pipingSurfaceLine.Points.Length, otherSurfaceLine.Points.Count); + for (int i = 0; i < pipingSurfaceLine.Points.Length; i++) + { + AssertPointsAreEqual(pipingSurfaceLine.Points[i], otherSurfaceLine.Points[i]); } } + private void AssertPointsAreEqual(Point3D point, PipingPoint otherPoint) + { + if (point == null) + { + Assert.IsNull(otherPoint); + return; + } + if (otherPoint == null) + { + Assert.Fail("Expected value for otherPoint."); + } + Assert.AreEqual(point.X, otherPoint.X); + Assert.AreEqual(point.Y, otherPoint.Y); + Assert.AreEqual(point.Z, otherPoint.Z); + } + + private void AssertEqualSoilProfiles(PipingSoilProfile pipingProfile, PipingProfile otherPipingProfile) + { + Assert.AreEqual(pipingProfile.Bottom, otherPipingProfile.BottomLevel); + Assert.AreEqual(pipingProfile.Layers.First().Top, otherPipingProfile.TopLevel); + Assert.AreEqual(pipingProfile.Layers.Last(l => l.IsAquifer).Top, otherPipingProfile.BottomAquiferLayer.TopLevel); + Assert.AreEqual(pipingProfile.Layers.First(l => l.IsAquifer).Top, otherPipingProfile.TopAquiferLayer.TopLevel); + + Assert.AreEqual(pipingProfile.Layers.Count(), otherPipingProfile.Layers.Count); + for (int i = 0; i < pipingProfile.Layers.Count(); i++) + { + Assert.AreEqual(pipingProfile.Layers.ElementAt(i).Top, otherPipingProfile.Layers[i].TopLevel); + } + } } } \ No newline at end of file Index: Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj =================================================================== diff -u -rbd3efea84460c4ca2a2e9279a18983eddc4e85be -rcd01ebb93138126cff40f436c309ee8b4bc9069e --- Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision bd3efea84460c4ca2a2e9279a18983eddc4e85be) +++ Ringtoets/Piping/test/Ringtoets.Piping.Service.Test/Ringtoets.Piping.Service.Test.csproj (.../Ringtoets.Piping.Service.Test.csproj) (revision cd01ebb93138126cff40f436c309ee8b4bc9069e) @@ -42,6 +42,10 @@ MinimumRecommendedRules.ruleset + + False + ..\..\..\..\lib\Plugins\Wti\Deltares.WTIPiping.dll + ..\..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll True