Index: src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/1D_profiles.csv
===================================================================
diff -u
--- src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/1D_profiles.csv (revision 0)
+++ src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/1D_profiles.csv (revision 258)
@@ -0,0 +1,10 @@
+soilprofile_id;top_level;soil_name;max-d;min-d;extra;remark
+Segment_1001_1D1;1.5;H_Mkw_z&k;1.5;1.5;;
+Segment_1001_1D1;-5;H_Mg_zf;-4;-6;;
+Segment_1001_1D1;-30;P_Om_zf;-28;-32;;Combinatie van Eem Formatie en Fm. van Drente en Peelo
+Segment_1001_1D2;1.5;H_Mr_kz;1.5;1.5;;Restgeulopvulling met klei
+Segment_1001_1D2;-7.5;H_Mg_zf;-6;-8;;
+Segment_1001_1D2;-30;P_Om_zf;-28;-32;;Combinatie van Eem Formatie en Fm. van Drente en Peelo
+Segment_1001_1D3;1.5;H_Mp_zf;1.5;1.5;;
+Segment_1001_1D3;-2.5;H_Mg_zf;-1.5;-3.5;;
+Segment_1001_1D3;-30;P_Om_zf;-28;-32;;Combinatie van Eem Formatie en Fm. van Drente en Peelo
Index: src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/1D_profiles_2segmenten.csv
===================================================================
diff -u
--- src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/1D_profiles_2segmenten.csv (revision 0)
+++ src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/1D_profiles_2segmenten.csv (revision 258)
@@ -0,0 +1,20 @@
+soilprofile_id;top_level;soil_name;max-d;min-d;extra;remark
+Segment_1001_1D1;1.5;H_Mkw_z&k;1.5;1.5;;
+Segment_1001_1D1;-5;H_Mg_zf;-4;-6;;
+Segment_1001_1D1;-30;P_Om_zf;-28;-32;;Combinatie van Eem Formatie en Fm. van Drente en Peelo
+Segment_1001_1D2;1.5;H_Mr_kz;1.5;1.5;;Restgeulopvulling met klei
+Segment_1001_1D2;-7.5;H_Mg_zf;-6;-8;;
+Segment_1001_1D2;-30;P_Om_zf;-28;-32;;Combinatie van Eem Formatie en Fm. van Drente en Peelo
+Segment_1001_1D3;1.5;H_Mp_zf;1.5;1.5;;
+Segment_1001_1D3;-2.5;H_Mg_zf;-1.5;-3.5;;
+Segment_1001_1D3;-30;P_Om_zf;-28;-32;;Combinatie van Eem Formatie en Fm. van Drente en Peelo
+Segment_2001_1D1;2;H_Ova_zf;2;2;;Duinzand
+Segment_2001_1D1;1.5;H_Mkw_z&k;1.75;1.25;;
+Segment_2001_1D1;-4;H_Mg_zf;-3.5;-5;;
+Segment_2001_1D1;-22.5;P_Om_k;-21;-23;;
+Segment_2001_1D1;-32;P_Om_zf;-29;-36;;
+Segment_2001_1D2;2;H_Ova_zf;2;2;;Duinzand
+Segment_2001_1D2;1.5;H_Mr_kz;1.75;1.25;;Restgeulopvulling met klei
+Segment_2001_1D2;-4;H_Mg_zf;-3.5;-5;;
+Segment_2001_1D2;-22.5;P_Om_k;-21;-23;;
+Segment_2001_1D2;-32;P_Om_zf;-29;-36;;
Index: src/Deltares.DSoilModel.Tests/Deltares.DSoilModel.Tests.csproj
===================================================================
diff -u -r63 -r258
--- src/Deltares.DSoilModel.Tests/Deltares.DSoilModel.Tests.csproj (.../Deltares.DSoilModel.Tests.csproj) (revision 63)
+++ src/Deltares.DSoilModel.Tests/Deltares.DSoilModel.Tests.csproj (.../Deltares.DSoilModel.Tests.csproj) (revision 258)
@@ -136,6 +136,18 @@
Always
+
+ Always
+
+
+ Always
+
+
+ Always
+
+
+ Always
+
PreserveNewest
Index: src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/Soilsegments.csv
===================================================================
diff -u
--- src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/Soilsegments.csv (revision 0)
+++ src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/Soilsegments.csv (revision 258)
@@ -0,0 +1,9 @@
+segment_id;soilprofile_id;probability;calculation_type
+1001;Segment_1001_1D1;60;Stability
+1001;Segment_1001_1D1;60;Piping
+1001;Segment_1001_1D2;10;Stability
+1001;Segment_1001_1D2;10;Piping
+1001;Segment_1001_1D3;15;Stability
+1001;Segment_1001_1D3;15;Piping
+1001;Segment_1001_1D4;15;Stability
+1001;Segment_1001_1D4;15;Piping
\ No newline at end of file
Index: src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/Soilsegments_2segmenten.csv
===================================================================
diff -u
--- src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/Soilsegments_2segmenten.csv (revision 0)
+++ src/Deltares.DSoilModel.Tests/TestFiles/Missing profiles/Soilsegments_2segmenten.csv (revision 258)
@@ -0,0 +1,13 @@
+segment_id;soilprofile_id;probability;calculation_type
+1001;Segment_1001_1D1;60;Stability
+1001;Segment_1001_1D1;60;Piping
+1001;Segment_1001_1D2;10;Stability
+1001;Segment_1001_1D2;10;Piping
+1001;Segment_1001_1D3;15;Stability
+1001;Segment_1001_1D3;15;Piping
+1001;Segment_1001_1D4;15;Stability
+1001;Segment_1001_1D4;15;Piping
+2001;Segment_2001_1D1;95;Stability
+2001;Segment_2001_1D1;95;Piping
+2001;Segment_2001_1D2;5;Stability
+2001;Segment_2001_1D2;5;Piping
Index: src/Deltares.DSoilModel.Tests/DSoilModelIOTest.cs
===================================================================
diff -u -r110 -r258
--- src/Deltares.DSoilModel.Tests/DSoilModelIOTest.cs (.../DSoilModelIOTest.cs) (revision 110)
+++ src/Deltares.DSoilModel.Tests/DSoilModelIOTest.cs (.../DSoilModelIOTest.cs) (revision 258)
@@ -237,5 +237,33 @@
Assert.AreEqual("BondStressCurve", project.BondStressCurves.First().Name);
}
}
+
+ [Test]
+ public void HandleSegmentCsvImportWithMissingProfiles()
+ {
+ // see issue DSB-389, dataset wit all profiles missing
+ var project = new DSoilModelProject();
+ LogManager.Clear();
+ project.ReadSoilProfiles1DFromFile(@"TestFiles\Missing profiles\1D_profiles.csv");
+ Assert.AreEqual(3, project.SoilProfiles1D.Count);
+ Assert.AreEqual(5, LogManager.Messages.Count(m => m.Message.Contains("undefined soil")));
+
+ LogManager.Clear();
+ DSoilModelIO.ReadCsvSegmentsFromFileAndAddToProject(@"TestFiles\Missing profiles\Soilsegments.csv", project, true);
+ Assert.AreEqual(0, project.SoilSegments.Count);
+ Assert.AreEqual(2, LogManager.Messages.Count(m => m.Message.Contains("profiles are missing")));
+
+ // dataset with partially missing profiles
+ project = new DSoilModelProject();
+ LogManager.Clear();
+ project.ReadSoilProfiles1DFromFile(@"TestFiles\Missing profiles\1D_profiles_2segmenten.csv");
+ Assert.AreEqual(5, project.SoilProfiles1D.Count);
+ Assert.AreEqual(7, LogManager.Messages.Count(m => m.Message.Contains("undefined soil")));
+
+ LogManager.Clear();
+ DSoilModelIO.ReadCsvSegmentsFromFileAndAddToProject(@"TestFiles\Missing profiles\Soilsegments_2segmenten.csv", project, true);
+ Assert.AreEqual(2, project.SoilSegments.Count);
+ Assert.AreEqual(2, LogManager.Messages.Count(m => m.Message.Contains("profiles are missing")));
+ }
}
}
\ No newline at end of file