Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile1DReader.cs =================================================================== diff -u -r59e5281d839f616a6a59c51d9e9b70708805489a -r0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8 --- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile1DReader.cs (.../SoilProfile1DReader.cs) (revision 59e5281d839f616a6a59c51d9e9b70708805489a) +++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile1DReader.cs (.../SoilProfile1DReader.cs) (revision 0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8) @@ -365,9 +365,6 @@ soilLayer.PopDeviation = properties.PopCoefficientOfVariation.Value; } - - - return soilLayer; } Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs =================================================================== diff -u -r328170f4547bbc672ba96893823ac1ea46987fef -r0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8 --- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision 328170f4547bbc672ba96893823ac1ea46987fef) +++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision 0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8) @@ -273,6 +273,106 @@ { soilLayer.PermeabilityCoefficientOfVariation = properties.PermeabilityCoefficientOfVariation.Value; } + soilLayer.UsePop = properties.UsePop; + soilLayer.ShearStrengthModel = properties.ShearStrengthModel; + + if (properties.AbovePhreaticLevelDistribution.HasValue) + { + soilLayer.AbovePhreaticLevelDistribution = properties.AbovePhreaticLevelDistribution.Value; + } + if (properties.AbovePhreaticLevelShift.HasValue) + { + soilLayer.AbovePhreaticLevelShift = properties.AbovePhreaticLevelShift.Value; + } + if (properties.AbovePhreaticLevelMean.HasValue) + { + soilLayer.AbovePhreaticLevelMean = properties.AbovePhreaticLevelMean.Value; + } + if (properties.AbovePhreaticLevelCoefficientOfVariation.HasValue) + { + soilLayer.AbovePhreaticLevelDeviation = properties.AbovePhreaticLevelCoefficientOfVariation.Value; + } + if (properties.CohesionDistribution.HasValue) + { + soilLayer.CohesionDistribution = properties.CohesionDistribution.Value; + } + if (properties.CohesionShift.HasValue) + { + soilLayer.CohesionShift = properties.CohesionShift.Value; + } + if (properties.CohesionMean.HasValue) + { + soilLayer.CohesionMean = properties.CohesionMean.Value; + } + if (properties.CohesionCoefficientOfVariation.HasValue) + { + soilLayer.CohesionDeviation = properties.CohesionCoefficientOfVariation.Value; + } + if (properties.FrictionAngleDistribution.HasValue) + { + soilLayer.FrictionAngleDistribution = properties.FrictionAngleDistribution.Value; + } + if (properties.FrictionAngleShift.HasValue) + { + soilLayer.FrictionAngleShift = properties.FrictionAngleShift.Value; + } + if (properties.FrictionAngleMean.HasValue) + { + soilLayer.FrictionAngleMean = properties.FrictionAngleMean.Value; + } + if (properties.FrictionAngleCoefficientOfVariation.HasValue) + { + soilLayer.FrictionAngleDeviation = properties.FrictionAngleCoefficientOfVariation.Value; + } + if (properties.ShearStrengthRatioDistribution.HasValue) + { + soilLayer.ShearStrengthRatioDistribution = properties.ShearStrengthRatioDistribution.Value; + } + if (properties.ShearStrengthRatioShift.HasValue) + { + soilLayer.ShearStrengthRatioShift = properties.ShearStrengthRatioShift.Value; + } + if (properties.ShearStrengthRatioMean.HasValue) + { + soilLayer.ShearStrengthRatioMean = properties.ShearStrengthRatioMean.Value; + } + if (properties.ShearStrengthRatioCoefficientOfVariation.HasValue) + { + soilLayer.ShearStrengthRatioDeviation = properties.ShearStrengthRatioCoefficientOfVariation.Value; + } + if (properties.StrengthIncreaseExponentDistribution.HasValue) + { + soilLayer.StrengthIncreaseExponentDistribution = properties.StrengthIncreaseExponentDistribution.Value; + } + if (properties.StrengthIncreaseExponentShift.HasValue) + { + soilLayer.StrengthIncreaseExponentShift = properties.StrengthIncreaseExponentShift.Value; + } + if (properties.StrengthIncreaseExponentMean.HasValue) + { + soilLayer.StrengthIncreaseExponentMean = properties.StrengthIncreaseExponentMean.Value; + } + if (properties.StrengthIncreaseExponentCoefficientOfVariation.HasValue) + { + soilLayer.StrengthIncreaseExponentDeviation = properties.StrengthIncreaseExponentCoefficientOfVariation.Value; + } + if (properties.PopDistribution.HasValue) + { + soilLayer.PopDistribution = properties.PopDistribution.Value; + } + if (properties.PopShift.HasValue) + { + soilLayer.PopShift = properties.PopShift.Value; + } + if (properties.PopMean.HasValue) + { + soilLayer.PopMean = properties.PopMean.Value; + } + if (properties.PopCoefficientOfVariation.HasValue) + { + soilLayer.PopDeviation = properties.PopCoefficientOfVariation.Value; + } + return soilLayer; } Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile1DReaderTest.cs =================================================================== diff -u -r2b9b8cf5a9fb3820d6663c18ec3b9089369e7405 -r0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile1DReaderTest.cs (.../SoilProfile1DReaderTest.cs) (revision 2b9b8cf5a9fb3820d6663c18ec3b9089369e7405) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile1DReaderTest.cs (.../SoilProfile1DReaderTest.cs) (revision 0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8) @@ -284,9 +284,9 @@ CollectionAssert.AreEqual(new[] { 30, - 0, - -35, - -40 + 10, + -20, + -30 }, profile.Layers.Select(l => l.Top)); CollectionAssert.AreEqual(new[] Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs =================================================================== diff -u -r7f78fbad84e2889d1ec73fe4edf47130b087ffab -r0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8 --- Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision 7f78fbad84e2889d1ec73fe4edf47130b087ffab) +++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision 0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8) @@ -142,83 +142,278 @@ // Setup string dbFile = Path.Combine(testDataPath, "2dprofile.soil"); - var result = new Collection(); using (var reader = new SoilProfile2DReader(dbFile)) { reader.Initialize(); // Call - while (reader.HasNext) + SoilProfile2D soilProfile2D = reader.ReadSoilProfile(); + + // Assert + Assert.AreEqual(1, soilProfile2D.Id); + Assert.AreEqual("Profile", soilProfile2D.Name); + Assert.AreEqual(85.2, soilProfile2D.IntersectionX); + Assert.AreEqual(3, soilProfile2D.Layers.Count()); + + CollectionAssert.AreEqual(new[] { - result.Add(reader.ReadSoilProfile()); - } - } + true, + false, + false + }, soilProfile2D.Layers.Select(l => l.IsAquifer)); + CollectionAssert.AreEqual(new[] + { + Color.FromArgb(70, 130, 180), + Color.FromArgb(255, 0, 0), + Color.FromArgb(128, 255, 128) + }, soilProfile2D.Layers.Select(l => l.Color)); + CollectionAssert.AreEqual(new[] + { + "Material1", + "Material2", + "Material3" + }, soilProfile2D.Layers.Select(l => l.MaterialName)); - // Assert - Assert.AreEqual(1, result.Count); + CollectionAssert.AreEqual(new[] + { + 2, + 2, + 2 + }, soilProfile2D.Layers.Select(l => l.BelowPhreaticLevelDistribution)); + CollectionAssert.AreEqual(new[] + { + 24, + 28, + 20 + }, soilProfile2D.Layers.Select(l => l.BelowPhreaticLevelMean)); + CollectionAssert.AreEqual(new[] + { + 0.24, + 0.28, + 0.2 + }, soilProfile2D.Layers.Select(l => l.BelowPhreaticLevelDeviation)); + CollectionAssert.AreEqual(new[] + { + 0.3, + 0.32, + 0.4 + }, soilProfile2D.Layers.Select(l => l.BelowPhreaticLevelShift)); - SoilProfile2D soilProfile2D = result[0]; - Assert.AreEqual(1, soilProfile2D.Id); - Assert.AreEqual("Profile", soilProfile2D.Name); - Assert.AreEqual(85.2, soilProfile2D.IntersectionX); - Assert.AreEqual(3, soilProfile2D.Layers.Count()); + CollectionAssert.AreEqual(new[] + { + 3, + 3, + 3 + }, soilProfile2D.Layers.Select(l => l.DiameterD70Distribution)); + CollectionAssert.AreEqual(new[] + { + 0.00017, + 0.00017, + 0.00016 + }, soilProfile2D.Layers.Select(l => l.DiameterD70Mean)); + CollectionAssert.AreEqual(new[] + { + 0.11764705882352941, + 0.11764705882352941, + 0.125 + }, soilProfile2D.Layers.Select(l => l.DiameterD70CoefficientOfVariation)); + CollectionAssert.AreEqual(new[] + { + 0, + 0, + 0 + }, soilProfile2D.Layers.Select(l => l.DiameterD70Shift)); - CollectionAssert.AreEqual(new[] - { - true, - false, - false - }, soilProfile2D.Layers.Select(l => l.IsAquifer)); - CollectionAssert.AreEqual(new[] - { - Color.FromArgb(70, 130, 180), - Color.FromArgb(255, 0, 0), - Color.FromArgb(128, 255, 128) - }, soilProfile2D.Layers.Select(l => l.Color)); - CollectionAssert.AreEqual(new[] - { - 0.21, - 0.71, - 3.88 - }, soilProfile2D.Layers.Select(l => l.BelowPhreaticLevelMean)); - CollectionAssert.AreEqual(new[] - { - 0.001, - 0.02, - 0.08 - }, soilProfile2D.Layers.Select(l => l.BelowPhreaticLevelDeviation)); - CollectionAssert.AreEqual(new[] - { - 0.3, - 0.32, - 0.4 - }, soilProfile2D.Layers.Select(l => l.BelowPhreaticLevelShift)); - CollectionAssert.AreEqual(new[] - { - 0.51, - 0.01, - 11.3 - }, soilProfile2D.Layers.Select(l => l.DiameterD70Mean)); - CollectionAssert.AreEqual(new[] - { - 0.029411, - 0.1, - 0.017699 - }, soilProfile2D.Layers.Select(l => l.DiameterD70CoefficientOfVariation)); - CollectionAssert.AreEqual(new[] - { - 1.01, - 9.99, - 5.21 - }, soilProfile2D.Layers.Select(l => l.PermeabilityMean)); - CollectionAssert.AreEqual(new[] - { - 0.024752, + CollectionAssert.AreEqual(new[] + { + 3, + 3, + 3 + }, soilProfile2D.Layers.Select(l => l.PermeabilityDistribution)); + CollectionAssert.AreEqual(new[] + { + 0, + 0, + 0.000185 + }, soilProfile2D.Layers.Select(l => l.PermeabilityMean)); + CollectionAssert.AreEqual(new[] + { + double.NaN, + double.NaN, + 0 + }, soilProfile2D.Layers.Select(l => l.PermeabilityCoefficientOfVariation)); + CollectionAssert.AreEqual(new[] + { + 0, + 0, + 0 + }, soilProfile2D.Layers.Select(l => l.PermeabilityShift)); - 0.01001, - 0.057582 - }, soilProfile2D.Layers.Select(l => l.PermeabilityCoefficientOfVariation)); + CollectionAssert.AreEqual(new double?[] + { + null, + 0, + null + }, soilProfile2D.Layers.Select(l => l.UsePop)); + CollectionAssert.AreEqual(new double?[] + { + null, + 6, + 9 + }, soilProfile2D.Layers.Select(l => l.ShearStrengthModel)); + + CollectionAssert.AreEqual(new[] + { + 2, + 2, + 2 + }, soilProfile2D.Layers.Select(l => l.AbovePhreaticLevelDistribution)); + CollectionAssert.AreEqual(new[] + { + 14, + 18, + 10 + }, soilProfile2D.Layers.Select(l => l.AbovePhreaticLevelMean)); + CollectionAssert.AreEqual(new[] + { + 0.01, + 0, + 0.01 + }, soilProfile2D.Layers.Select(l => l.AbovePhreaticLevelDeviation)); + CollectionAssert.AreEqual(new[] + { + 10, + 0, + 0 + }, soilProfile2D.Layers.Select(l => l.AbovePhreaticLevelShift)); + + CollectionAssert.AreEqual(new[] + { + 3, + 3, + 3 + }, soilProfile2D.Layers.Select(l => l.CohesionDistribution)); + CollectionAssert.AreEqual(new[] + { + 1, + 3, + 7 + }, soilProfile2D.Layers.Select(l => l.CohesionMean)); + CollectionAssert.AreEqual(new[] + { + 0.1, + 0.09999999999999999, + 0.09999999999999999 + }, soilProfile2D.Layers.Select(l => l.CohesionDeviation)); + CollectionAssert.AreEqual(new[] + { + 0.01, + 0.03, + 0.07 + }, soilProfile2D.Layers.Select(l => l.CohesionShift)); + + CollectionAssert.AreEqual(new[] + { + 3, + 3, + 3 + }, soilProfile2D.Layers.Select(l => l.FrictionAngleDistribution)); + CollectionAssert.AreEqual(new[] + { + 0.1, + 33, + 77 + }, soilProfile2D.Layers.Select(l => l.FrictionAngleMean)); + CollectionAssert.AreEqual(new[] + { + 10, + 0.01, + 0.01 + }, soilProfile2D.Layers.Select(l => l.FrictionAngleDeviation)); + CollectionAssert.AreEqual(new[] + { + 0, + 0.03, + 0.07 + }, soilProfile2D.Layers.Select(l => l.FrictionAngleShift)); + + CollectionAssert.AreEqual(new[] + { + 3, + 3, + 3 + }, soilProfile2D.Layers.Select(l => l.ShearStrengthRatioDistribution)); + CollectionAssert.AreEqual(new[] + { + 1, + 28, + 78 + }, soilProfile2D.Layers.Select(l => l.ShearStrengthRatioMean)); + CollectionAssert.AreEqual(new[] + { + 1, + 0.029285714285714283, + 0.011153846153846153 + }, soilProfile2D.Layers.Select(l => l.ShearStrengthRatioDeviation)); + CollectionAssert.AreEqual(new[] + { + 1, + 0.08, + 0.07 + }, soilProfile2D.Layers.Select(l => l.ShearStrengthRatioShift)); + + CollectionAssert.AreEqual(new[] + { + 3, + 3, + 3 + }, soilProfile2D.Layers.Select(l => l.StrengthIncreaseExponentDistribution)); + CollectionAssert.AreEqual(new[] + { + 1, + 2, + 3 + }, soilProfile2D.Layers.Select(l => l.StrengthIncreaseExponentMean)); + CollectionAssert.AreEqual(new[] + { + 1, + 0.1, + 0.09999999999999999 + }, soilProfile2D.Layers.Select(l => l.StrengthIncreaseExponentDeviation)); + CollectionAssert.AreEqual(new[] + { + 0, + 0.02, + 0.03 + }, soilProfile2D.Layers.Select(l => l.StrengthIncreaseExponentShift)); + + CollectionAssert.AreEqual(new[] + { + 3, + 3, + 3 + }, soilProfile2D.Layers.Select(l => l.PopDistribution)); + CollectionAssert.AreEqual(new[] + { + 111, + 222, + 333 + }, soilProfile2D.Layers.Select(l => l.PopMean)); + CollectionAssert.AreEqual(new[] + { + 0.000990990990990991, + 0.000990990990990991, + 0.000990990990990991 + }, soilProfile2D.Layers.Select(l => l.PopDeviation)); + CollectionAssert.AreEqual(new[] + { + 0.01, + 0.02, + 0.03 + }, soilProfile2D.Layers.Select(l => l.PopShift)); + } + Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile)); } Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/SoilProfile1DReader/1dprofile.soil =================================================================== diff -u -ra055d56e9d6e79c7285a51cce7de68188f252431 -r0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8 Binary files differ Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/SoilProfile2DReader/1dprofile.soil =================================================================== diff -u -rb5404a5a71bbedaa91bbcc5aee55c690a063aa8d -r0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8 Binary files differ Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/SoilProfile2DReader/2dprofile.soil =================================================================== diff -u -rb5404a5a71bbedaa91bbcc5aee55c690a063aa8d -r0d2a68ed9f6d5c10c01a1cb7de3bdcba843d4ab8 Binary files differ