Index: DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/IoDamMStabDocSeriliazerTests.cs =================================================================== diff -u -r3141 -r3143 --- DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/IoDamMStabDocSeriliazerTests.cs (.../IoDamMStabDocSeriliazerTests.cs) (revision 3141) +++ DamTools/LayerOnSlopeTool/trunk/src/Deltares.LayerOnSlopeTool.Io.Tests/IoDamMStabDocSeriliazerTests.cs (.../IoDamMStabDocSeriliazerTests.cs) (revision 3143) @@ -19,6 +19,8 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. +using System.Collections.Generic; +using System.IO; using KellermanSoftware.CompareNetObjects; using NUnit.Framework; @@ -27,10 +29,11 @@ [TestFixture] public class IoDamMStabDocSeriliazerTests { + private const string TestFileFolder = @"TestFiles\"; [Test] public void GivenFilledDamMStabDocWhenSerializingDeserializingThenObjectsAreEqual() { - const string filename = "MStabDamDocExample.xml"; + string filename = Path.Combine(TestFileFolder, "MStabDamDocExample.xml"); // Given Filled DamMStabDoc IoMStabDamDoc expectedMStabDamDoc = CreateMStabDamDocExample(); @@ -54,161 +57,177 @@ private IoMStabDamDoc CreateMStabDamDocExample() { - var ioMStabDamDoc = new IoMStabDamDoc(); const double xLeftBoundary = 1.0; const double xRightBoundary = 15.00; const double yDeep = -100.0; - // Geometry Creation Options - ioMStabDamDoc.MStabInput.GeometryCreationOptions.MaterialForDike = "DikeMaterial"; - ioMStabDamDoc.MStabInput.GeometryCreationOptions.SoilGeometry2DFilename = "Geometry2DFilename"; - ioMStabDamDoc.MStabInput.GeometryCreationOptions.SoilGeometryType = SoilGeometryType.SoilGeometry2D; - ioMStabDamDoc.MStabInput.GeometryCreationOptions.XOffsetSoilGeometry2DOrigin = 1.1; + var ioMStabDamDoc = new IoMStabDamDoc(); + FillGeometryCreationOptions(ioMStabDamDoc.MStabInput.GeometryCreationOptions); + FillModel(ioMStabDamDoc.MStabInput.Model); + FillSurfaceLine(ioMStabDamDoc.MStabInput.SurfaceLine, xLeftBoundary, xRightBoundary); + FillCharacteristicPoints(ioMStabDamDoc.MStabInput.CharacteristicPoints, xLeftBoundary, xRightBoundary); + FillPlLines(ioMStabDamDoc.MStabInput.ExternalPlLines, xRightBoundary, xLeftBoundary, yDeep); - // Model - ioMStabDamDoc.MStabInput.Model.CalculationModel = ModelType.UpliftVan; - ioMStabDamDoc.MStabInput.Model.GridPosition = GridPositionType.Right; - ioMStabDamDoc.MStabInput.Model.Probabilistic = false; - ioMStabDamDoc.MStabInput.Model.SearchMethod = SearchMethodType.Grid; - ioMStabDamDoc.MStabInput.Model.ShearStrength = ShearStrengthType.CPhi; + return ioMStabDamDoc; + } - // SurfaceLine - ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint() + private static void FillPlLines(List plLines, double xRightBoundary, double xLeftBoundary, double yDeep) + { + var pl1 = new IoPlLine(); + pl1.IsPhreatic = true; + pl1.BoundaryLayer = 1; + pl1.Points.Add(new IoGeometryPoint() { X = xLeftBoundary, - Y = 1.5 + Y = -1.0 }); - ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint() + pl1.Points.Add(new IoGeometryPoint() { - X = 2.0, - Y = 1.5 + X = 0.5 * (xRightBoundary + xLeftBoundary), + Y = -2.0 }); - ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint() + pl1.Points.Add(new IoGeometryPoint() { - X = 3.0, - Y = 1.5 + X = xRightBoundary, + Y = -1.5 }); - ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint() + plLines.Add(pl1); + + var pl2 = new IoPlLine(); + pl2.IsPhreatic = false; + pl2.BoundaryLayer = 2; + pl2.Points.Add(new IoGeometryPoint() { - X = 5.0, - Y = 2.5 + X = xLeftBoundary, + Y = yDeep }); - ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint() + pl1.Points.Add(new IoGeometryPoint() { - X = 6.0, - Y = 2.5 + X = xRightBoundary, + Y = yDeep }); - ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint() + plLines.Add(pl2); + + var pl3 = new IoPlLine(); + pl3.IsPhreatic = false; + pl3.BoundaryLayer = 1; + pl3.Points.Add(new IoGeometryPoint() { - X = 7.0, - Y = 2.5 + X = xLeftBoundary, + Y = yDeep }); - ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint() + pl1.Points.Add(new IoGeometryPoint() { - X = 10.0, - Y = 0.5 - }); - ioMStabDamDoc.MStabInput.SurfaceLine.Add(new IoGeometryPoint() - { X = xRightBoundary, - Y = 0.5 + Y = yDeep }); + plLines.Add(pl3); - // Characteristic Points - ioMStabDamDoc.MStabInput.CharacteristicPoints.Add(new IoCharacteristicPoint() + var pl4 = new IoPlLine(); + pl4.IsPhreatic = false; + pl4.BoundaryLayer = 0; + plLines.Add(pl4); + } + + private static void FillCharacteristicPoints(List characteristicPoints, double xLeftBoundary, double xRightBoundary) + { + characteristicPoints.Add(new IoCharacteristicPoint() { X = xLeftBoundary, Y = 1.5, CharacteristicPointType = CharacteristicPointType.SurfaceLevelOutside }); - ioMStabDamDoc.MStabInput.CharacteristicPoints.Add(new IoCharacteristicPoint() + characteristicPoints.Add(new IoCharacteristicPoint() { X = 3.0, Y = 1.5, CharacteristicPointType = CharacteristicPointType.DikeToeAtRiver }); - ioMStabDamDoc.MStabInput.CharacteristicPoints.Add(new IoCharacteristicPoint() + characteristicPoints.Add(new IoCharacteristicPoint() { X = 5.0, Y = 2.5, CharacteristicPointType = CharacteristicPointType.DikeTopAtRiver }); - ioMStabDamDoc.MStabInput.CharacteristicPoints.Add(new IoCharacteristicPoint() + characteristicPoints.Add(new IoCharacteristicPoint() { X = 7.0, Y = 2.5, CharacteristicPointType = CharacteristicPointType.DikeTopAtPolder }); - ioMStabDamDoc.MStabInput.CharacteristicPoints.Add(new IoCharacteristicPoint() + characteristicPoints.Add(new IoCharacteristicPoint() { X = 10.0, Y = 0.5, CharacteristicPointType = CharacteristicPointType.DikeToeAtPolder }); - ioMStabDamDoc.MStabInput.CharacteristicPoints.Add(new IoCharacteristicPoint() + characteristicPoints.Add(new IoCharacteristicPoint() { X = xRightBoundary, Y = 0.5, CharacteristicPointType = CharacteristicPointType.SurfaceLevelInside }); + } - // PL-Lines - var pl1 = new IoPlLine(); - pl1.IsPhreatic = true; - pl1.BoundaryLayer = 1; - pl1.Points.Add(new IoGeometryPoint() + private static void FillSurfaceLine(List surfaceLine, double xLeftBoundary, double xRightBoundary) + { + surfaceLine.Add(new IoGeometryPoint() { X = xLeftBoundary, - Y = -1.0 + Y = 1.5 }); - pl1.Points.Add(new IoGeometryPoint() + surfaceLine.Add(new IoGeometryPoint() { - X = 0.5 * (xRightBoundary + xLeftBoundary), - Y = -2.0 + X = 2.0, + Y = 1.5 }); - pl1.Points.Add(new IoGeometryPoint() + surfaceLine.Add(new IoGeometryPoint() { - X = xRightBoundary, - Y = -1.5 + X = 3.0, + Y = 1.5 }); - ioMStabDamDoc.MStabInput.ExternalPlLines.Add(pl1); - - var pl2 = new IoPlLine(); - pl2.IsPhreatic = false; - pl2.BoundaryLayer = 2; - pl2.Points.Add(new IoGeometryPoint() + surfaceLine.Add(new IoGeometryPoint() { - X = xLeftBoundary, - Y = yDeep + X = 5.0, + Y = 2.5 }); - pl1.Points.Add(new IoGeometryPoint() + surfaceLine.Add(new IoGeometryPoint() { - X = xRightBoundary, - Y = yDeep + X = 6.0, + Y = 2.5 }); - ioMStabDamDoc.MStabInput.ExternalPlLines.Add(pl2); - - var pl3 = new IoPlLine(); - pl3.IsPhreatic = false; - pl3.BoundaryLayer = 1; - pl3.Points.Add(new IoGeometryPoint() + surfaceLine.Add(new IoGeometryPoint() { - X = xLeftBoundary, - Y = yDeep + X = 7.0, + Y = 2.5 }); - pl1.Points.Add(new IoGeometryPoint() + surfaceLine.Add(new IoGeometryPoint() { + X = 10.0, + Y = 0.5 + }); + surfaceLine.Add(new IoGeometryPoint() + { X = xRightBoundary, - Y = yDeep + Y = 0.5 }); - ioMStabDamDoc.MStabInput.ExternalPlLines.Add(pl3); + } - var pl4 = new IoPlLine(); - pl4.IsPhreatic = false; - pl4.BoundaryLayer = 0; - ioMStabDamDoc.MStabInput.ExternalPlLines.Add(pl4); + private static void FillModel(IoModel model) + { + model.CalculationModel = ModelType.UpliftVan; + model.GridPosition = GridPositionType.Right; + model.Probabilistic = false; + model.SearchMethod = SearchMethodType.Grid; + model.ShearStrength = ShearStrengthType.CPhi; + } - return ioMStabDamDoc; + private static void FillGeometryCreationOptions(IoGeometryCreationOptions geometryCreationOptions) + { + geometryCreationOptions.MaterialForDike = "DikeMaterial"; + geometryCreationOptions.SoilGeometry2DFilename = "Geometry2DFilename"; + geometryCreationOptions.SoilGeometryType = SoilGeometryType.SoilGeometry2D; + geometryCreationOptions.XOffsetSoilGeometry2DOrigin = 1.1; } } } \ No newline at end of file