Index: src/Deltares.DSoilModel.Forms.Tests/FilmStripTest.cs =================================================================== diff -u -r296 -r634 --- src/Deltares.DSoilModel.Forms.Tests/FilmStripTest.cs (.../FilmStripTest.cs) (revision 296) +++ src/Deltares.DSoilModel.Forms.Tests/FilmStripTest.cs (.../FilmStripTest.cs) (revision 634) @@ -1,8 +1,13 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Globalization; +using System.Linq; using System.Reflection; +using Deltares.Geometry; +using Deltares.Geotechnics; using Deltares.Geotechnics.TestUtils; +using Deltares.Standard.Extensions; using Deltares.Standard.Forms; using NUnit.Framework; @@ -82,8 +87,9 @@ // Create a film strip control, with a spatial editor based on the main Geometry Editor var filmStrip = new FilmStrip(testSpatialEditorToClone) { - SelectedStochasticSoilModel = StochasticSoilModelBuilder.CreateStochasticSoilModel1Dand2D() + SelectedStochasticSoilModel = CreateStochasticSoilModel1Dand2D() }; + var prof = (SoilProfile2D) filmStrip.SelectedStochasticSoilModel.StochasticSoilProfiles[1].Profile; filmStrip.Refresh(); var expectedBoundingBox1D = new Rectangle(new Point(-5,10), new Size(10, 20)); @@ -99,9 +105,126 @@ typeof(FilmStrip).GetMethod("DetermineBoundingBoxes", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(filmStrip, arguments); - Assert.AreEqual(arguments[1], expectedBoundingBox1D, "The bounding box 1D is not as expected."); - Assert.AreEqual(arguments[2], expectedBoundingBox2D, "The bounding box 2D is not as expected."); + Assert.AreEqual(expectedBoundingBox1D, arguments[1], "The bounding box 1D is not as expected."); + Assert.AreEqual(expectedBoundingBox2D, arguments[2], "The bounding box 2D is not as expected."); } } + + private SoilProfile2D CreateHorizontalLayersProfile() + { + var geometryModel = new GeometryData(); + + /* The following model looks as follows + * + * |----------| + * | | + * |----------| + * | | + * |----------| + * + */ + + var point1 = new GeometryPoint(0, 0, 0); + var point2 = new GeometryPoint(10, 0, 0); + var point3 = new GeometryPoint(10, 0, 10); + var point4 = new GeometryPoint(0, 0, 10); + var point5 = new GeometryPoint(0, 0, 5); + var point6 = new GeometryPoint(10, 0, 5); + + var curve1 = new GeometryCurve(point1, point2); + var curve2 = new GeometryCurve(point2, point3); + var curve3 = new GeometryCurve(point3, point4); + var curve4 = new GeometryCurve(point4, point1); + var curve5 = new GeometryCurve(point5, point6); + + geometryModel.Points.AddRange(new[] + { + point1, point2, point3, point4, point5, point6 + }); + geometryModel.Curves.AddRange(new[] + { + curve1, curve2, curve3, curve4, curve5 + }); + + geometryModel.NewlyEffectedPoints.AddRange(geometryModel.Points); + geometryModel.NewlyEffectedCurves.AddRange(geometryModel.Curves); + geometryModel.RegenerateGeometry(); + + // Assign to soil profile + var soilProfile = new SoilProfile2D(); + soilProfile.Geometry = geometryModel; + + int index = 1; + foreach (var surface in geometryModel.Surfaces) + { + var layer = new SoilLayer2D(); + layer.GeometrySurface = surface; + layer.Soil = new Soil(index.ToString(CultureInfo.InvariantCulture), Color.Black); + soilProfile.Surfaces.Add(layer); + + index++; + } + return soilProfile; + } + + private StochasticSoilModel CreateStochasticSoilModel1Dand2D() + { + var stochasticSoilModel = new StochasticSoilModel(); + + var soilProfile1 = new SoilProfile1D + { + BottomLevel = 0, + Name = "P1" + }; + soilProfile1.Layers.Add(new SoilLayer1D + { + TopLevel = 3 + }); + soilProfile1.Layers.Add(new SoilLayer1D + { + TopLevel = 7 + }); + soilProfile1.Layers.Add(new SoilLayer1D + { + TopLevel = 10 + }); + + var stochasticSoilProfile1 = new StochasticSoilProfile + { + Probability = 0.2, + Profile = soilProfile1 + }; + stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile1); + + var stochasticSoilProfile2 = new StochasticSoilProfile + { + Probability = 0.6, + Profile = CreateHorizontalLayersProfile() + }; + stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile2); + + var soilProfile3 = new SoilProfile1D + { + BottomLevel = 0, + Name = "P2" + }; + soilProfile3.Layers.Add(new SoilLayer1D + { + TopLevel = 10 + }); + soilProfile3.Layers.Add(new SoilLayer1D + { + TopLevel = 5 + }); + + var stochasticSoilProfile3 = new StochasticSoilProfile + { + Probability = 0.2, + Profile = soilProfile3 + }; + stochasticSoilModel.StochasticSoilProfiles.Add(stochasticSoilProfile3); + + return stochasticSoilModel; + } } } \ No newline at end of file