Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/MacroStabilityInwards/MacroStabilityInwardsPreconsolidationStressEntityReadExtensions.cs =================================================================== diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/MacroStabilityInwards/MacroStabilityInwardsPreconsolidationStressEntityReadExtensions.cs (.../MacroStabilityInwardsPreconsolidationStressEntityReadExtensions.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/MacroStabilityInwards/MacroStabilityInwardsPreconsolidationStressEntityReadExtensions.cs (.../MacroStabilityInwardsPreconsolidationStressEntityReadExtensions.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -21,6 +21,9 @@ using System; using Application.Ringtoets.Storage.DbContext; +using Core.Common.Base.Data; +using Core.Common.Base.Geometry; +using Ringtoets.Common.Data.Probabilistics; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; namespace Application.Ringtoets.Storage.Read.MacroStabilityInwards @@ -46,11 +49,14 @@ throw new ArgumentNullException(nameof(entity)); } - return new MacroStabilityInwardsPreconsolidationStress(entity.CoordinateX, - entity.CoordinateZ, - entity.PreconsolidationStressMean, - entity.PreconsolidationStressCoefficientOfVariation - ); + var location = new Point2D(entity.CoordinateX, entity.CoordinateZ); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) entity.PreconsolidationStressMean, + CoefficientOfVariation = (RoundedDouble) entity.PreconsolidationStressCoefficientOfVariation + }; + + return new MacroStabilityInwardsPreconsolidationStress(location, distribution); } } } \ No newline at end of file Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacroStabilityInwards/MacroStabilityInwardsPreconsolidationStressCreateExtensionsTest.cs =================================================================== diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacroStabilityInwards/MacroStabilityInwardsPreconsolidationStressCreateExtensionsTest.cs (.../MacroStabilityInwardsPreconsolidationStressCreateExtensionsTest.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/MacroStabilityInwards/MacroStabilityInwardsPreconsolidationStressCreateExtensionsTest.cs (.../MacroStabilityInwardsPreconsolidationStressCreateExtensionsTest.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -22,6 +22,9 @@ using System; using Application.Ringtoets.Storage.Create.MacroStabilityInwards; using Application.Ringtoets.Storage.DbContext; +using Core.Common.Base.Data; +using Core.Common.Base.Geometry; +using Core.Common.TestUtil; using NUnit.Framework; using Ringtoets.Common.Data.Probabilistics; using Ringtoets.Common.Data.TestUtil; @@ -48,10 +51,13 @@ { // Setup var random = new Random(31); - var stress = new MacroStabilityInwardsPreconsolidationStress(random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble()); + + var stress = new MacroStabilityInwardsPreconsolidationStress(new Point2D(random.NextDouble(), random.NextDouble()), + new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }); int order = random.Next(); // Call Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectTestHelperTest.cs =================================================================== diff -u -rdcc94dbcc481ef9f6f83308b82096f85f9cb6f01 -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectTestHelperTest.cs (.../RingtoetsProjectTestHelperTest.cs) (revision dcc94dbcc481ef9f6f83308b82096f85f9cb6f01) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil.Test/RingtoetsProjectTestHelperTest.cs (.../RingtoetsProjectTestHelperTest.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -167,6 +167,7 @@ MacroStabilityInwardsStochasticSoilProfile stochasticSoilProfile2 = soilModel.StochasticSoilProfiles[1]; Assert.AreEqual(0.7, stochasticSoilProfile2.Probability); Assert.IsInstanceOf(stochasticSoilProfile2.SoilProfile); + CollectionAssert.IsNotEmpty(((MacroStabilityInwardsSoilProfile2D) stochasticSoilProfile2.SoilProfile).PreconsolidationStresses); Assert.AreEqual("some/path/to/surfaceLineFile", failureMechanism.SurfaceLines.SourcePath); Assert.AreEqual(1, failureMechanism.SurfaceLines.Count); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs =================================================================== diff -u -r69d647795daacbf48e17d0cf3a02a21865ab4ae6 -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs (.../RingtoetsProjectTestHelper.cs) (revision 69d647795daacbf48e17d0cf3a02a21865ab4ae6) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectTestHelper.cs (.../RingtoetsProjectTestHelper.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -1185,7 +1185,11 @@ soilLayer2D }, new[] { - new MacroStabilityInwardsPreconsolidationStress(0.1, 0.2, 0.3, 0.4) + new MacroStabilityInwardsPreconsolidationStress(new Point2D(1, 2), new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 3, + CoefficientOfVariation = (RoundedDouble) 4 + }) }); macroStabilityInwardsFailureMechanism.StochasticSoilModels.AddRange(new[] Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfile/MacroStabilityInwardsPreconsolidationStress.cs =================================================================== diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfile/MacroStabilityInwardsPreconsolidationStress.cs (.../MacroStabilityInwardsPreconsolidationStress.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Data/SoilProfile/MacroStabilityInwardsPreconsolidationStress.cs (.../MacroStabilityInwardsPreconsolidationStress.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -20,7 +20,6 @@ // All rights reserved. using System; -using Core.Common.Base.Data; using Core.Common.Base.Geometry; using Ringtoets.Common.Data.Probabilistics; using Ringtoets.MacroStabilityInwards.Primitives.Properties; @@ -36,37 +35,23 @@ /// /// Creates a new instance of . /// - /// The x coordinate of the preconsolidation stress location. - /// The z coordinate of the preconsolidation stress location. - /// The mean of the stochastic distribution - /// for the preconsolidation stress. - /// The coefficient of - /// variation of the stochastic distribution for the preconsolidation stress. + /// The location of the preconsolidation stress. + /// The stress distribution belonging to the preconsolidation stress. /// Thrown when any of the parameters are . - /// Thrown when: - /// - /// is less than or equal to 0. - /// is less than 0. - /// - public MacroStabilityInwardsPreconsolidationStress(double xCoordinate, - double zCoordinate, - double preconsolidationStressMean, - double preconsolidationStressCoefficientOfVariation) + public MacroStabilityInwardsPreconsolidationStress(Point2D location, VariationCoefficientLogNormalDistribution stressDistribution) { - ValidateParameterNaN(xCoordinate, Resources.MacroStabilityInwardsPreconsolidationStress_XCoordinate_ParameterName); - ValidateParameterNaN(zCoordinate, Resources.MacroStabilityInwardsPreconsolidationStress_ZCoordinate_ParameterName); - ValidateParameterNaN(preconsolidationStressMean, Resources.MacroStabilityInwardsPreconsolidationStress_PreconsolidationStressMean_ParameterName); - ValidateParameterNaN(preconsolidationStressCoefficientOfVariation, Resources.MacroStabilityInwardsPreconsolidationStress_PreconsolidationStressCoefficientOfVariation_ParameterName); + ValidateParameterNaN(location.X, Resources.MacroStabilityInwardsPreconsolidationStress_XCoordinate_ParameterName); + ValidateParameterNaN(location.Y, Resources.MacroStabilityInwardsPreconsolidationStress_ZCoordinate_ParameterName); + ValidateParameterNaN(stressDistribution.Mean, Resources.MacroStabilityInwardsPreconsolidationStress_PreconsolidationStressMean_ParameterName); + ValidateParameterNaN(stressDistribution.CoefficientOfVariation, + Resources.MacroStabilityInwardsPreconsolidationStress_PreconsolidationStressCoefficientOfVariation_ParameterName); - new RoundedDouble(2, xCoordinate); - new RoundedDouble(2, zCoordinate); + Location = location; - Location = new Point2D(xCoordinate, zCoordinate); - Stress = new VariationCoefficientLogNormalDistribution(2) { - Mean = (RoundedDouble) preconsolidationStressMean, - CoefficientOfVariation = (RoundedDouble) preconsolidationStressCoefficientOfVariation + Mean = stressDistribution.Mean, + CoefficientOfVariation = stressDistribution.CoefficientOfVariation }; } Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/SoilProfiles/MacroStabilityInwardsPreconsolidationStressTransformer.cs =================================================================== diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/SoilProfiles/MacroStabilityInwardsPreconsolidationStressTransformer.cs (.../MacroStabilityInwardsPreconsolidationStressTransformer.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a) +++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.IO/SoilProfiles/MacroStabilityInwardsPreconsolidationStressTransformer.cs (.../MacroStabilityInwardsPreconsolidationStressTransformer.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -20,6 +20,9 @@ // All rights reserved. using System; +using Core.Common.Base.Data; +using Core.Common.Base.Geometry; +using Ringtoets.Common.Data.Probabilistics; using Ringtoets.Common.IO.Exceptions; using Ringtoets.Common.IO.SoilProfile; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; @@ -60,10 +63,16 @@ try { - return new MacroStabilityInwardsPreconsolidationStress(preconsolidationStress.XCoordinate, - preconsolidationStress.ZCoordinate, - preconsolidationStress.StressMean, - preconsolidationStress.StressCoefficientOfVariation); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) preconsolidationStress.StressMean, + CoefficientOfVariation = (RoundedDouble) preconsolidationStress.StressCoefficientOfVariation + }; + + var location = new Point2D(preconsolidationStress.XCoordinate, + preconsolidationStress.ZCoordinate); + + return new MacroStabilityInwardsPreconsolidationStress(location, distribution); } catch (ArgumentOutOfRangeException e) { Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsSemiProbabilisticDesignVariableFactoryTest.cs =================================================================== diff -u -r69d647795daacbf48e17d0cf3a02a21865ab4ae6 -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsSemiProbabilisticDesignVariableFactoryTest.cs (.../MacroStabilityInwardsSemiProbabilisticDesignVariableFactoryTest.cs) (revision 69d647795daacbf48e17d0cf3a02a21865ab4ae6) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/MacroStabilityInwardsSemiProbabilisticDesignVariableFactoryTest.cs (.../MacroStabilityInwardsSemiProbabilisticDesignVariableFactoryTest.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -21,6 +21,7 @@ using System; using Core.Common.Base.Data; +using Core.Common.Base.Geometry; using NUnit.Framework; using Ringtoets.Common.Data.Probabilistics; using Ringtoets.Common.Data.TestUtil; @@ -71,15 +72,14 @@ // Setup var properties = new MacroStabilityInwardsSoilLayerData { - BelowPhreaticLevel = + BelowPhreaticLevel = { Mean = (RoundedDouble) mean, CoefficientOfVariation = (RoundedDouble) coefficientOfVariation, Shift = (RoundedDouble) (mean - 0.1) } }; - // Call VariationCoefficientDesignVariable belowPhreaticLevel = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetBelowPhreaticLevel(properties); @@ -101,7 +101,6 @@ } }; - // Call VariationCoefficientDesignVariable cohesion = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetCohesion(properties); @@ -123,7 +122,6 @@ } }; - // Call VariationCoefficientDesignVariable frictionAngle = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetFrictionAngle(properties); @@ -138,14 +136,13 @@ // Setup var properties = new MacroStabilityInwardsSoilLayerData { - ShearStrengthRatio = + ShearStrengthRatio = { Mean = (RoundedDouble) mean, CoefficientOfVariation = (RoundedDouble) coefficientOfVariation } }; - // Call VariationCoefficientDesignVariable shearStrengthRatio = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetShearStrengthRatio(properties); @@ -160,14 +157,13 @@ // Setup var properties = new MacroStabilityInwardsSoilLayerData { - StrengthIncreaseExponent = + StrengthIncreaseExponent = { Mean = (RoundedDouble) mean, CoefficientOfVariation = (RoundedDouble) coefficientOfVariation } }; - // Call VariationCoefficientDesignVariable strengthIncreaseExponent = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetStrengthIncreaseExponent(properties); @@ -189,7 +185,6 @@ } }; - // Call VariationCoefficientDesignVariable pop = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetPop(properties); @@ -202,8 +197,15 @@ public void GetPreconsolidationStress_ValidPreconsolidationStress_CreateDesignVariableForPreconsolidationStress() { // Setup - var preconsolidationStress = new MacroStabilityInwardsPreconsolidationStress(0, 0, mean, coefficientOfVariation); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var stressDistribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = (RoundedDouble) random.NextDouble() + }; + var preconsolidationStress = new MacroStabilityInwardsPreconsolidationStress(location, stressDistribution); + // Call VariationCoefficientDesignVariable preconsoldationStress = MacroStabilityInwardsSemiProbabilisticDesignVariableFactory.GetPreconsolidationStress(preconsolidationStress); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsPreconsolidationStressTest.cs =================================================================== diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsPreconsolidationStressTest.cs (.../MacroStabilityInwardsPreconsolidationStressTest.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsPreconsolidationStressTest.cs (.../MacroStabilityInwardsPreconsolidationStressTest.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -40,23 +40,23 @@ // Setup var random = new Random(21); - double xCoordinate = random.NextDouble(); - double zCoordinate = random.NextDouble(); - double stressMean = random.NextDouble(); - double stressCoefficientOfVariation = random.NextDouble(); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; // Call - var stress = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); + var stress = new MacroStabilityInwardsPreconsolidationStress(location, distribution); + // Assert - Assert.AreEqual(new Point2D(xCoordinate, zCoordinate), stress.Location); + Assert.AreEqual(location, stress.Location); DistributionAssert.AreEqual(new VariationCoefficientLogNormalDistribution(2) { - Mean = (RoundedDouble) stressMean, - CoefficientOfVariation = (RoundedDouble) stressCoefficientOfVariation + Mean = distribution.Mean, + CoefficientOfVariation = distribution.CoefficientOfVariation }, stress.Stress); } @@ -68,51 +68,36 @@ double stressCoefficientOfVariation, string parameterName) { + // Setup + var location = new Point2D(xCoordinate, zCoordinate); + var stressDistribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) stressMean, + CoefficientOfVariation = (RoundedDouble) stressCoefficientOfVariation + }; + // Call - TestDelegate call = () => new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); + TestDelegate call = () => new MacroStabilityInwardsPreconsolidationStress(location, stressDistribution); // Assert string expectedMessage = $"De waarde voor parameter '{parameterName}' voor de grensspanning moet een concreet getal zijn."; TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); } [Test] - [TestCase(-1, 0, "Gemiddelde moet groter zijn dan 0.")] - [TestCase(1, -1, "Variatiecoƫfficiƫnt (CV) moet groter zijn dan of gelijk zijn aan 0.")] - public void Constructor_ArgumentsOutOfRange_ThrowArgumentOutOfRangeException(double stressMean, - double stressCoefficientOfVariation, - string expectedMessage) - { - // Setup - var random = new Random(21); - - // Call - TestDelegate call = () => new MacroStabilityInwardsPreconsolidationStress(random.NextDouble(), - random.NextDouble(), - stressMean, - stressCoefficientOfVariation); - // Assert - TestHelper.AssertThrowsArgumentExceptionAndTestMessage(call, expectedMessage); - } - - [Test] public void Equals_ToNull_ReturnsFalse() { // Setup var random = new Random(21); - double xCoordinate = random.NextDouble(); - double zCoordinate = random.NextDouble(); - double stressMean = random.NextDouble(); - double stressCoefficientOfVariation = random.NextDouble(); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; - var stress = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); + var stress = new MacroStabilityInwardsPreconsolidationStress(location, distribution); // Call bool result = stress.Equals(null); @@ -126,17 +111,15 @@ { // Setup var random = new Random(21); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; - double xCoordinate = random.NextDouble(); - double zCoordinate = random.NextDouble(); - double stressMean = random.NextDouble(); - double stressCoefficientOfVariation = random.NextDouble(); + var stress = new MacroStabilityInwardsPreconsolidationStress(location, distribution); - var stress = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); - MacroStabilityInwardsPreconsolidationStress sameStress = stress; // Call @@ -154,15 +137,14 @@ // Setup var random = new Random(21); - double xCoordinate = random.NextDouble(); - double zCoordinate = random.NextDouble(); - double stressMean = random.NextDouble(); - double stressCoefficientOfVariation = random.NextDouble(); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; - var stress = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); + var stress = new MacroStabilityInwardsPreconsolidationStress(location, distribution); // Call bool result = stress.Equals(new object()); @@ -177,21 +159,16 @@ // Setup var random = new Random(21); - double xCoordinate = random.NextDouble(); - double zCoordinate = random.NextDouble(); - double stressMean = random.NextDouble(); - double stressCoefficientOfVariation = random.NextDouble(); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; - var stress = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); + var stress = new MacroStabilityInwardsPreconsolidationStress(location, distribution); + var derivedStress = new DerivedMacroStabilityInwardsPreconsolidationStress(location, distribution); - var derivedStress = new DerivedMacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); - // Call bool result = stress.Equals(derivedStress); @@ -205,21 +182,16 @@ // Setup var random = new Random(21); - double xCoordinate = random.NextDouble(); - double zCoordinate = random.NextDouble(); - double stressMean = random.NextDouble(); - double stressCoefficientOfVariation = random.NextDouble(); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; - var stressA = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); + var stressA = new MacroStabilityInwardsPreconsolidationStress(location, distribution); + var stressB = new MacroStabilityInwardsPreconsolidationStress(location, distribution); - var stressB = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); - // Call bool isStressAEqualToB = stressA.Equals(stressB); bool isStressBEqualToA = stressB.Equals(stressA); @@ -249,23 +221,16 @@ // Setup var random = new Random(21); - double xCoordinate = random.NextDouble(); - double zCoordinate = random.NextDouble(); - double stressMean = random.NextDouble(); - double stressCoefficientOfVariation = random.NextDouble(); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; - var stressA = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); - var stressB = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); - var stressC = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); + var stressA = new MacroStabilityInwardsPreconsolidationStress(location, distribution); + var stressB = new MacroStabilityInwardsPreconsolidationStress(location, distribution); + var stressC = new MacroStabilityInwardsPreconsolidationStress(location, distribution); // Call bool aEqualsB = stressA.Equals(stressB); @@ -284,21 +249,16 @@ // Setup var random = new Random(21); - double xCoordinate = random.NextDouble(); - double zCoordinate = random.NextDouble(); - double stressMean = random.NextDouble(); - double stressCoefficientOfVariation = random.NextDouble(); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; - var stressA = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); + var stressA = new MacroStabilityInwardsPreconsolidationStress(location, distribution); + var stressB = new MacroStabilityInwardsPreconsolidationStress(location, distribution); - var stressB = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); - // Call int hashCodeStressA = stressA.GetHashCode(); int hashCodeStressB = stressB.GetHashCode(); @@ -311,39 +271,40 @@ { var random = new Random(21); - double xCoordinate = random.NextDouble(); - double zCoordinate = random.NextDouble(); - double stressMean = random.NextDouble(); - double stressCoefficientOfVariation = random.NextDouble(); + var baseLocation = new Point2D(random.NextDouble(), random.NextDouble()); + var baseDistribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; - var baseStress = new MacroStabilityInwardsPreconsolidationStress(xCoordinate, - zCoordinate, - stressMean, - stressCoefficientOfVariation); + var baseStress = new MacroStabilityInwardsPreconsolidationStress(baseLocation, baseDistribution); yield return new TestCaseData(baseStress, - new MacroStabilityInwardsPreconsolidationStress(baseStress.Location.X+ random.NextDouble(), - baseStress.Location.Y, - stressMean, - stressCoefficientOfVariation)) + new MacroStabilityInwardsPreconsolidationStress(new Point2D(baseLocation.X + random.NextDouble(), + baseLocation.Y), + baseDistribution)) .SetName("Different X Coordinate"); yield return new TestCaseData(baseStress, - new MacroStabilityInwardsPreconsolidationStress(baseStress.Location.X, - baseStress.Location.Y + random.NextDouble(), - stressMean, - stressCoefficientOfVariation)) + new MacroStabilityInwardsPreconsolidationStress(new Point2D(baseLocation.X, + baseLocation.Y + random.NextDouble()), + baseDistribution)) .SetName("Different Z Coordinate"); yield return new TestCaseData(baseStress, - new MacroStabilityInwardsPreconsolidationStress(baseStress.Location.X, - baseStress.Location.Y, - stressMean + random.NextDouble(), - stressCoefficientOfVariation)) + new MacroStabilityInwardsPreconsolidationStress(baseLocation, + new VariationCoefficientLogNormalDistribution + { + Mean = baseDistribution.Mean + random.NextRoundedDouble(), + CoefficientOfVariation = baseDistribution.CoefficientOfVariation + })) .SetName("Different Mean"); yield return new TestCaseData(baseStress, - new MacroStabilityInwardsPreconsolidationStress(baseStress.Location.X, - baseStress.Location.Y, - stressMean, - stressCoefficientOfVariation + random.NextDouble())) + new MacroStabilityInwardsPreconsolidationStress(baseLocation, + new VariationCoefficientLogNormalDistribution + { + Mean = baseDistribution.Mean, + CoefficientOfVariation = baseDistribution.CoefficientOfVariation + random.NextRoundedDouble() + })) .SetName("Different Coefficient of Variation"); } @@ -364,11 +325,8 @@ private class DerivedMacroStabilityInwardsPreconsolidationStress : MacroStabilityInwardsPreconsolidationStress { - public DerivedMacroStabilityInwardsPreconsolidationStress(double xCoordinate, - double zCoordinate, - double preconsolidationStressMean, - double preconsolidationStressCoefficientOfVariation) - : base(xCoordinate, zCoordinate, preconsolidationStressMean, preconsolidationStressCoefficientOfVariation) {} + public DerivedMacroStabilityInwardsPreconsolidationStress(Point2D location, VariationCoefficientLogNormalDistribution distribution) + : base(location, distribution) {} } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsSoilProfile2DTest.cs =================================================================== diff -u -r69d647795daacbf48e17d0cf3a02a21865ab4ae6 -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsSoilProfile2DTest.cs (.../MacroStabilityInwardsSoilProfile2DTest.cs) (revision 69d647795daacbf48e17d0cf3a02a21865ab4ae6) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsSoilProfile2DTest.cs (.../MacroStabilityInwardsSoilProfile2DTest.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -24,10 +24,12 @@ using System.Collections.ObjectModel; using System.Drawing; using System.Linq; +using Core.Common.Base.Data; using Core.Common.Base.Geometry; using Core.Common.TestUtil; using Core.Common.Utils; using NUnit.Framework; +using Ringtoets.Common.Data.Probabilistics; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; namespace Ringtoets.MacroStabilityInwards.Data.Test.SoilProfile @@ -353,20 +355,29 @@ private static MacroStabilityInwardsPreconsolidationStress CreateRandomPreconsolidationStress(int seed) { var random = new Random(seed); - return new MacroStabilityInwardsPreconsolidationStress(random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble()); + var location = new Point2D(random.NextDouble(), random.NextDouble()); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.005, + CoefficientOfVariation = random.NextRoundedDouble() + }; + + return new MacroStabilityInwardsPreconsolidationStress(location, distribution); } private static MacroStabilityInwardsPreconsolidationStress CopyAndModifyPreconsolidationsStress( - MacroStabilityInwardsPreconsolidationStress stress) + MacroStabilityInwardsPreconsolidationStress preconsolidationStress) { var random = new Random(29); - return new MacroStabilityInwardsPreconsolidationStress(stress.Location.X + random.NextDouble(), - stress.Location.Y + random.NextDouble(), - stress.Stress.Mean + random.NextDouble(), - stress.Stress.CoefficientOfVariation + random.NextDouble()); + var modifiedLocation = new Point2D(preconsolidationStress.Location.X + random.NextDouble(), + preconsolidationStress.Location.Y); + var distribution = new VariationCoefficientLogNormalDistribution + { + Mean = preconsolidationStress.Stress.Mean, + CoefficientOfVariation = preconsolidationStress.Stress.CoefficientOfVariation + }; + + return new MacroStabilityInwardsPreconsolidationStress(modifiedLocation, distribution); } private static string GetRandomName(Random random) Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsSoilProfileUnderSurfaceLineFactoryTest.cs =================================================================== diff -u -r69d647795daacbf48e17d0cf3a02a21865ab4ae6 -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsSoilProfileUnderSurfaceLineFactoryTest.cs (.../MacroStabilityInwardsSoilProfileUnderSurfaceLineFactoryTest.cs) (revision 69d647795daacbf48e17d0cf3a02a21865ab4ae6) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.Test/SoilProfile/MacroStabilityInwardsSoilProfileUnderSurfaceLineFactoryTest.cs (.../MacroStabilityInwardsSoilProfileUnderSurfaceLineFactoryTest.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -29,6 +29,7 @@ using Rhino.Mocks; using Ringtoets.Common.Data.Probabilistics; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; +using Ringtoets.MacroStabilityInwards.Data.TestUtil.SoilProfile; using Ringtoets.MacroStabilityInwards.Primitives; namespace Ringtoets.MacroStabilityInwards.Data.Test.SoilProfile @@ -623,17 +624,10 @@ yield return new TestCaseData(Enumerable.Empty()) .SetName("No preconsolidation stresses"); - var random = new Random(21); var preconsolidationStresses = new List { - new MacroStabilityInwardsPreconsolidationStress(random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble()), - new MacroStabilityInwardsPreconsolidationStress(random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble()) + MacroStabilityInwardsPreconsolidationStressTestFactory.CreateMacroStabilityInwardsPreconsolidationStress(), + MacroStabilityInwardsPreconsolidationStressTestFactory.CreateMacroStabilityInwardsPreconsolidationStress() }; yield return new TestCaseData(preconsolidationStresses) .SetName("Multiple preconsolidation stresses"); Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/SoilProfile/MacroStabilityInwardsPreconsolidationStressTestFactory.cs =================================================================== diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/SoilProfile/MacroStabilityInwardsPreconsolidationStressTestFactory.cs (.../MacroStabilityInwardsPreconsolidationStressTestFactory.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Data.TestUtil/SoilProfile/MacroStabilityInwardsPreconsolidationStressTestFactory.cs (.../MacroStabilityInwardsPreconsolidationStressTestFactory.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -19,6 +19,9 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using Core.Common.Base.Data; +using Core.Common.Base.Geometry; +using Ringtoets.Common.Data.Probabilistics; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; namespace Ringtoets.MacroStabilityInwards.Data.TestUtil.SoilProfile @@ -35,7 +38,12 @@ /// The created . public static MacroStabilityInwardsPreconsolidationStress CreateMacroStabilityInwardsPreconsolidationStress() { - return new MacroStabilityInwardsPreconsolidationStress(13, 34, 10.09, 20.05); + return new MacroStabilityInwardsPreconsolidationStress(new Point2D(13, 34), + new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 10.09, + CoefficientOfVariation = (RoundedDouble) 20.05 + }); } } } \ No newline at end of file Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsPreconsolidationStressPropertiesTest.cs =================================================================== diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsPreconsolidationStressPropertiesTest.cs (.../MacroStabilityInwardsPreconsolidationStressPropertiesTest.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Forms.Test/PropertyClasses/MacroStabilityInwardsPreconsolidationStressPropertiesTest.cs (.../MacroStabilityInwardsPreconsolidationStressPropertiesTest.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -50,26 +50,23 @@ public void Constructor_WithPreconsolidationStress_ReturnsExpectedValues() { // Setup - var random = new Random(21); - var stress = new MacroStabilityInwardsPreconsolidationStress(random.NextDouble(), - random.NextDouble(), - random.NextDouble(), - random.NextDouble()); + MacroStabilityInwardsPreconsolidationStress preconsolidationStress = + MacroStabilityInwardsPreconsolidationStressTestFactory.CreateMacroStabilityInwardsPreconsolidationStress(); // Call - var properties = new MacroStabilityInwardsPreconsolidationStressProperties(stress); + var properties = new MacroStabilityInwardsPreconsolidationStressProperties(preconsolidationStress); // Assert Assert.IsInstanceOf>(properties); - Assert.AreSame(stress, properties.Data); + Assert.AreSame(preconsolidationStress, properties.Data); Assert.AreEqual(2, properties.XCoordinate.NumberOfDecimalPlaces); - Assert.AreEqual(stress.Location.X, properties.XCoordinate, properties.XCoordinate.GetAccuracy()); + Assert.AreEqual(preconsolidationStress.Location.X, properties.XCoordinate, properties.XCoordinate.GetAccuracy()); Assert.AreEqual(2, properties.ZCoordinate.NumberOfDecimalPlaces); - Assert.AreEqual(stress.Location.Y, properties.ZCoordinate, properties.ZCoordinate.GetAccuracy()); + Assert.AreEqual(preconsolidationStress.Location.Y, properties.ZCoordinate, properties.ZCoordinate.GetAccuracy()); Assert.IsInstanceOf(properties.PreconsolidationStress); - Assert.AreSame(stress.Stress, properties.PreconsolidationStress.Data); + Assert.AreSame(preconsolidationStress.Stress, properties.PreconsolidationStress.Data); } [Test] Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs =================================================================== diff -u -r9f936b0b29f490a024df02345df182133b1c041a -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs (.../MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs) (revision 9f936b0b29f490a024df02345df182133b1c041a) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Plugin.Test/FileImporter/MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs (.../MacroStabilityInwardsStochasticSoilModelUpdateDataStrategyTest.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -582,11 +582,9 @@ soilProfile.Layers.Select(s => new MacroStabilityInwardsSoilLayer2D( new Ring(s.OuterRing.Points.Select(p => new Point2D(p.Y - 1, p.Y))), s.Holes)), - soilProfile.PreconsolidationStresses.Select(stress => new MacroStabilityInwardsPreconsolidationStress( - stress.Location.X + 1, - stress.Location.Y, - stress.Stress.Mean, - stress.Stress.CoefficientOfVariation)))); + soilProfile.PreconsolidationStresses.Select(stress => new MacroStabilityInwardsPreconsolidationStress(new Point2D(stress.Location.X + 1, + stress.Location.Y), + stress.Stress)))); } private static MacroStabilityInwardsStochasticSoilProfile CloneAndSlightlyModify1DProfile(MacroStabilityInwardsStochasticSoilProfile profile) Index: Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Service.Test/Converters/UpliftVanSoilProfileConverterTest.cs =================================================================== diff -u -r69d647795daacbf48e17d0cf3a02a21865ab4ae6 -r31f59cfc48a6839453e372572d03ecc6ae6f0d00 --- Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Service.Test/Converters/UpliftVanSoilProfileConverterTest.cs (.../UpliftVanSoilProfileConverterTest.cs) (revision 69d647795daacbf48e17d0cf3a02a21865ab4ae6) +++ Ringtoets/MacroStabilityInwards/test/Ringtoets.MacroStabilityInwards.Service.Test/Converters/UpliftVanSoilProfileConverterTest.cs (.../UpliftVanSoilProfileConverterTest.cs) (revision 31f59cfc48a6839453e372572d03ecc6ae6f0d00) @@ -27,6 +27,7 @@ using Core.Common.Base.Geometry; using Core.Common.TestUtil; using NUnit.Framework; +using Ringtoets.Common.Data.Probabilistics; using Ringtoets.MacroStabilityInwards.Data; using Ringtoets.MacroStabilityInwards.Data.SoilProfile; using Ringtoets.MacroStabilityInwards.KernelWrapper.Calculators.UpliftVan.Input; @@ -106,7 +107,12 @@ }) }, new[] { - new MacroStabilityInwardsPreconsolidationStress(random.NextDouble(), random.NextDouble(), random.NextDouble(), random.NextDouble()) + new MacroStabilityInwardsPreconsolidationStress(new Point2D(random.NextDouble(), random.NextDouble()), + new VariationCoefficientLogNormalDistribution + { + Mean = (RoundedDouble) 0.05, + CoefficientOfVariation = random.NextRoundedDouble() + }) }); // Call