Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/PreconsolidationStressReader.cs
===================================================================
diff -u -rf23ce41a1dd004c56ab38179b6b28cd389edba36 -rdf8e710d2bb40eb4f601e1da9f1c87393923c898
--- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/PreconsolidationStressReader.cs (.../PreconsolidationStressReader.cs) (revision f23ce41a1dd004c56ab38179b6b28cd389edba36)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/PreconsolidationStressReader.cs (.../PreconsolidationStressReader.cs) (revision df8e710d2bb40eb4f601e1da9f1c87393923c898)
@@ -72,18 +72,18 @@
///
/// Reads the preconsolidation stresses defined for the soil profile.
///
+ /// The soil profile ID to read the preconsolidation stresses for.
/// A collection of preconsolidation stresses defined for the profile.
/// Thrown when the preconsolidation stress
/// could not be read.
- public IEnumerable ReadPreconsolidationStresses()
+ public IEnumerable ReadPreconsolidationStresses(long soilProfileId)
{
if (!HasNext)
{
return Enumerable.Empty();
}
var stresses = new List();
- long soilProfileId = ReadSoilProfileId();
while (HasNext && ReadSoilProfileId() == soilProfileId)
{
stresses.Add(ReadPreconsolidationStress());
Index: Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs
===================================================================
diff -u -rc22b5c73c2ff2c70407477e6fcf7558309513cb6 -rdf8e710d2bb40eb4f601e1da9f1c87393923c898
--- Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision c22b5c73c2ff2c70407477e6fcf7558309513cb6)
+++ Ringtoets/Common/src/Ringtoets.Common.IO/SoilProfile/SoilProfile2DReader.cs (.../SoilProfile2DReader.cs) (revision df8e710d2bb40eb4f601e1da9f1c87393923c898)
@@ -190,7 +190,7 @@
throw;
}
- PreconsolidationStress[] preconsolidationStresses = preconsolidationStressReader.ReadPreconsolidationStresses()
+ PreconsolidationStress[] preconsolidationStresses = preconsolidationStressReader.ReadPreconsolidationStresses(criticalProperties.ProfileId)
.ToArray();
try
{
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/PreconsolidationStressReaderTest.cs
===================================================================
diff -u -rc22b5c73c2ff2c70407477e6fcf7558309513cb6 -rdf8e710d2bb40eb4f601e1da9f1c87393923c898
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/PreconsolidationStressReaderTest.cs (.../PreconsolidationStressReaderTest.cs) (revision c22b5c73c2ff2c70407477e6fcf7558309513cb6)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/PreconsolidationStressReaderTest.cs (.../PreconsolidationStressReaderTest.cs) (revision df8e710d2bb40eb4f601e1da9f1c87393923c898)
@@ -20,6 +20,7 @@
// All rights reserved.
using System;
+using System.Collections.Generic;
using System.IO;
using System.Linq;
using Core.Common.Base.IO;
@@ -201,7 +202,7 @@
reader.Initialize();
// Call
- PreconsolidationStress[] preconsolidationStresses = reader.ReadPreconsolidationStresses().ToArray();
+ PreconsolidationStress[] preconsolidationStresses = reader.ReadPreconsolidationStresses(1).ToArray();
// Assert
Assert.AreEqual(4, preconsolidationStresses.Length);
@@ -265,7 +266,7 @@
reader.Initialize();
// Call
- PreconsolidationStress[] preconsolidationStresses = reader.ReadPreconsolidationStresses().ToArray();
+ PreconsolidationStress[] preconsolidationStresses = reader.ReadPreconsolidationStresses(1).ToArray();
// Assert
Assert.AreEqual(1, preconsolidationStresses.Length);
@@ -281,5 +282,25 @@
Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile));
}
+
+ [Test]
+ public void ReadPreconsolidationStresses_UnknownSoilProfileId_ReturnsEmptyPreconsolidationStress()
+ {
+ // Setup
+ string dbFile = Path.Combine(testDataPath, "2dprofileWithPreconsolidationStressesNullValues.soil");
+
+ using (var reader = new PreconsolidationStressReader(dbFile))
+ {
+ reader.Initialize();
+
+ // Call
+ IEnumerable preconsolidationStresses = reader.ReadPreconsolidationStresses(2);
+
+ // Assert
+ CollectionAssert.IsEmpty(preconsolidationStresses);
+ }
+
+ Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile));
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs
===================================================================
diff -u -rc22b5c73c2ff2c70407477e6fcf7558309513cb6 -rdf8e710d2bb40eb4f601e1da9f1c87393923c898
--- Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision c22b5c73c2ff2c70407477e6fcf7558309513cb6)
+++ Ringtoets/Common/test/Ringtoets.Common.IO.Test/SoilProfile/SoilProfile2DReaderTest.cs (.../SoilProfile2DReaderTest.cs) (revision df8e710d2bb40eb4f601e1da9f1c87393923c898)
@@ -701,5 +701,37 @@
Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile));
}
+
+ [Test]
+ public void ReadSoilProfile_SoilProfilesWithAndWithoutPreconsolidationStresses_ReturnsProfilesWithExpectedNrOfPreconsolidationStresses()
+ {
+ // Setup
+ string dbFile = Path.Combine(testDataPath, "2dProfilesWithAndWithoutPreconsolidationStresses.soil");
+
+ var readProfiles = new List();
+ using (var reader = new SoilProfile2DReader(dbFile))
+ {
+ reader.Initialize();
+
+ while (reader.HasNext)
+ {
+ // Call
+ readProfiles.Add(reader.ReadSoilProfile());
+ }
+
+ // Assert
+ Assert.IsFalse(reader.HasNext);
+ Assert.AreEqual(3, readProfiles.Count);
+ }
+
+ CollectionAssert.AreEqual(new[]
+ {
+ 1,
+ 0,
+ 1
+ }, readProfiles.Select(profile => profile.PreconsolidationStresses.Count()));
+
+ Assert.IsTrue(TestHelper.CanOpenFileForWrite(dbFile));
+ }
}
}
\ No newline at end of file
Index: Ringtoets/Common/test/Ringtoets.Common.IO.Test/test-data/SoilProfile2DReader/2dProfilesWithAndWithoutPreconsolidationStresses.soil
===================================================================
diff -u
Binary files differ