Index: dam classic/trunk/src/Dam/Tests/CombineSurfaceLineSoilProfile2DTest.cs =================================================================== diff -u -r190 -r214 --- dam classic/trunk/src/Dam/Tests/CombineSurfaceLineSoilProfile2DTest.cs (.../CombineSurfaceLineSoilProfile2DTest.cs) (revision 190) +++ dam classic/trunk/src/Dam/Tests/CombineSurfaceLineSoilProfile2DTest.cs (.../CombineSurfaceLineSoilProfile2DTest.cs) (revision 214) @@ -1,8 +1,6 @@ using System; using System.Linq; using Deltares.Geometry; -using Deltares.Geotechnics; -using Deltares.Geotechnics.GeotechnicalGeometry; using Deltares.Geotechnics.Soils; using Deltares.MStab; using Deltares.MStab.IO.Classic; @@ -118,7 +116,7 @@ surfaceLine.Points.Add(new GeometryPoint { X = 48.100, Z = 1.340 }); surfaceLine.Points.Add(new GeometryPoint { X = 53.150, Z = 0.690 }); surfaceLine.Points.Add(new GeometryPoint { X = 57.581, Z = 0.310 }); - surfaceLine.Points.Add(new GeometryPoint { X = 57.581, Z = 0.290 }); + surfaceLine.Points.Add(new GeometryPoint { X = 57.582, Z = 0.290 }); surfaceLine.Points.Add(new GeometryPoint { X = 58.000, Z = 0.400 }); surfaceLine.Points.Add(new GeometryPoint { X = 58.700, Z = 0.310 }); surfaceLine.Points.Add(new GeometryPoint { X = 60.920, Z = 0.350 }); @@ -155,7 +153,7 @@ surfaceLine.Points.Add(new GeometryPoint { X = 48.100, Z = 1.330 }); surfaceLine.Points.Add(new GeometryPoint { X = 53.150, Z = 0.680 }); surfaceLine.Points.Add(new GeometryPoint { X = 57.581, Z = 0.300 }); - surfaceLine.Points.Add(new GeometryPoint { X = 57.581, Z = 0.280 }); + surfaceLine.Points.Add(new GeometryPoint { X = 57.582, Z = 0.280 }); surfaceLine.Points.Add(new GeometryPoint { X = 58.000, Z = 0.390 }); surfaceLine.Points.Add(new GeometryPoint { X = 58.700, Z = 0.300 }); surfaceLine.Points.Add(new GeometryPoint { X = 60.920, Z = 0.340 }); @@ -233,7 +231,7 @@ // Expected is one added layer with dikeEmbankmentMaterial above the narrowed profile Assert.AreEqual(4, soilSurfaceProfile2D.Surfaces.Count); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[1].Soil.Name); + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[0].Soil.Name); Assert.AreEqual(30, soilSurfaceProfile2D.Geometry.Left); Assert.AreEqual(70, soilSurfaceProfile2D.Geometry.Right); } @@ -300,140 +298,137 @@ var soilSurfaceProfile2D = new SoilSurfaceProfile2D(); soilSurfaceProfile2D.DikeEmbankmentMaterial = dikeEmbankmentMaterial; soilSurfaceProfile2D.SoilProfile2D = soilProfile2D; - soilSurfaceProfile2D.SurfaceLine = surfaceLine; + soilSurfaceProfile2D.SurfaceLine = surfaceLine; // Expected is a large cut out from the original profile with two new layers and // all (some partial) original layers with their orginal materials Assert.AreEqual(9, soilSurfaceProfile2D.Surfaces.Count); - Assert.AreEqual("Sand", soilSurfaceProfile2D.Surfaces[0].Soil.Name); + Assert.AreEqual("Loam", soilSurfaceProfile2D.Surfaces[0].Soil.Name); Assert.AreEqual("Stiff Clay", soilSurfaceProfile2D.Surfaces[1].Soil.Name); - Assert.AreEqual("Loam", soilSurfaceProfile2D.Surfaces[2].Soil.Name); - Assert.AreEqual("Stiff Clay", soilSurfaceProfile2D.Surfaces[3].Soil.Name); + Assert.AreEqual("Medium Clay", soilSurfaceProfile2D.Surfaces[2].Soil.Name); + Assert.AreEqual("Soft Clay", soilSurfaceProfile2D.Surfaces[3].Soil.Name); Assert.AreEqual("Medium Clay", soilSurfaceProfile2D.Surfaces[4].Soil.Name); - Assert.AreEqual("Soft Clay", soilSurfaceProfile2D.Surfaces[5].Soil.Name); - Assert.AreEqual("Medium Clay", soilSurfaceProfile2D.Surfaces[6].Soil.Name); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[7].Soil.Name); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[8].Soil.Name); + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[5].Soil.Name); + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[6].Soil.Name); + Assert.AreEqual("Sand", soilSurfaceProfile2D.Surfaces[7].Soil.Name); + Assert.AreEqual("Stiff Clay", soilSurfaceProfile2D.Surfaces[8].Soil.Name); Assert.AreEqual(5, soilSurfaceProfile2D.Geometry.Left, GeometryConstants.Accuracy); Assert.AreEqual(95, soilSurfaceProfile2D.Geometry.Right, GeometryConstants.Accuracy); } [Test] - [Category(Categories.WorkInProgress)] // Failed in SVN rev. 25332.3787; have to investigate (created issue MWDAM-975) public void SurfaceLineIsLeadingWithSurfaceLineWiderThanProfileVeyNearProfile() { - // The required result can be viewed with DGeostability (Delphi) using DWP_17 COMBI SurfOn.sti in folder TestData const string soilGeometry2DName = @"TestData\DWP_17.sti"; var soilProfile2D = ReadProfileFromStiFile(soilGeometry2DName); Assert.IsTrue(soilProfile2D != null); var res = soilProfile2D.Geometry.ValidateGeometry(); Assert.IsTrue(!res.Any()); var surfaceLine = SetupWiderSurfaceLineNearProfile(); + var surfPointsCount = surfaceLine.Points.Count; var dikeEmbankmentMaterial = new Soil("DikeMat", 18.2, 15.4); var soilSurfaceProfile2D = new SoilSurfaceProfile2D(); soilSurfaceProfile2D.DikeEmbankmentMaterial = dikeEmbankmentMaterial; soilSurfaceProfile2D.SoilProfile2D = soilProfile2D; soilSurfaceProfile2D.SurfaceLine = surfaceLine; - + // Expected is a proper comination of the original profile with five new layers (some Dikemat, some original material) and // all nine (some partial) original layers with their orginal materials res = soilSurfaceProfile2D.Geometry.ValidateGeometry(); Assert.IsTrue(!res.Any()); res = soilSurfaceProfile2D.SoilProfile2D.Geometry.ValidateGeometry(); Assert.IsTrue(!res.Any()); Assert.AreEqual(14, soilSurfaceProfile2D.Surfaces.Count); - // layer(surf)num old sti - surfnum new - Assert.AreEqual("wl_zand WVP", soilSurfaceProfile2D.Surfaces[0].Soil.Name); //1-1 + + Assert.AreEqual("wl_zand WVP", soilSurfaceProfile2D.Surfaces[0].Soil.Name); Assert.AreEqual(10, soilSurfaceProfile2D.Surfaces[0].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("veen naast", soilSurfaceProfile2D.Surfaces[1].Soil.Name); //2-2 + Assert.AreEqual("veen naast", soilSurfaceProfile2D.Surfaces[1].Soil.Name); Assert.AreEqual(6, soilSurfaceProfile2D.Surfaces[1].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("veen onder", soilSurfaceProfile2D.Surfaces[2].Soil.Name); //3-3 + Assert.AreEqual("veen onder", soilSurfaceProfile2D.Surfaces[2].Soil.Name); Assert.AreEqual(4, soilSurfaceProfile2D.Surfaces[2].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[3].Soil.Name); //4-4 + Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[3].Soil.Name); Assert.AreEqual(4, soilSurfaceProfile2D.Surfaces[3].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[4].Soil.Name); //5-5Adapted + Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[4].Soil.Name); Assert.AreEqual(18, soilSurfaceProfile2D.Surfaces[4].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("veen naast", soilSurfaceProfile2D.Surfaces[5].Soil.Name); //6-7 + Assert.AreEqual("veen naast", soilSurfaceProfile2D.Surfaces[5].Soil.Name); Assert.AreEqual(6, soilSurfaceProfile2D.Surfaces[5].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[6].Soil.Name); //7-8 + Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[6].Soil.Name); Assert.AreEqual(9, soilSurfaceProfile2D.Surfaces[6].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("zand los", soilSurfaceProfile2D.Surfaces[7].Soil.Name); //8-9 + Assert.AreEqual("zand los", soilSurfaceProfile2D.Surfaces[7].Soil.Name); Assert.AreEqual(12, soilSurfaceProfile2D.Surfaces[7].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("Klei antropogeen", soilSurfaceProfile2D.Surfaces[8].Soil.Name); //9-10 - Assert.AreEqual(32, soilSurfaceProfile2D.Surfaces[8].GeometrySurface.OuterLoop.Points.Count); + Assert.AreEqual("Klei antropogeen", soilSurfaceProfile2D.Surfaces[8].Soil.Name); + Assert.AreEqual(33, soilSurfaceProfile2D.Surfaces[8].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[9].Soil.Name); // new 14 + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[9].Soil.Name); Assert.AreEqual(39, soilSurfaceProfile2D.Surfaces[9].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[10].Soil.Name); //new 11 + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[10].Soil.Name); Assert.AreEqual(15, soilSurfaceProfile2D.Surfaces[10].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[11].Soil.Name); //new 6 + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[11].Soil.Name); Assert.AreEqual(7, soilSurfaceProfile2D.Surfaces[11].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("Klei antropogeen", soilSurfaceProfile2D.Surfaces[12].Soil.Name); //new 12 + Assert.AreEqual("Klei antropogeen", soilSurfaceProfile2D.Surfaces[12].Soil.Name); Assert.AreEqual(3, soilSurfaceProfile2D.Surfaces[12].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[13].Soil.Name); //new 13 + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[13].Soil.Name); Assert.AreEqual(3, soilSurfaceProfile2D.Surfaces[13].GeometrySurface.OuterLoop.Points.Count); Assert.AreEqual(-0.47, soilSurfaceProfile2D.Geometry.Left); Assert.AreEqual(105.53, soilSurfaceProfile2D.Geometry.Right); + Assert.AreEqual(surfPointsCount, surfaceLine.Points.Count); } [Test] - [Category(Categories.WorkInProgress)] // Failed in SVN rev. 25096; have to investigate (created issue MWDAM-969) public void SurfaceLineIsLeadingWithSurfaceLineWiderThanProfileOnAndVeryNearProfile() { - // The required result can be viewed with DGeostability (Delphi) using DWP_17 Combi surfOn.sti const string soilGeometry2DName = @"TestData\DWP_17.sti"; var soilProfile2D = ReadProfileFromStiFile(soilGeometry2DName); Assert.IsTrue(soilProfile2D != null); var res = soilProfile2D.Geometry.ValidateGeometry(); Assert.IsTrue(!res.Any()); var surfaceLine = SetupWiderSurfaceLineOnAndNearProfile(); + var surfPointsCount = surfaceLine.Points.Count; var dikeEmbankmentMaterial = new Soil("DikeMat", 18.2, 15.4); var soilSurfaceProfile2D = new SoilSurfaceProfile2D(); soilSurfaceProfile2D.DikeEmbankmentMaterial = dikeEmbankmentMaterial; soilSurfaceProfile2D.SoilProfile2D = soilProfile2D; soilSurfaceProfile2D.SurfaceLine = surfaceLine; - // Expected is a proper combination of the original profile with two new layers and - // all (some partial) original layers with their orginal materials + // Expected is a proper combination of the original profile (9 layers) and the surface line, creating 5 additional + // new layers, 3 of them with DikeMat, 2 with Klei antropogeen as they could be restored from the original profile. res = soilSurfaceProfile2D.Geometry.ValidateGeometry(); Assert.IsTrue(!res.Any()); res = soilSurfaceProfile2D.SoilProfile2D.Geometry.ValidateGeometry(); Assert.IsTrue(!res.Any()); Assert.AreEqual(14, soilSurfaceProfile2D.Surfaces.Count); - // NOTE: the order of the surfaces may be different after the test is fixed. - Assert.AreEqual("wl_zand WVP", soilSurfaceProfile2D.Surfaces[0].Soil.Name); //1-1 + Assert.AreEqual("wl_zand WVP", soilSurfaceProfile2D.Surfaces[0].Soil.Name); Assert.AreEqual(10, soilSurfaceProfile2D.Surfaces[0].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("veen naast", soilSurfaceProfile2D.Surfaces[1].Soil.Name); //2-2 + Assert.AreEqual("veen naast", soilSurfaceProfile2D.Surfaces[1].Soil.Name); Assert.AreEqual(6, soilSurfaceProfile2D.Surfaces[1].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("veen onder", soilSurfaceProfile2D.Surfaces[2].Soil.Name); //3-3 + Assert.AreEqual("veen onder", soilSurfaceProfile2D.Surfaces[2].Soil.Name); Assert.AreEqual(4, soilSurfaceProfile2D.Surfaces[2].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[3].Soil.Name); //4-4 + Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[3].Soil.Name); Assert.AreEqual(4, soilSurfaceProfile2D.Surfaces[3].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[4].Soil.Name); //5-5 - Assert.AreEqual(16, soilSurfaceProfile2D.Surfaces[4].GeometrySurface.OuterLoop.Points.Count); // org nr points = 13 - Assert.AreEqual("veen naast", soilSurfaceProfile2D.Surfaces[5].Soil.Name); //6-7 + Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[4].Soil.Name); + Assert.AreEqual(17, soilSurfaceProfile2D.Surfaces[4].GeometrySurface.OuterLoop.Points.Count); + Assert.AreEqual("veen naast", soilSurfaceProfile2D.Surfaces[5].Soil.Name); Assert.AreEqual(6, soilSurfaceProfile2D.Surfaces[5].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[6].Soil.Name); //new 13 - Assert.AreEqual(3, soilSurfaceProfile2D.Surfaces[6].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("zand los", soilSurfaceProfile2D.Surfaces[7].Soil.Name); //8-9 + Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[6].Soil.Name); + Assert.AreEqual(9, soilSurfaceProfile2D.Surfaces[6].GeometrySurface.OuterLoop.Points.Count); + Assert.AreEqual("zand los", soilSurfaceProfile2D.Surfaces[7].Soil.Name); Assert.AreEqual(12, soilSurfaceProfile2D.Surfaces[7].GeometrySurface.OuterLoop.Points.Count); - - Assert.AreEqual("Klei antropogeen", soilSurfaceProfile2D.Surfaces[8].Soil.Name); //9-10 - Assert.AreEqual(30, soilSurfaceProfile2D.Surfaces[8].GeometrySurface.OuterLoop.Points.Count); // org nr points 29 - - Assert.AreEqual("klei duinkerke", soilSurfaceProfile2D.Surfaces[9].Soil.Name); //7-8 - Assert.AreEqual(9, soilSurfaceProfile2D.Surfaces[9].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[10].Soil.Name); //new 11 (Ok) - Assert.AreEqual(4, soilSurfaceProfile2D.Surfaces[10].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[11].Soil.Name); //new 6 (OK) + Assert.AreEqual("Klei antropogeen", soilSurfaceProfile2D.Surfaces[8].Soil.Name); + Assert.AreEqual(28, soilSurfaceProfile2D.Surfaces[8].GeometrySurface.OuterLoop.Points.Count); + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[9].Soil.Name); + Assert.AreEqual(4, soilSurfaceProfile2D.Surfaces[9].GeometrySurface.OuterLoop.Points.Count); + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[10].Soil.Name); + Assert.AreEqual(3, soilSurfaceProfile2D.Surfaces[10].GeometrySurface.OuterLoop.Points.Count); + Assert.AreEqual("Klei antropogeen", soilSurfaceProfile2D.Surfaces[11].Soil.Name); Assert.AreEqual(3, soilSurfaceProfile2D.Surfaces[11].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("Klei antropogeen", soilSurfaceProfile2D.Surfaces[12].Soil.Name); //new 12 (OK) + Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[12].Soil.Name); Assert.AreEqual(3, soilSurfaceProfile2D.Surfaces[12].GeometrySurface.OuterLoop.Points.Count); - Assert.AreEqual("DikeMat", soilSurfaceProfile2D.Surfaces[13].Soil.Name); //new 14 (OK) - Assert.AreEqual(3, soilSurfaceProfile2D.Surfaces[13].GeometrySurface.OuterLoop.Points.Count); - + Assert.AreEqual("Klei antropogeen", soilSurfaceProfile2D.Surfaces[13].Soil.Name); + Assert.AreEqual(3, soilSurfaceProfile2D.Surfaces[13].GeometrySurface.OuterLoop.Points.Count); + Assert.AreEqual(-0.47, soilSurfaceProfile2D.Geometry.Left); Assert.AreEqual(105.53, soilSurfaceProfile2D.Geometry.Right); + Assert.AreEqual(surfPointsCount, surfaceLine.Points.Count); } private GeometryData CreateTestGeometry()