Index: DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs =================================================================== diff -u -r2874 -r2876 --- DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 2874) +++ DamEngine/trunk/src/Deltares.DamEngine.Interface.Tests/FillXmlOutputFromDamTests.cs (.../FillXmlOutputFromDamTests.cs) (revision 2876) @@ -83,7 +83,7 @@ }; // Call - var output = FillXmlOutputFromDam.CreateOutput(project); + Output output = FillXmlOutputFromDam.CreateOutput(project); // Assert var calculationResults = output.Results.CalculationResults; @@ -296,13 +296,14 @@ }; var stabilityDesignResults = new StabilityDesignResults { - ResultMessage = "no problemo", + ResultMessage = "ResultMessage", SafetyFactor = random.Next(0, 2) == 1 ? random.NextDouble() : (double?) null, NumberOfIterations = random.Next(0, 2) == 1 ? random.Next() : (int?) null, UpliftSituation = random.Next(0, 2) == 1 ? CreateUpliftSituation(seed) : (UpliftSituation?) null, StabilityModelType = random.Next(0, 2) == 1 ? supportedModelTypeValues[random.Next(supportedModelTypeValues.Length - 1)] - : (MStabModelType?) null + : (MStabModelType?) null, + RedesignedSurfaceLine = random.Next(0, 2) == 1 ? CreateSurfaceLine(seed) : null }; return new DesignResult @@ -326,18 +327,65 @@ }; } + private static SurfaceLine2 CreateSurfaceLine(int seed) + { + var random = new Random(seed); + var surfaceLine = new SurfaceLine2 + { + Name = "Redesigned Surfaceline" + }; + + surfaceLine.CharacteristicPoints.Add(new CharacteristicPoint + { + CharacteristicPointType = CharacteristicPointType.SurfaceLevelOutside, + GeometryPoint = new GeometryPoint(), + X = random.NextDouble(), + Z = random.NextDouble() + }); + surfaceLine.CharacteristicPoints.Add(new CharacteristicPoint + { + CharacteristicPointType = CharacteristicPointType.DikeToeAtRiver, + GeometryPoint = new GeometryPoint(), + X = random.NextDouble(), + Z = random.NextDouble() + }); + surfaceLine.CharacteristicPoints.Add(new CharacteristicPoint + { + CharacteristicPointType = CharacteristicPointType.DikeTopAtRiver, + GeometryPoint = new GeometryPoint(), + X = random.NextDouble(), + Z = random.NextDouble() + }); + surfaceLine.CharacteristicPoints.Add(new CharacteristicPoint + { + CharacteristicPointType = CharacteristicPointType.DikeTopAtPolder, + GeometryPoint = new GeometryPoint(), + X = random.NextDouble(), + Z = random.NextDouble() + }); + surfaceLine.CharacteristicPoints.Add(new CharacteristicPoint + { + CharacteristicPointType = CharacteristicPointType.DikeToeAtPolder, + GeometryPoint = new GeometryPoint(), + X = random.NextDouble(), + Z = random.NextDouble() + }); + surfaceLine.CharacteristicPoints.Add(new CharacteristicPoint + { + CharacteristicPointType = CharacteristicPointType.SurfaceLevelInside, + GeometryPoint = new GeometryPoint(), + X = random.NextDouble(), + Z = random.NextDouble() + }); + + return surfaceLine; + } + private static DesignResultStabilityDesignResultsStabilityModelType? Convert(MStabModelType? stabilityModelType) { - switch (stabilityModelType) + if (stabilityModelType.HasValue) { - case MStabModelType.Bishop: - return DesignResultStabilityDesignResultsStabilityModelType.Bishop; - case MStabModelType.UpliftVan: - return DesignResultStabilityDesignResultsStabilityModelType.UpliftVan; - case MStabModelType.BishopUpliftVan: - return DesignResultStabilityDesignResultsStabilityModelType.BishopUpliftVan; - case MStabModelType.UpliftVanWti: - return DesignResultStabilityDesignResultsStabilityModelType.UpliftVanWti; + return ConversionHelper.ConvertToOutputStabilityModelType(stabilityModelType.Value); } throw new NotSupportedException(); @@ -363,6 +411,8 @@ ? Convert(expected.StabilityModelType) : DesignResultStabilityDesignResultsStabilityModelType.Bishop; Assert.AreEqual(expectedModelType, actual.StabilityModelType); + + AssertSurfaceLine(expected.RedesignedSurfaceLine, actual.RedesignedSurfaceLine); } private static void AssertUpliftSituation(UpliftSituation? expected, Io.XmlOutput.UpliftSituation actual) @@ -382,6 +432,34 @@ Assert.AreEqual(expected.Value.Pl4LocationXMinUplift, actual.Pl4LocationXMinUplift); } + private static void AssertSurfaceLine(SurfaceLine2 expected, SurfaceLine actual) + { + if (expected == null) + { + Assert.IsNull(actual); + return; + } + + Assert.AreEqual(expected.Name, actual.Name); + + int expectedNrOfCharacteristicPoints = expected.CharacteristicPoints.Count; + Assert.AreEqual(expectedNrOfCharacteristicPoints, actual.Points.Length); + for (var i = 0; i < expectedNrOfCharacteristicPoints; i++) + { + CharacteristicPoint expectedCharacteristicPoint = expected.CharacteristicPoints[i]; + SurfaceLinePoint actualCharacteristicPoint = actual.Points[i]; + AssertCharacteristicPoint(expectedCharacteristicPoint, actualCharacteristicPoint); + } + } + + private static void AssertCharacteristicPoint(CharacteristicPoint expected, SurfaceLinePoint actual) + { + Assert.AreEqual(expected.X, actual.X); + Assert.AreEqual(expected.Z, actual.Z); + Assert.AreEqual(ConversionHelper.ConvertToInputPointType(expected.CharacteristicPointType), + actual.PointType); + } + private void CompareDamProjectData(DamProjectData actual, DamProjectData expected) { var compare = new CompareLogic { Config = { MaxDifferences = 100 } };