Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/TestData/StixImporter/DWP_1.stix
===================================================================
diff -u
Binary files differ
Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Deltares.Dam.Tests.csproj
===================================================================
diff -u -r4808 -r4830
--- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Deltares.Dam.Tests.csproj (.../Deltares.Dam.Tests.csproj) (revision 4808)
+++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Deltares.Dam.Tests.csproj (.../Deltares.Dam.Tests.csproj) (revision 4830)
@@ -1307,6 +1307,9 @@
PreserveNewest
+
+ PreserveNewest
+
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/StixFileReaderTest.cs
===================================================================
diff -u -r4539 -r4830
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/StixFileReaderTest.cs (.../StixFileReaderTest.cs) (revision 4539)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/StixFileReaderTest.cs (.../StixFileReaderTest.cs) (revision 4830)
@@ -21,6 +21,7 @@
using System.IO;
using Deltares.Geotechnics.Soils;
+using Deltares.Standard.Validation;
using DGeoSuite.Components.Persistence;
using NUnit.Framework;
@@ -43,14 +44,37 @@
}
[Test]
- public void WhenStixFileIsRead_ThenSoilProfile2DIsNotNull()
+ public void WhenStixFileIsRead_ThenSoilProfile2DIsAsExpected()
{
const string fileName = @".\TestFiles\DWP_1.stix";
SoilProfile2D soilProfile2D = new StixFileReader().ReadSoilProfile(fileName);
Assert.That(soilProfile2D, Is.Not.Null);
- Assert.That(soilProfile2D.Name, Is.EqualTo("DWP_1.stix"));
- Assert.That(soilProfile2D.Geometry, Is.Not.Null);
+ Assert.Multiple(() =>
+ {
+ Assert.That(soilProfile2D.Name, Is.EqualTo("DWP_1.stix"));
+ Assert.That(soilProfile2D.Geometry, Is.Not.Null);
+ });
+ Assert.That(soilProfile2D.Geometry.Surfaces, Has.Count.EqualTo(12));
+
+ ValidationResult[] validationResults = System.Array.Empty();
+ for (int index = 0; index < 11; index++)
+ {
+ Assert.That(validationResults, Has.Length.EqualTo(0));
+ validationResults = soilProfile2D.Surfaces[index].ValidateLayer();
+ }
+
+ validationResults = soilProfile2D.Geometry.ValidateGeometry();
+ Assert.That(validationResults, Has.Length.EqualTo(1));
+ Assert.Multiple(() =>
+ {
+ Assert.That(validationResults[0].MessageType, Is.EqualTo(ValidationResultType.Error));
+ Assert.That(validationResults[0].Text, Is.EqualTo("Loose lines are not allowed."));
+ });
+
+ soilProfile2D.Geometry.RegenerateGeometry();
+ validationResults = soilProfile2D.Geometry.ValidateGeometry();
+ Assert.That(validationResults, Has.Length.EqualTo(0));
}
}
\ No newline at end of file
Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Geometry2DImporter/SoilProfile2DImporterTest.cs
===================================================================
diff -u -r4820 -r4830
--- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Geometry2DImporter/SoilProfile2DImporterTest.cs (.../SoilProfile2DImporterTest.cs) (revision 4820)
+++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/Geometry2DImporter/SoilProfile2DImporterTest.cs (.../SoilProfile2DImporterTest.cs) (revision 4830)
@@ -24,7 +24,9 @@
using System.Linq;
using Deltares.Dam.Data;
using Deltares.Dam.Data.Geometry2DImporter;
+using Deltares.Geometry;
using Deltares.Geotechnics.Soils;
+using Deltares.Standard.Validation;
using NUnit.Framework;
using GeotechnicsWaterPressureInterpolationModel = Deltares.Geotechnics.Soils.WaterpressureInterpolationModel;
@@ -33,7 +35,8 @@
[TestFixture]
public class SoilProfile2DImporterTest
{
- private const string TestDataFolder = @"TestData\StiImporter\";
+ private const string StiTestDataFolder = @"TestData\StiImporter\";
+ private const string StixTestDataFolder = @"TestData\StixImporter\";
[Test]
[TestCase(null)]
@@ -93,7 +96,7 @@
});
// Call
- IEnumerable soilProfiles = SoilProfile2DImporter.Import(TestDataFolder, segment, availableSoils);
+ IEnumerable soilProfiles = SoilProfile2DImporter.Import(StiTestDataFolder, segment, availableSoils);
// Assert
Assert.That(soilProfiles.Count, Is.EqualTo(2));
@@ -139,7 +142,7 @@
});
// Call
- IEnumerable soilProfiles = SoilProfile2DImporter.Import(TestDataFolder, segment, availableSoils);
+ IEnumerable soilProfiles = SoilProfile2DImporter.Import(StiTestDataFolder, segment, availableSoils);
// Assert
Assert.That(soilProfiles.Count, Is.EqualTo(2));
@@ -181,7 +184,7 @@
"Muck"
});
- Assert.That(() => SoilProfile2DImporter.Import(TestDataFolder, segment, availableSoils),
+ Assert.That(() => SoilProfile2DImporter.Import(StiTestDataFolder, segment, availableSoils),
Throws.Exception.TypeOf().With.Message.EqualTo($"'{invalidSoilProfile}' contains the undefined soil: Sand."));
}
@@ -200,10 +203,38 @@
"Muck"
});
- Assert.That(() => SoilProfile2DImporter.Import(TestDataFolder, segment, availableSoils),
+ Assert.That(() => SoilProfile2DImporter.Import(StiTestDataFolder, segment, availableSoils),
Throws.TypeOf().With.Message.Contains($"Could not import soil profile '{invalidSoilProfileName}': "));
}
+ [Test]
+ public void WhenStixFileIsImported_ThenSoilProfile2DHasValidGeometry()
+ {
+ // Setup
+ const string fileName = "DWP_1.stix";
+ Segment segment = CreateSegmentWithProfiles(new[]
+ {
+ fileName
+ });
+ SoilList availableSoils = CreateSoilList(new[]
+ {
+ "wl_zand (1)",
+ "veen (1)",
+ "klei (1)",
+ "klei antropogeen (1)",
+ "zand antropogeen (1)"
+ });
+
+ // Call
+ IEnumerable soilProfiles = SoilProfile2DImporter.Import(StixTestDataFolder, segment, availableSoils);
+
+ // Assert
+ GeometryData geometry = soilProfiles.ElementAt(0).Geometry;
+ Assert.That(geometry.Surfaces, Has.Count.EqualTo(12));
+ ValidationResult[] validationResults = geometry.ValidateGeometry();
+ Assert.That(validationResults, Has.Length.EqualTo(0));
+ }
+
private static Segment CreateSegmentWithProfiles(IEnumerable soilProfileNames)
{
var random = new Random(21);
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/SoilProfile2DDataModelTest.cs
===================================================================
diff -u -r4823 -r4830
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/SoilProfile2DDataModelTest.cs (.../SoilProfile2DDataModelTest.cs) (revision 4823)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.StixFileReader.Tests/SoilProfile2DDataModelTest.cs (.../SoilProfile2DDataModelTest.cs) (revision 4830)
@@ -24,6 +24,7 @@
using Components.Persistence.Stability.Version2.Data;
using Deltares.Geometry;
using Deltares.Geotechnics.Soils;
+using Deltares.Standard.Validation;
using NUnit.Framework;
namespace Deltares.Dam.StixFileReader.Tests;
@@ -55,8 +56,8 @@
public void WhenDataModelWithMultipleLayersIsCreated_ThenSoilProfile2DIsAsExpected()
{
PersistableDataModel dataModel = PersistableDataModelFactory.CreateSimpleDataModelWithMultipleLayers();
-
SoilProfile2D soilProfile2D = new SoilProfile2DDataModel().Create(dataModel);
+
IList points = soilProfile2D.Geometry.Points;
Assert.Multiple(() =>
{
@@ -143,5 +144,24 @@
Assert.That(curves.ElementAt(11).LocationEquals(new GeometryCurve(new GeometryPoint(15, 0, 5),
new GeometryPoint(15, 0, 5))), Is.True);
});
+
+ ValidationResult[] validationResults = soilProfile2D.Surfaces[0].ValidateLayer();
+ Assert.That(validationResults, Has.Length.EqualTo(0));
+ validationResults = soilProfile2D.Surfaces[1].ValidateLayer();
+ Assert.That(validationResults, Has.Length.EqualTo(0));
+ validationResults = soilProfile2D.Surfaces[2].ValidateLayer();
+ Assert.That(validationResults, Has.Length.EqualTo(0));
+
+ validationResults = soilProfile2D.Geometry.ValidateGeometry();
+ Assert.That(validationResults, Has.Length.EqualTo(1));
+ Assert.Multiple(() =>
+ {
+ Assert.That(validationResults[0].MessageType, Is.EqualTo(ValidationResultType.Error));
+ Assert.That(validationResults[0].Text, Is.EqualTo("Loose lines are not allowed."));
+ });
+
+ soilProfile2D.Geometry.RegenerateGeometry();
+ validationResults = soilProfile2D.Geometry.ValidateGeometry();
+ Assert.That(validationResults, Has.Length.EqualTo(0));
}
}
\ No newline at end of file
Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Geometry2DImporter/SoilProfile2DImporter.cs
===================================================================
diff -u -r4818 -r4830
--- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Geometry2DImporter/SoilProfile2DImporter.cs (.../SoilProfile2DImporter.cs) (revision 4818)
+++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Geometry2DImporter/SoilProfile2DImporter.cs (.../SoilProfile2DImporter.cs) (revision 4830)
@@ -127,6 +127,7 @@
{
var reader = new StixFileReader.StixFileReader();
SoilProfile2D readSoilProfile = reader.ReadSoilProfile(filePath);
+ readSoilProfile.Geometry.RegenerateGeometry();
return readSoilProfile;
}