Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs =================================================================== diff -u -r4236 -r4244 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs (.../Dike.cs) (revision 4236) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs (.../Dike.cs) (revision 4244) @@ -244,6 +244,8 @@ soil.RatioCuPc = soilRecord.RatioSuPc.Value; } + soil.UsePop = soilRecord.UsePop; + if (soilRecord.Pop.HasValue && soilRecord.UsePop) { soil.POP = soilRecord.Pop.Value; Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DikeTest.cs =================================================================== diff -u -r4194 -r4244 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DikeTest.cs (.../DikeTest.cs) (revision 4194) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/DikeTest.cs (.../DikeTest.cs) (revision 4244) @@ -31,107 +31,107 @@ using Deltares.Geotechnics.SurfaceLines; using NUnit.Framework; -namespace Deltares.Dam.Tests +namespace Deltares.Dam.Tests; + +[TestFixture] +public class DikeTest { - [TestFixture] - public class DikeTest + private Dike dike; + private Segment segment1; + private Location location1; + private SurfaceLine2 surfaceLine1; + private SoilProfile1D soilProfile; + + [TearDown] + public void TearDown() { - private Dike dike; - private Segment segment1; - private Location location1; - private SurfaceLine2 surfaceLine1; - private SoilProfile1D soilProfile; + dike.Dispose(); + } - [TearDown] - public void TearDown() - { - dike.Dispose(); - } + [SetUp] + public void TestFixtureSetup() {} - [SetUp] - public void TestFixtureSetup() {} + [SetUp] + public void TestSetup() + { + // Dike + dike = new Dike(); + dike.Name = "Dike"; - [SetUp] - public void TestSetup() + // Segments + segment1 = new Segment { - // Dike - dike = new Dike(); - dike.Name = "Dike"; + Name = "Segment1" + }; + // this.dike.Segments.Add(this.segment1); - // Segments - segment1 = new Segment - { - Name = "Segment1" - }; - // this.dike.Segments.Add(this.segment1); + // Locations + location1 = new Location(); + location1.Name = "Location1"; + location1.Segment = segment1; + dike.Locations.Add(location1); - // Locations - location1 = new Location(); - location1.Name = "Location1"; - location1.Segment = segment1; - dike.Locations.Add(location1); - - // Surface lines - surfaceLine1 = new SurfaceLine2 + // Surface lines + surfaceLine1 = new SurfaceLine2 + { + Geometry = new LocalizedGeometryPointString(), + CharacteristicPoints = { - Geometry = new LocalizedGeometryPointString(), - CharacteristicPoints = - { - GeometryMustContainPoint = true - }, - Name = "SurfaceLine1" - }; - dike.SurfaceLines2.Add(surfaceLine1); + GeometryMustContainPoint = true + }, + Name = "SurfaceLine1" + }; + dike.SurfaceLines2.Add(surfaceLine1); - // Soil profiles - soilProfile = new SoilProfile1D - { - Name = "SoilProfile1" - }; - dike.SoilProfiles.Add(soilProfile); + // Soil profiles + soilProfile = new SoilProfile1D + { + Name = "SoilProfile1" + }; + dike.SoilProfiles.Add(soilProfile); - // Locations' Segments - location1.Segment = segment1; + // Locations' Segments + location1.Segment = segment1; - // Locations' surface lines - location1.SurfaceLine2 = surfaceLine1; + // Locations' surface lines + location1.SurfaceLine2 = surfaceLine1; - // Segments' Soil profile probabilities - segment1.AddSoilProfileProbability(soilProfile, 100.0, FailureMechanismSystemType.StabilityInside); + // Segments' Soil profile probabilities + segment1.AddSoilProfileProbability(soilProfile, 100.0, FailureMechanismSystemType.StabilityInside); - surfaceLine1.AddCharacteristicPoint(new GeometryPoint(15.3, 0.0, -3.52)); - surfaceLine1.AddCharacteristicPoint(new GeometryPoint(19.4, 0.0, -1.46), CharacteristicPointType.DikeToeAtRiver); - surfaceLine1.AddCharacteristicPoint(new GeometryPoint(27.4, 0.0, 8.56), CharacteristicPointType.DikeTopAtRiver); - surfaceLine1.AddCharacteristicPoint(new GeometryPoint(35.2, 0.0, 8.62), CharacteristicPointType.DikeTopAtPolder); - surfaceLine1.AddCharacteristicPoint(new GeometryPoint(41.5, 0.0, -3.76), CharacteristicPointType.DikeToeAtPolder); - surfaceLine1.AddCharacteristicPoint(new GeometryPoint(85.4, 0.0, -3.61)); - } + surfaceLine1.AddCharacteristicPoint(new GeometryPoint(15.3, 0.0, -3.52)); + surfaceLine1.AddCharacteristicPoint(new GeometryPoint(19.4, 0.0, -1.46), CharacteristicPointType.DikeToeAtRiver); + surfaceLine1.AddCharacteristicPoint(new GeometryPoint(27.4, 0.0, 8.56), CharacteristicPointType.DikeTopAtRiver); + surfaceLine1.AddCharacteristicPoint(new GeometryPoint(35.2, 0.0, 8.62), CharacteristicPointType.DikeTopAtPolder); + surfaceLine1.AddCharacteristicPoint(new GeometryPoint(41.5, 0.0, -3.76), CharacteristicPointType.DikeToeAtPolder); + surfaceLine1.AddCharacteristicPoint(new GeometryPoint(85.4, 0.0, -3.61)); + } - [Test] - public void DefaultConstructor_ExpectedValues() - { - // setup + [Test] + public void DefaultConstructor_ExpectedValues() + { + // setup - // call - using (var newDike = new Dike()) - { - // assert - Assert.AreEqual(0, newDike.SurfaceLines2.Count); - Assert.AreEqual(0, newDike.Locations.Count); - } + // call + using (var newDike = new Dike()) + { + // assert + Assert.AreEqual(0, newDike.SurfaceLines2.Count); + Assert.AreEqual(0, newDike.Locations.Count); } + } - [Test] - public void TestDikeIntegrity() - { - Assert.IsNotNull(dike); + [Test] + public void TestDikeIntegrity() + { + Assert.IsNotNull(dike); - Assert.AreEqual("Dike", dike.Name); - //Assert.IsNotNull(this.dike.Segments); - Assert.IsNotNull(dike.Locations); - Assert.IsNotNull(dike.SurfaceLines2); - Assert.IsNotNull(dike.SoilProfiles); - } + Assert.AreEqual("Dike", dike.Name); + //Assert.IsNotNull(this.dike.Segments); + Assert.IsNotNull(dike.Locations); + Assert.IsNotNull(dike.SurfaceLines2); + Assert.IsNotNull(dike.SoilProfiles); + } // [Test] // public void TestDikeSegments() @@ -144,162 +144,161 @@ // Assert.IsNotNull(this.segment1.GetMostProbableProfile(SegmentFailureMechanismType.Stability)); // } - [Test] - public void TestDikeLocations() - { - Assert.IsNotNull(location1); + [Test] + public void TestDikeLocations() + { + Assert.IsNotNull(location1); - Assert.AreEqual(1, dike.Locations.Count); - Assert.AreEqual(location1, dike.Locations[0]); - Assert.AreEqual("Location1", location1.Name); - } + Assert.AreEqual(1, dike.Locations.Count); + Assert.AreEqual(location1, dike.Locations[0]); + Assert.AreEqual("Location1", location1.Name); + } - [Test] - public void TestDikeSurfaceLines() - { - Assert.IsNotNull(surfaceLine1); - Assert.IsNotNull(surfaceLine1.Geometry.Points); + [Test] + public void TestDikeSurfaceLines() + { + Assert.IsNotNull(surfaceLine1); + Assert.IsNotNull(surfaceLine1.Geometry.Points); - Assert.AreEqual(1, dike.SurfaceLines2.Count); - Assert.AreEqual(surfaceLine1, dike.SurfaceLines2[0]); - Assert.AreEqual("SurfaceLine1", surfaceLine1.Name); - } + Assert.AreEqual(1, dike.SurfaceLines2.Count); + Assert.AreEqual(surfaceLine1, dike.SurfaceLines2[0]); + Assert.AreEqual("SurfaceLine1", surfaceLine1.Name); + } - [Test] - public void TestDikeSoilProfiles() - { - Assert.IsNotNull(soilProfile); + [Test] + public void TestDikeSoilProfiles() + { + Assert.IsNotNull(soilProfile); - Assert.AreEqual(1, dike.SoilProfiles.Count); - Assert.AreEqual(soilProfile, dike.SoilProfiles[0]); - Assert.AreEqual("SoilProfile1", soilProfile.Name); - } + Assert.AreEqual(1, dike.SoilProfiles.Count); + Assert.AreEqual(soilProfile, dike.SoilProfiles[0]); + Assert.AreEqual("SoilProfile1", soilProfile.Name); + } - [Test] - public void TestDikeLocationSegments() - { - Assert.IsNotNull(location1.Segment); - Assert.AreEqual(segment1, location1.Segment); - } + [Test] + public void TestDikeLocationSegments() + { + Assert.IsNotNull(location1.Segment); + Assert.AreEqual(segment1, location1.Segment); + } - [Test] - public void TestDikeLocationSurfaceLines() - { - Assert.IsNotNull(location1.SurfaceLine2); - Assert.AreEqual(surfaceLine1, location1.SurfaceLine2); - } + [Test] + public void TestDikeLocationSurfaceLines() + { + Assert.IsNotNull(location1.SurfaceLine2); + Assert.AreEqual(surfaceLine1, location1.SurfaceLine2); + } - [Test] - public void TestDikeSegmentsSoilProfileProbabilities() - { - Assert.AreEqual(100, segment1.GetSoilProfileProbability(soilProfile, FailureMechanismSystemType.StabilityInside)); - } + [Test] + public void TestDikeSegmentsSoilProfileProbabilities() + { + Assert.AreEqual(100, segment1.GetSoilProfileProbability(soilProfile, FailureMechanismSystemType.StabilityInside)); + } - [Test] - public void TestDikeSegmentsSurfaceLinePoints() - { - IList points = surfaceLine1.Geometry.Points; - Assert.AreEqual(6, points.Count); + [Test] + public void TestDikeSegmentsSurfaceLinePoints() + { + IList points = surfaceLine1.Geometry.Points; + Assert.AreEqual(6, points.Count); - Assert.AreEqual(15.3, points[0].X); - Assert.AreEqual(-3.52, points[0].Z); - Assert.AreEqual(19.4, points[1].X); - Assert.AreEqual(-1.46, points[1].Z); + Assert.AreEqual(15.3, points[0].X); + Assert.AreEqual(-3.52, points[0].Z); + Assert.AreEqual(19.4, points[1].X); + Assert.AreEqual(-1.46, points[1].Z); - Assert.AreEqual(points[1], surfaceLine1.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver)); - Assert.AreEqual(points[2], surfaceLine1.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver)); - Assert.AreEqual(points[3], surfaceLine1.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder)); - Assert.AreEqual(points[4], surfaceLine1.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder)); + Assert.AreEqual(points[1], surfaceLine1.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver)); + Assert.AreEqual(points[2], surfaceLine1.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtRiver)); + Assert.AreEqual(points[3], surfaceLine1.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeTopAtPolder)); + Assert.AreEqual(points[4], surfaceLine1.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtPolder)); - Assert.AreEqual(0, surfaceLine1.GetCharacteristicPoints(points[0]).Count(cpt => cpt != CharacteristicPointType.None)); - Assert.AreEqual(CharacteristicPointType.DikeToeAtRiver, surfaceLine1.GetCharacteristicPoints(points[1]).First()); + Assert.AreEqual(0, surfaceLine1.GetCharacteristicPoints(points[0]).Count(cpt => cpt != CharacteristicPointType.None)); + Assert.AreEqual(CharacteristicPointType.DikeToeAtRiver, surfaceLine1.GetCharacteristicPoints(points[1]).First()); - Assert.IsTrue(surfaceLine1.HasDike()); - } + Assert.IsTrue(surfaceLine1.HasDike()); + } - [Test] - public void TestFillImportedCsvSoilsFromCsvFileWithoutSoilRecords_ThenNoDataBaseSoilsArePresent() + [Test] + public void TestFillImportedCsvSoilsFromCsvFileWithoutSoilRecords_ThenNoDataBaseSoilsArePresent() + { + var newDike = new Dike(); + newDike.FillImportedCsvSoilsFromCsvFile(new List()); + Assert.That(newDike.ImportedCsvSoils.Count, Is.Zero); + } + + [Test] + public void TestFillImportedCsvSoilsFromCsvFileWithSoilRecords_ThenDataBaseSoilsAreFilled() + { + var newDike = new Dike(); + + var random = new Random(21); + var soilRecords = new List { - var newDike = new Dike(); - newDike.FillImportedCsvSoilsFromCsvFile(new List()); - Assert.That(newDike.ImportedCsvSoils.Count, Is.Zero); - } - - [Test] - public void TestFillImportedCsvSoilsFromCsvFileWithSoilRecords_ThenDataBaseSoilsAreFilled() - { - var newDike = new Dike(); - - var random = new Random(21); - var soilRecords = new List + new() { - new() - { - SoilName = "Soil_1", - SoilColor = Color.Black, - SoilType = SoilType.Sand, - SaturatedUnitWeight = random.NextDouble(), - UnsaturatedUnitWeight = random.NextDouble(), - Cohesion = random.NextDouble(), - FrictionAngle = random.NextDouble(), - DiameterD70 = random.NextDouble(), - PermeabilityX = random.NextDouble(), - ShearStrengthModel = ShearStrengthModel.CPhi, - StrengthIncreaseExponent = random.NextDouble(), - RatioSuPc = random.NextDouble(), - UsePop = true, - Pop = random.NextDouble() - }, - new() - { - SoilName = "Soil_2", - SoilColor = Color.White, - SoilType = SoilType.Clay, - SaturatedUnitWeight = random.NextDouble(), - UnsaturatedUnitWeight = random.NextDouble(), - Cohesion = random.NextDouble(), - FrictionAngle = random.NextDouble(), - DiameterD70 = random.NextDouble(), - PermeabilityX = random.NextDouble(), - ShearStrengthModel = ShearStrengthModel.CuCalculated, - StrengthIncreaseExponent = random.NextDouble(), - RatioSuPc = random.NextDouble(), - UsePop = false, - Pop = random.NextDouble() - } - }; - - newDike.FillImportedCsvSoilsFromCsvFile(soilRecords); - Assert.That(newDike.ImportedCsvSoils.Count, Is.EqualTo(2)); + SoilName = "Soil_1", + SoilColor = Color.Black, + SoilType = SoilType.Sand, + SaturatedUnitWeight = random.NextDouble(), + UnsaturatedUnitWeight = random.NextDouble(), + Cohesion = random.NextDouble(), + FrictionAngle = random.NextDouble(), + DiameterD70 = random.NextDouble(), + PermeabilityX = random.NextDouble(), + ShearStrengthModel = ShearStrengthModel.CPhi, + StrengthIncreaseExponent = random.NextDouble(), + RatioSuPc = random.NextDouble(), + UsePop = true, + Pop = random.NextDouble() + }, + new() + { + SoilName = "Soil_2", + SoilColor = Color.White, + SoilType = SoilType.Clay, + SaturatedUnitWeight = random.NextDouble(), + UnsaturatedUnitWeight = random.NextDouble(), + Cohesion = random.NextDouble(), + FrictionAngle = random.NextDouble(), + DiameterD70 = random.NextDouble(), + PermeabilityX = random.NextDouble(), + ShearStrengthModel = ShearStrengthModel.CuCalculated, + StrengthIncreaseExponent = random.NextDouble(), + RatioSuPc = random.NextDouble(), + UsePop = false, + Pop = random.NextDouble() + } + }; - for (var i = 0; i < newDike.ImportedCsvSoils.Count; i++) + newDike.FillImportedCsvSoilsFromCsvFile(soilRecords); + Assert.That(newDike.ImportedCsvSoils.Count, Is.EqualTo(2)); + + for (var i = 0; i < newDike.ImportedCsvSoils.Count; i++) + { + Soil soil = newDike.ImportedCsvSoils[i]; + CsvImporterSoils.SoilRecord soilRecord = soilRecords[i]; + Assert.That(soil.Name, Is.EqualTo(soilRecord.SoilName)); + Assert.That(soil.Color, Is.EqualTo(soilRecord.SoilColor)); + Assert.That(soil.SoilType, Is.EqualTo(soilRecord.SoilType)); + Assert.That(soil.AbovePhreaticLevel, Is.EqualTo(soilRecord.UnsaturatedUnitWeight)); + Assert.That(soil.BelowPhreaticLevel, Is.EqualTo(soilRecord.SaturatedUnitWeight)); + Assert.That(soil.Cohesion, Is.EqualTo(soilRecord.Cohesion)); + Assert.That(soil.FrictionAngle, Is.EqualTo(soilRecord.FrictionAngle)); + Assert.That(soil.DiameterD70, Is.EqualTo(soilRecord.DiameterD70)); + Assert.That(soil.PermeabKx, Is.EqualTo(soilRecord.PermeabilityX)); + Assert.That(soil.ShearStrengthModel, Is.EqualTo(soilRecord.ShearStrengthModel)); + Assert.That(soil.StrengthIncreaseExponent, Is.EqualTo(soilRecord.StrengthIncreaseExponent)); + Assert.That(soil.RatioCuPc, Is.EqualTo(soilRecord.RatioSuPc)); + switch (i) { - Soil soil = newDike.ImportedCsvSoils[i]; - CsvImporterSoils.SoilRecord soilRecord = soilRecords[i]; - Assert.That(soil.Name, Is.EqualTo(soilRecord.SoilName)); - Assert.That(soil.Color, Is.EqualTo(soilRecord.SoilColor)); - Assert.That(soil.SoilType, Is.EqualTo(soilRecord.SoilType)); - Assert.That(soil.AbovePhreaticLevel, Is.EqualTo(soilRecord.UnsaturatedUnitWeight)); - Assert.That(soil.BelowPhreaticLevel, Is.EqualTo(soilRecord.SaturatedUnitWeight)); - Assert.That(soil.Cohesion, Is.EqualTo(soilRecord.Cohesion)); - Assert.That(soil.FrictionAngle, Is.EqualTo(soilRecord.FrictionAngle)); - Assert.That(soil.DiameterD70, Is.EqualTo(soilRecord.DiameterD70)); - Assert.That(soil.PermeabKx, Is.EqualTo(soilRecord.PermeabilityX)); - Assert.That(soil.ShearStrengthModel, Is.EqualTo(soilRecord.ShearStrengthModel)); - Assert.That(soil.StrengthIncreaseExponent, Is.EqualTo(soilRecord.StrengthIncreaseExponent)); - Assert.That(soil.RatioCuPc, Is.EqualTo(soilRecord.RatioSuPc)); - switch (i) - { - case 0: - Assert.That(soil.POP, Is.EqualTo(soilRecord.Pop)); - break; - case 1: - Assert.That(soil.POP, Is.NaN); - break; - } - + case 0: + Assert.That(soil.POP, Is.EqualTo(soilRecord.Pop)); + break; + case 1: + Assert.That(soil.POP, Is.NaN); + break; } + Assert.That(soil.UsePop, Is.EqualTo(soilRecord.UsePop)); } } } \ No newline at end of file