Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PipingSoilLayerCreateExtensions.cs =================================================================== diff -u -r85b571554c7784f01886b506a4b18f4391a5d7fa -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PipingSoilLayerCreateExtensions.cs (.../PipingSoilLayerCreateExtensions.cs) (revision 85b571554c7784f01886b506a4b18f4391a5d7fa) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Create/PipingSoilLayerCreateExtensions.cs (.../PipingSoilLayerCreateExtensions.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -50,6 +50,7 @@ Top = layer.Top, BelowPhreaticLevelMean = layer.BelowPhreaticLevelMean.ToNaNAsNull(), BelowPhreaticLevelDeviation = layer.BelowPhreaticLevelDeviation.ToNaNAsNull(), + BelowPhreaticLevelShift = layer.BelowPhreaticLevelShift.ToNaNAsNull(), DiameterD70Mean = layer.DiameterD70Mean.ToNaNAsNull(), DiameterD70Deviation = layer.DiameterD70Deviation.ToNaNAsNull(), PermeabilityMean = layer.PermeabilityMean.ToNaNAsNull(), Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/DatabaseStructure.sql =================================================================== diff -u -rc8c1b80956a5fc60e75510d9dc7a840062230b3b -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/DatabaseStructure.sql (.../DatabaseStructure.sql) (revision c8c1b80956a5fc60e75510d9dc7a840062230b3b) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/DatabaseStructure.sql (.../DatabaseStructure.sql) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -1,6 +1,6 @@ /* ---------------------------------------------------- */ /* Generated by Enterprise Architect Version 12.0 */ -/* Created On : 13-jul-2016 14:40:38 */ +/* Created On : 13-jul-2016 16:03:28 */ /* DBMS : SQLite */ /* ---------------------------------------------------- */ @@ -305,6 +305,7 @@ 'BelowPhreaticLevelDeviation' REAL, 'DiameterD70Mean' REAL, 'DiameterD70Deviation' REAL, + 'BelowPhreaticLevelShift' REAL, 'PermeabilityMean' REAL, 'PermeabilityDeviation' REAL, CONSTRAINT 'FK_SoilLayerEntity_SoilProfileEntity' FOREIGN KEY ('SoilProfileEntityId') REFERENCES 'SoilProfileEntity' ('SoilProfileEntityId') ON DELETE Cascade ON UPDATE Cascade Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.Designer.cs =================================================================== diff -u -rc8c1b80956a5fc60e75510d9dc7a840062230b3b -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.Designer.cs (.../RingtoetsEntities.Designer.cs) (revision c8c1b80956a5fc60e75510d9dc7a840062230b3b) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.Designer.cs (.../RingtoetsEntities.Designer.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -1,4 +1,4 @@ -// T4 code generation is enabled for model 'D:\Branch_WTI2017\Application\Ringtoets\src\Application.Ringtoets.Storage\DbContext\RingtoetsEntities.edmx'. +// T4 code generation is enabled for model 'D:\repos\WettelijkToetsInstrumentarium\Application\Ringtoets\src\Application.Ringtoets.Storage\DbContext\RingtoetsEntities.edmx'. // To enable legacy code generation, change the value of the 'Code Generation Strategy' designer // property to 'Legacy ObjectContext'. This property is available in the Properties Window when the model // is open in the designer. Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx =================================================================== diff -u -rc8c1b80956a5fc60e75510d9dc7a840062230b3b -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx (.../RingtoetsEntities.edmx) (revision c8c1b80956a5fc60e75510d9dc7a840062230b3b) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx (.../RingtoetsEntities.edmx) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -4,7 +4,7 @@ - + @@ -320,6 +320,7 @@ + @@ -1774,6 +1775,7 @@ + @@ -2774,6 +2776,7 @@ + Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx.diagram =================================================================== diff -u -rc8c1b80956a5fc60e75510d9dc7a840062230b3b -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx.diagram (.../RingtoetsEntities.edmx.diagram) (revision c8c1b80956a5fc60e75510d9dc7a840062230b3b) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/RingtoetsEntities.edmx.diagram (.../RingtoetsEntities.edmx.diagram) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -6,46 +6,46 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + - - + + Index: Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/SoilLayerEntity.cs =================================================================== diff -u -r37652d7a208ab210033b48025d8d768d409086a8 -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/SoilLayerEntity.cs (.../SoilLayerEntity.cs) (revision 37652d7a208ab210033b48025d8d768d409086a8) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/DbContext/SoilLayerEntity.cs (.../SoilLayerEntity.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -45,6 +45,7 @@ public Nullable BelowPhreaticLevelDeviation { get; set; } public Nullable DiameterD70Mean { get; set; } public Nullable DiameterD70Deviation { get; set; } + public Nullable BelowPhreaticLevelShift { get; set; } public Nullable PermeabilityMean { get; set; } public Nullable PermeabilityDeviation { get; set; } Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Read/SoilLayerEntityReadExtensions.cs =================================================================== diff -u -r85b571554c7784f01886b506a4b18f4391a5d7fa -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Read/SoilLayerEntityReadExtensions.cs (.../SoilLayerEntityReadExtensions.cs) (revision 85b571554c7784f01886b506a4b18f4391a5d7fa) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Read/SoilLayerEntityReadExtensions.cs (.../SoilLayerEntityReadExtensions.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -47,6 +47,7 @@ MaterialName = entity.MaterialName ?? string.Empty, BelowPhreaticLevelMean = entity.BelowPhreaticLevelMean.ToNullAsNaN(), BelowPhreaticLevelDeviation = entity.BelowPhreaticLevelDeviation.ToNullAsNaN(), + BelowPhreaticLevelShift = entity.BelowPhreaticLevelShift.ToNullAsNaN(), DiameterD70Mean = entity.DiameterD70Mean.ToNullAsNaN(), DiameterD70Deviation = entity.DiameterD70Deviation.ToNullAsNaN(), PermeabilityMean = entity.PermeabilityMean.ToNullAsNaN(), Index: Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingSoilLayerUpdateExtensions.cs =================================================================== diff -u -r85b571554c7784f01886b506a4b18f4391a5d7fa -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingSoilLayerUpdateExtensions.cs (.../PipingSoilLayerUpdateExtensions.cs) (revision 85b571554c7784f01886b506a4b18f4391a5d7fa) +++ Application/Ringtoets/src/Application.Ringtoets.Storage/Update/PipingSoilLayerUpdateExtensions.cs (.../PipingSoilLayerUpdateExtensions.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -67,6 +67,7 @@ entity.MaterialName = layer.MaterialName; entity.BelowPhreaticLevelMean = layer.BelowPhreaticLevelMean.ToNaNAsNull(); entity.BelowPhreaticLevelDeviation = layer.BelowPhreaticLevelDeviation.ToNaNAsNull(); + entity.BelowPhreaticLevelShift = layer.BelowPhreaticLevelShift.ToNaNAsNull(); entity.DiameterD70Mean = layer.DiameterD70Mean.ToNaNAsNull(); entity.DiameterD70Deviation = layer.DiameterD70Deviation.ToNaNAsNull(); entity.PermeabilityMean = layer.PermeabilityMean.ToNaNAsNull(); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/PipingSoilLayerCreateExtensionsTest.cs =================================================================== diff -u -r85b571554c7784f01886b506a4b18f4391a5d7fa -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/PipingSoilLayerCreateExtensionsTest.cs (.../PipingSoilLayerCreateExtensionsTest.cs) (revision 85b571554c7784f01886b506a4b18f4391a5d7fa) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Create/PipingSoilLayerCreateExtensionsTest.cs (.../PipingSoilLayerCreateExtensionsTest.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -51,12 +51,20 @@ { // Setup double top = new Random(21).NextDouble(); + var random = new Random(21); var soilLayer = new PipingSoilLayer(top) { IsAquifer = isAquifer, - BelowPhreaticLevelMean = 2.2, Color = Color.AliceBlue, - MaterialName = "MaterialName" + MaterialName = "MaterialName", + BelowPhreaticLevelMean = random.NextDouble(), + BelowPhreaticLevelDeviation = random.NextDouble(), + BelowPhreaticLevelShift = random.NextDouble(), + DiameterD70Mean = double.NaN, + DiameterD70Deviation = double.NaN, + PermeabilityMean = random.NextDouble(), + PermeabilityDeviation = random.NextDouble() + }; var registry = new PersistenceRegistry(); @@ -70,6 +78,7 @@ Assert.AreEqual(soilLayer.Color.ToArgb(), Convert.ToInt32(entity.Color)); Assert.AreEqual(soilLayer.BelowPhreaticLevelMean.ToNaNAsNull(), entity.BelowPhreaticLevelMean); Assert.AreEqual(soilLayer.BelowPhreaticLevelDeviation.ToNaNAsNull(), entity.BelowPhreaticLevelDeviation); + Assert.AreEqual(soilLayer.BelowPhreaticLevelShift.ToNaNAsNull(), entity.BelowPhreaticLevelShift); Assert.AreEqual(soilLayer.DiameterD70Mean.ToNaNAsNull(), entity.DiameterD70Mean); Assert.AreEqual(soilLayer.DiameterD70Deviation.ToNaNAsNull(), entity.DiameterD70Deviation); Assert.AreEqual(soilLayer.PermeabilityMean.ToNaNAsNull(), entity.PermeabilityMean); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/SoilLayerEntityReadExtensionsTest.cs =================================================================== diff -u -r85b571554c7784f01886b506a4b18f4391a5d7fa -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/SoilLayerEntityReadExtensionsTest.cs (.../SoilLayerEntityReadExtensionsTest.cs) (revision 85b571554c7784f01886b506a4b18f4391a5d7fa) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Read/SoilLayerEntityReadExtensionsTest.cs (.../SoilLayerEntityReadExtensionsTest.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -45,6 +45,7 @@ var belowPhreaticLevelMean = random.NextDouble(); var belowPhreaticLevelDeviation = random.NextDouble(); + var belowPhreaticLevelShift = random.NextDouble(); var diameterD70Mean = random.NextDouble(); var diameterD70Deviation = random.NextDouble(); var permeabilityMean = random.NextDouble(); @@ -59,6 +60,7 @@ MaterialName = materialName, BelowPhreaticLevelMean = belowPhreaticLevelMean, BelowPhreaticLevelDeviation = belowPhreaticLevelDeviation, + BelowPhreaticLevelShift = belowPhreaticLevelShift, DiameterD70Mean = diameterD70Mean, DiameterD70Deviation = diameterD70Deviation, PermeabilityMean = permeabilityMean, @@ -78,6 +80,7 @@ Assert.AreEqual(belowPhreaticLevelMean, layer.BelowPhreaticLevelMean); Assert.AreEqual(belowPhreaticLevelDeviation, layer.BelowPhreaticLevelDeviation); + Assert.AreEqual(belowPhreaticLevelShift, layer.BelowPhreaticLevelShift); Assert.AreEqual(diameterD70Mean, layer.DiameterD70Mean); Assert.AreEqual(diameterD70Deviation, layer.DiameterD70Deviation); Assert.AreEqual(permeabilityMean, layer.PermeabilityMean); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingSoilLayerUpdateExtensionsTest.cs =================================================================== diff -u -r85b571554c7784f01886b506a4b18f4391a5d7fa -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingSoilLayerUpdateExtensionsTest.cs (.../PipingSoilLayerUpdateExtensionsTest.cs) (revision 85b571554c7784f01886b506a4b18f4391a5d7fa) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.Test/Update/PipingSoilLayerUpdateExtensionsTest.cs (.../PipingSoilLayerUpdateExtensionsTest.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -140,6 +140,7 @@ IsAquifer = true, BelowPhreaticLevelMean = random.NextDouble(), BelowPhreaticLevelDeviation = random.NextDouble(), + BelowPhreaticLevelShift = random.NextDouble(), DiameterD70Mean = double.NaN, DiameterD70Deviation = double.NaN, PermeabilityMean = random.NextDouble(), @@ -155,6 +156,7 @@ IsAquifer = Convert.ToByte(false), BelowPhreaticLevelMean = 2.2, BelowPhreaticLevelDeviation = 8.5, + BelowPhreaticLevelShift = 1.5, DiameterD70Mean = 5.5, DiameterD70Deviation = 3.8, PermeabilityMean = 1.2, @@ -173,6 +175,7 @@ Assert.AreEqual(Convert.ToByte(true), soilLayerEntity.IsAquifer); Assert.AreEqual(pipingSoilLayer.BelowPhreaticLevelMean, soilLayerEntity.BelowPhreaticLevelMean); Assert.AreEqual(pipingSoilLayer.BelowPhreaticLevelDeviation, soilLayerEntity.BelowPhreaticLevelDeviation); + Assert.AreEqual(pipingSoilLayer.BelowPhreaticLevelShift, soilLayerEntity.BelowPhreaticLevelShift); Assert.IsNull(soilLayerEntity.DiameterD70Mean); Assert.IsNull(soilLayerEntity.DiameterD70Deviation); Assert.AreEqual(pipingSoilLayer.PermeabilityMean, soilLayerEntity.PermeabilityMean); Index: Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs =================================================================== diff -u -r85b571554c7784f01886b506a4b18f4391a5d7fa -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs (.../RingtoetsProjectHelper.cs) (revision 85b571554c7784f01886b506a4b18f4391a5d7fa) +++ Application/Ringtoets/test/Application.Ringtoets.Storage.TestUtil/RingtoetsProjectHelper.cs (.../RingtoetsProjectHelper.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -119,6 +119,12 @@ PipingSoilProfile pipingSoilProfile = new TestPipingSoilProfile(); PipingSoilLayer pipingSoilLayer = pipingSoilProfile.Layers.First(); pipingSoilLayer.BelowPhreaticLevelMean = 2.2; + pipingSoilLayer.BelowPhreaticLevelDeviation = 1.2; + pipingSoilLayer.BelowPhreaticLevelShift = 3.2; + pipingSoilLayer.DiameterD70Mean = 2.42; + pipingSoilLayer.DiameterD70Deviation = 21.002; + pipingSoilLayer.PermeabilityMean = 0.9982; + pipingSoilLayer.PermeabilityDeviation = 0.220; pipingSoilLayer.Color = Color.HotPink; pipingSoilLayer.MaterialName = "HotPinkLayer"; Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/GenericSoilLayerParameters.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/GenericSoilLayerParameters.cs (.../GenericSoilLayerParameters.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/GenericSoilLayerParameters.cs (.../GenericSoilLayerParameters.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -130,6 +130,10 @@ { pipingSoilLayer.BelowPhreaticLevelDeviation = BelowPhreaticLevelDeviation.Value; } + if (BelowPhreaticLevelShift.HasValue) + { + pipingSoilLayer.BelowPhreaticLevelShift = BelowPhreaticLevelShift.Value; + } if (DiameterD70Mean.HasValue) { pipingSoilLayer.DiameterD70Mean = DiameterD70Mean.Value; @@ -153,24 +157,23 @@ /// are correct for creating a . /// /// Thrown when any of the distributions of the - /// stochastic parameters is not defined as lognormal. + /// stochastic parameters is not defined as lognormal or is shifted when it should not be. protected void ValidateStochasticParametersForPiping() { ValidateIsLogNormal( - BelowPhreaticLevelDistribution, - BelowPhreaticLevelShift, + BelowPhreaticLevelDistribution, Resources.SoilLayer_BelowPhreaticLevelDistribution_Description); - ValidateIsLogNormal( + ValidateIsNonShiftedLogNormal( DiameterD70Distribution, DiameterD70Shift, Resources.SoilLayer_DiameterD70Distribution_Description); - ValidateIsLogNormal( + ValidateIsNonShiftedLogNormal( PermeabilityDistribution, PermeabilityShift, Resources.SoilLayer_PermeabilityDistribution_Description); } - private static void ValidateIsLogNormal(long? distribution, double? shift, string incorrectDistibutionParameter) + private static void ValidateIsNonShiftedLogNormal(long? distribution, double? shift, string incorrectDistibutionParameter) { if (distribution.HasValue && (distribution != SoilLayerConstants.LogNormalDistributionValue || shift != 0.0)) { @@ -179,5 +182,15 @@ incorrectDistibutionParameter)); } } + + private static void ValidateIsLogNormal(long? distribution, string incorrectDistibutionParameter) + { + if (distribution.HasValue && distribution != SoilLayerConstants.LogNormalDistributionValue) + { + throw new SoilLayerConversionException(string.Format( + Resources.SoilLayer_Stochastic_parameter_0_has_no_shifted_lognormal_distribution, + incorrectDistibutionParameter)); + } + } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilLayer1D.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilLayer1D.cs (.../SoilLayer1D.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilLayer1D.cs (.../SoilLayer1D.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -52,7 +52,7 @@ /// /// The with properties corresponding to those set on the . /// Thrown when any of the distributions of the - /// stochastic parameters is not defined as lognormal. + /// stochastic parameters is not defined as lognormal or is shifted when it should not be. internal PipingSoilLayer AsPipingSoilLayer() { ValidateStochasticParametersForPiping(); Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilLayer2D.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilLayer2D.cs (.../SoilLayer2D.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilLayer2D.cs (.../SoilLayer2D.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -110,7 +110,8 @@ /// /// any of the or contain a vertical /// line at - /// any of the distributions of the stochastic parameters is not defined as lognormal + /// any of the distributions of the stochastic parameters is not defined as lognormal + /// or is shifted when it should not be /// /// internal IEnumerable AsPipingSoilLayers(double atX, out double bottom) Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilProfileBuilder2D.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilProfileBuilder2D.cs (.../SoilProfileBuilder2D.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Builders/SoilProfileBuilder2D.cs (.../SoilProfileBuilder2D.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -90,7 +90,7 @@ /// the 's geometry contains vertical segments at the /// X-coordinate given for the construction of the . /// any of the distributions of the stochastic parameters for is not defined - /// as lognormal + /// as lognormal or is shifted when it should not be /// internal SoilProfileBuilder2D Add(SoilLayer2D soilLayer) { Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs =================================================================== diff -u -rcb6877f670bacc7a6a896ab132d592eeef1107b5 -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision cb6877f670bacc7a6a896ab132d592eeef1107b5) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -317,6 +317,15 @@ } /// + /// Looks up a localized string similar to De parameter '{0}' is niet verschoven lognormaal verdeeld.. + /// + public static string SoilLayer_Stochastic_parameter_0_has_no_shifted_lognormal_distribution { + get { + return ResourceManager.GetString("SoilLayer_Stochastic_parameter_0_has_no_shifted_lognormal_distribution", resourceCulture); + } + } + + /// /// Looks up a localized string similar to De segmenten van de geometrie van de laag vormen geen lus.. /// public static string SoilLayer2D_Error_Loop_contains_disconnected_segments { Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx =================================================================== diff -u -rcb6877f670bacc7a6a896ab132d592eeef1107b5 -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx (.../Resources.resx) (revision cb6877f670bacc7a6a896ab132d592eeef1107b5) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx (.../Resources.resx) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -225,4 +225,7 @@ De parameter '{0}' is niet lognormaal verdeeld. + + De parameter '{0}' is niet verschoven lognormaal verdeeld. + \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/SoilProfile2DReader.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -48,7 +48,8 @@ /// the parsed geometry did not contain loops; /// after reading the layers, no layers were added to be build; /// unexpected values were encountered for layer properties; - /// stochastic layer properties were not defined with a lognormal distribution + /// stochastic layer properties were not defined with a lognormal distribution + /// or is shifted when it should not be /// /// internal static PipingSoilProfile ReadFrom(IRowBasedDatabaseReader reader) Index: Ringtoets/Piping/src/Ringtoets.Piping.Primitives/PipingSoilLayer.cs =================================================================== diff -u -r223528aec31c0f78f0f8ff67991e43f781075931 -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/src/Ringtoets.Piping.Primitives/PipingSoilLayer.cs (.../PipingSoilLayer.cs) (revision 223528aec31c0f78f0f8ff67991e43f781075931) +++ Ringtoets/Piping/src/Ringtoets.Piping.Primitives/PipingSoilLayer.cs (.../PipingSoilLayer.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -60,18 +60,24 @@ public bool IsAquifer { get; set; } /// - /// Gets or sets mean of the distrubtion for the volumic weight of the below the phreatic level. + /// Gets or sets the mean of the distrubtion for the volumic weight of the below the phreatic level. /// [kN/m³] /// public double BelowPhreaticLevelMean { get; set; } /// - /// Gets or sets deviation of the distrubtion for the volumic weight of the below the phreatic level. + /// Gets or sets the deviation of the distrubtion for the volumic weight of the below the phreatic level. /// [kN/m³] /// public double BelowPhreaticLevelDeviation { get; set; } /// + /// Gets or sets the shift of the distrubtion for the volumic weight of the below the phreatic level. + /// [kN/m³] + /// + public double BelowPhreaticLevelShift { get; set; } + + /// /// Gets or sets the mean of the distribution for the mean diameter of small scale tests applied to different kinds of sand, /// on which the formula of Sellmeijer has been fit. /// [m] Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Builders/SoilLayer1DTest.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Builders/SoilLayer1DTest.cs (.../SoilLayer1DTest.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Builders/SoilLayer1DTest.cs (.../SoilLayer1DTest.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -119,6 +119,7 @@ Assert.AreEqual(isAquifer.Equals(1.0), result.IsAquifer); Assert.AreEqual(belowPhreaticLevelMean, result.BelowPhreaticLevelMean); Assert.AreEqual(belowPhreaticLevelDeviation, result.BelowPhreaticLevelDeviation); + Assert.AreEqual(belowPhreaticLevelShift, result.BelowPhreaticLevelShift); Assert.AreEqual(diameterD70Mean, result.DiameterD70Mean); Assert.AreEqual(diameterD70Deviation, result.DiameterD70Deviation); Assert.AreEqual(permeabilityMean, result.PermeabilityMean); @@ -128,11 +129,26 @@ } [Test] - [TestCase(false, true, true, "Verzadigd gewicht")] - [TestCase(true, false, true, "Korrelgrootte")] - [TestCase(true, true, false, "Doorlatendheid")] - public void AsPipingSoilLayer_IncorrectDistributionType_ThrowsSoilLayerConversionException( - bool isBelowPhreaticLevelDistributionValid, + public void AsPipingSoilLayer_IncorrectShiftedLogNormalDistributionType_ThrowsSoilLayerConversionException() + { + // Setup + var layer = new SoilLayer1D(0.0) + { + BelowPhreaticLevelDistribution = -1, + }; + + // Call + TestDelegate test = () => layer.AsPipingSoilLayer(); + + // Assert + var message = Assert.Throws(test).Message; + Assert.AreEqual(string.Format("De parameter '{0}' is niet verschoven lognormaal verdeeld.", "Verzadigd gewicht"), message); + } + + [Test] + [TestCase(false, true, "Korrelgrootte")] + [TestCase(true, false, "Doorlatendheid")] + public void AsPipingSoilLayer_IncorrectLogNormalDistributionType_ThrowsSoilLayerConversionException( bool isDiameterD70DistributionValid, bool isPermeabilityDistributionValid, string expectedParameter) @@ -141,8 +157,7 @@ var validShift = 0.0; var layer = new SoilLayer1D(0.0) { - BelowPhreaticLevelDistribution = isBelowPhreaticLevelDistributionValid ? SoilLayerConstants.LogNormalDistributionValue : -1, - BelowPhreaticLevelShift = validShift, + BelowPhreaticLevelDistribution = SoilLayerConstants.LogNormalDistributionValue, DiameterD70Distribution = isDiameterD70DistributionValid ? SoilLayerConstants.LogNormalDistributionValue : -1, DiameterD70Shift = validShift, PermeabilityDistribution = isPermeabilityDistributionValid ? SoilLayerConstants.LogNormalDistributionValue : -1, @@ -158,11 +173,9 @@ } [Test] - [TestCase(1e-6,0.0,0.0,"Verzadigd gewicht")] - [TestCase(0.0,-1e-6,0.0,"Korrelgrootte")] - [TestCase(0.0,0.0,9,"Doorlatendheid")] + [TestCase(-1e-6,0.0,"Korrelgrootte")] + [TestCase(0.0,9,"Doorlatendheid")] public void AsPipingSoilLayer_ShiftNotZero_ThrowsSoilLayerConversionException( - double belowPhreaticLevelShift, double diameterD70Shift, double permeabilityShift, string expectedParameter) @@ -171,8 +184,6 @@ var validDistribution = SoilLayerConstants.LogNormalDistributionValue; var layer = new SoilLayer1D(1.0) { - BelowPhreaticLevelDistribution = validDistribution, - BelowPhreaticLevelShift = belowPhreaticLevelShift, DiameterD70Distribution = validDistribution, DiameterD70Shift = diameterD70Shift, PermeabilityDistribution = validDistribution, Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Builders/SoilLayer2DTest.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Builders/SoilLayer2DTest.cs (.../SoilLayer2DTest.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/Builders/SoilLayer2DTest.cs (.../SoilLayer2DTest.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -864,11 +864,28 @@ } [Test] - [TestCase(false, true, true, "Verzadigd gewicht")] - [TestCase(true, false, true, "Korrelgrootte")] - [TestCase(true, true, false, "Doorlatendheid")] - public void AsPipingSoilLayer_IncorrectDistributionType_ThrowsSoilLayerConversionException( - bool isBelowPhreaticLevelDistributionValid, + public void AsPipingSoilLayer_IncorrectShiftedLogNormalDistributionType_ThrowsSoilLayerConversionException() + { + // Setup + var layer = new SoilLayer2D + { + BelowPhreaticLevelDistribution = -1, + }; + + double bottom; + + // Call + TestDelegate test = () => layer.AsPipingSoilLayers(0, out bottom); + + // Assert + var message = Assert.Throws(test).Message; + Assert.AreEqual(string.Format("De parameter '{0}' is niet verschoven lognormaal verdeeld.", "Verzadigd gewicht"), message); + } + + [Test] + [TestCase(false, true, "Korrelgrootte")] + [TestCase(true, false, "Doorlatendheid")] + public void AsPipingSoilLayer_IncorrectLogNormalDistributionType_ThrowsSoilLayerConversionException( bool isDiameterD70DistributionValid, bool isPermeabilityDistributionValid, string expectedParameter) @@ -877,8 +894,7 @@ var validShift = 0.0; var layer = new SoilLayer2D { - BelowPhreaticLevelDistribution = isBelowPhreaticLevelDistributionValid ? SoilLayerConstants.LogNormalDistributionValue : -1, - BelowPhreaticLevelShift = validShift, + BelowPhreaticLevelDistribution = SoilLayerConstants.LogNormalDistributionValue, DiameterD70Distribution = isDiameterD70DistributionValid ? SoilLayerConstants.LogNormalDistributionValue : -1, DiameterD70Shift = validShift, PermeabilityDistribution = isPermeabilityDistributionValid ? SoilLayerConstants.LogNormalDistributionValue : -1, @@ -896,11 +912,9 @@ } [Test] - [TestCase(1e-6, 0.0, 0.0, "Verzadigd gewicht")] - [TestCase(0.0, -1e-6, 0.0, "Korrelgrootte")] - [TestCase(0.0, 0.0, 9, "Doorlatendheid")] + [TestCase(-1e-6, 0.0, "Korrelgrootte")] + [TestCase(0.0, 9, "Doorlatendheid")] public void AsPipingSoilLayer_ShiftNotZero_ThrowsSoilLayerConversionException( - double belowPhreaticLevelShift, double diameterD70Shift, double permeabilityShift, string expectedParameter) @@ -909,8 +923,6 @@ var validDistribution = SoilLayerConstants.LogNormalDistributionValue; var layer = new SoilLayer2D { - BelowPhreaticLevelDistribution = validDistribution, - BelowPhreaticLevelShift = belowPhreaticLevelShift, DiameterD70Distribution = validDistribution, DiameterD70Shift = diameterD70Shift, PermeabilityDistribution = validDistribution, Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/PipingSoilProfileReaderTest.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/PipingSoilProfileReaderTest.cs (.../PipingSoilProfileReaderTest.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/PipingSoilProfileReaderTest.cs (.../PipingSoilProfileReaderTest.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -376,7 +376,7 @@ } [Test] - public void ReadProfile_DatabaseProfileWithLayerWithIncorrectDistributionForStochastProperty_ReturnsNoProfile() + public void ReadProfile_DatabaseProfileWithLayerWithIncorrectDistributionForBelowPhreaticLevelProperty_ReturnsNoProfile() { // Setup var testFile = "incorrect2dStochastDistributionProperty.soil"; @@ -390,12 +390,33 @@ var exceptionMessage = Assert.Throws(profile).Message; var message = new FileReaderErrorMessageBuilder(databaseFilePath) .WithSubject("ondergrondschematisatie 'Profile'") - .Build(string.Format(Resources.SoilLayer_Stochastic_parameter_0_has_no_lognormal_distribution, Resources.SoilLayer_BelowPhreaticLevelDistribution_Description)); + .Build(string.Format(Resources.SoilLayer_Stochastic_parameter_0_has_no_shifted_lognormal_distribution, Resources.SoilLayer_BelowPhreaticLevelDistribution_Description)); Assert.AreEqual(message, exceptionMessage); } } + [Test] + public void ReadProfile_DatabaseProfileWithLayerWithIncorrectShiftForDiameterD70Property_ReturnsNoProfile() + { + // Setup + var testFile = "incorrect2dStochastShiftProperty.soil"; + string databaseFilePath = Path.Combine(testDataPath, testFile); + using (var pipingSoilProfilesReader = new PipingSoilProfileReader(databaseFilePath)) + { + // Call + TestDelegate profile = () => pipingSoilProfilesReader.ReadProfile(); + + // Assert + var exceptionMessage = Assert.Throws(profile).Message; + var message = new FileReaderErrorMessageBuilder(databaseFilePath) + .WithSubject("ondergrondschematisatie 'Profile'") + .Build(string.Format(Resources.SoilLayer_Stochastic_parameter_0_has_no_lognormal_distribution, Resources.SoilLayer_DiameterD70Distribution_Description)); + Assert.AreEqual(message, exceptionMessage); + } + } + + [Test] public void ReadProfile_DatabaseWith1DProfile3Layers_ReturnsProfile() { // Setup @@ -433,6 +454,12 @@ }, profile.Layers.Select(l => l.BelowPhreaticLevelDeviation)); CollectionAssert.AreEqual(new[] { + 0.4, + 0.32, + 0.3 + }, profile.Layers.Select(l => l.BelowPhreaticLevelShift)); + CollectionAssert.AreEqual(new[] + { 11.3, 0.01, 0.51 @@ -496,6 +523,12 @@ }, profile.Layers.Select(l => l.BelowPhreaticLevelDeviation)); CollectionAssert.AreEqual(new[] { + 0.3, + 0.32, + 0.4 + }, profile.Layers.Select(l => l.BelowPhreaticLevelShift)); + CollectionAssert.AreEqual(new[] + { 0.51, 0.01, 11.3 Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/SoilProfile1DReaderTest.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/SoilProfile1DReaderTest.cs (.../SoilProfile1DReaderTest.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/SoilProfile1DReaderTest.cs (.../SoilProfile1DReaderTest.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -196,28 +196,15 @@ TestDelegate test = () => SoilProfile1DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet verschoven lognormaal verdeeld.", + "Verzadigd gewicht"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } [Test] - public void ReadFrom_InvalidBelowPhreaticLevelShiftValue_ThrowsPipingSoilProfileReadException() - { - // Setup - reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerCount)).Return(1); - reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.BelowPhreaticLevelDistribution)).Return(SoilLayerConstants.LogNormalDistributionValue); - reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.BelowPhreaticLevelShift)).Return(1); - mocks.ReplayAll(); - - // Call - TestDelegate test = () => SoilProfile1DReader.ReadFrom(reader); - - // Assert - Assert.Throws(test); - mocks.VerifyAll(); - } - - [Test] public void ReadFrom_InvalidDiameterD70DistributionValue_ThrowsPipingSoilProfileReadException() { // Setup @@ -229,7 +216,11 @@ TestDelegate test = () => SoilProfile1DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet lognormaal verdeeld.", + "Korrelgrootte"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } @@ -246,7 +237,11 @@ TestDelegate test = () => SoilProfile1DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet lognormaal verdeeld.", + "Korrelgrootte"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } @@ -262,7 +257,11 @@ TestDelegate test = () => SoilProfile1DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet lognormaal verdeeld.", + "Doorlatendheid"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } @@ -279,7 +278,11 @@ TestDelegate test = () => SoilProfile1DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet lognormaal verdeeld.", + "Doorlatendheid"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs =================================================================== diff -u -r6e00eba7f45883916d98df04a84f6d0dca2f61fc -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 --- Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision 6e00eba7f45883916d98df04a84f6d0dca2f61fc) +++ Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision 1b269dccd0ad017fd308a5c9e6639d9a6867b018) @@ -320,47 +320,42 @@ { // Setup reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerCount)).Return(1); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.IntersectionX)).Return(0.0).Repeat.Any(); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerGeometry)).Return(someGeometry).Repeat.Any(); reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.BelowPhreaticLevelDistribution)).Return(1); mocks.ReplayAll(); // Call TestDelegate test = () => SoilProfile2DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet verschoven lognormaal verdeeld.", + "Verzadigd gewicht"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } [Test] - public void ReadFrom_InvalidBelowPhreaticLevelShiftValue_ThrowsPipingSoilProfileReadException() - { - // Setup - reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerCount)).Return(1); - reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.BelowPhreaticLevelDistribution)).Return(SoilLayerConstants.LogNormalDistributionValue); - reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.BelowPhreaticLevelShift)).Return(1); - mocks.ReplayAll(); - - // Call - TestDelegate test = () => SoilProfile2DReader.ReadFrom(reader); - - // Assert - Assert.Throws(test); - mocks.VerifyAll(); - } - - [Test] public void ReadFrom_InvalidDiameterD70DistributionValue_ThrowsPipingSoilProfileReadException() { // Setup reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerCount)).Return(1); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.IntersectionX)).Return(0.0).Repeat.Any(); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerGeometry)).Return(someGeometry).Repeat.Any(); reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.DiameterD70Distribution)).Return(1); mocks.ReplayAll(); // Call TestDelegate test = () => SoilProfile2DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet lognormaal verdeeld.", + "Korrelgrootte"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } @@ -369,6 +364,8 @@ { // Setup reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerCount)).Return(1); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.IntersectionX)).Return(0.0).Repeat.Any(); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerGeometry)).Return(someGeometry).Repeat.Any(); reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.DiameterD70Distribution)).Return(SoilLayerConstants.LogNormalDistributionValue); reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.DiameterD70Shift)).Return(1); mocks.ReplayAll(); @@ -377,7 +374,11 @@ TestDelegate test = () => SoilProfile2DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet lognormaal verdeeld.", + "Korrelgrootte"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } @@ -386,14 +387,20 @@ { // Setup reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerCount)).Return(1); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.IntersectionX)).Return(0.0).Repeat.Any(); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerGeometry)).Return(someGeometry).Repeat.Any(); reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.PermeabilityDistribution)).Return(1); mocks.ReplayAll(); // Call TestDelegate test = () => SoilProfile2DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet lognormaal verdeeld.", + "Doorlatendheid"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } @@ -402,6 +409,8 @@ { // Setup reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerCount)).Return(1); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.IntersectionX)).Return(0.0).Repeat.Any(); + reader.Expect(r => r.Read(SoilProfileDatabaseColumns.LayerGeometry)).Return(someGeometry).Repeat.Any(); reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.PermeabilityDistribution)).Return(SoilLayerConstants.LogNormalDistributionValue); reader.Expect(r => r.ReadOrDefault(SoilProfileDatabaseColumns.PermeabilityShift)).Return(1); mocks.ReplayAll(); @@ -410,7 +419,11 @@ TestDelegate test = () => SoilProfile2DReader.ReadFrom(reader); // Assert - Assert.Throws(test); + var message = Assert.Throws(test).Message; + var expected = string.Format( + "Fout bij het lezen van bestand '' (ondergrondschematisatie ''): De parameter '{0}' is niet lognormaal verdeeld.", + "Doorlatendheid"); + Assert.AreEqual(expected, message); mocks.VerifyAll(); } Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingSoilProfilesReader/1dprofile.soil =================================================================== diff -u -r751aaf9b7623bac357cbacf4e6ddae87b2b69f1f -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 Binary files differ Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingSoilProfilesReader/2dprofile.soil =================================================================== diff -u -r751aaf9b7623bac357cbacf4e6ddae87b2b69f1f -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 Binary files differ Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingSoilProfilesReader/complete.soil =================================================================== diff -u -rcb6877f670bacc7a6a896ab132d592eeef1107b5 -r1b269dccd0ad017fd308a5c9e6639d9a6867b018 Binary files differ Index: Ringtoets/Piping/test/Ringtoets.Piping.IO.Test/test-data/PipingSoilProfilesReader/incorrect2dStochastShiftProperty.soil =================================================================== diff -u Binary files differ