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