Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs =================================================================== diff -u -r3772 -r3773 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 3772) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 3773) @@ -130,7 +130,6 @@ [TestCase(MStabModelType.BishopUpliftVan)] public void TestPostProcess(MStabModelType modelType) { - const double diff = 0.0001; var kernelWrapper = new MacroStabilityInwardsKernelWrapper { FailureMechanismParametersMStab = new FailureMechanismParametersMStab @@ -142,38 +141,44 @@ } }; var kernelInput = CreateDamKernelInputForTest(); - MacroStabilityOutput macroStabilityOutput = new MacroStabilityOutput(); - DesignScenario designScenario = new DesignScenario + var macroStabilityOutput = new MacroStabilityOutput { - Location = kernelInput.Location + CalculationResult = CalculationResult.Succeeded, + UpliftSituation = new UpliftSituation { IsUplift = true }, + StabilityOutputItems = new List { + new MacroStabilityOutputItem + { + StabilityModelType = modelType != MStabModelType.BishopUpliftVan ? modelType : MStabModelType.Bishop, + CalculationResult = CalculationResult.Succeeded, + SafetyFactor = 2.34, + CalculationPath = TestFolder + "@\testpath", + ProjectName = Path.GetFileNameWithoutExtension(inputXmlForDamEngine), + ActiveCenterPoint = new Point2D(10, 10), + ActiveCenterPointRadius = 8, + PassiveCenterPoint = new Point2D(22, 11), + PassiveCenterPointRadius = 7 + } + } }; - macroStabilityOutput.CalculationResult = CalculationResult.Succeeded; - var macroStabilityOutputItem = new MacroStabilityOutputItem - { - StabilityModelType = modelType, - CalculationResult = CalculationResult.Succeeded - }; - macroStabilityOutput.UpliftSituation = new UpliftSituation { IsUplift = true }; - macroStabilityOutputItem.SafetyFactor = 2.34; - macroStabilityOutputItem.CalculationPath = TestFolder + "@\testpath"; - macroStabilityOutputItem.ProjectName = Path.GetFileNameWithoutExtension(inputXmlForDamEngine); - macroStabilityOutput.StabilityOutputItems = new List { macroStabilityOutputItem }; + if (modelType == MStabModelType.BishopUpliftVan) { + var macroStabilityOutputItem = new MacroStabilityOutputItem + { + StabilityModelType = MStabModelType.UpliftVan, + CalculationResult = CalculationResult.Succeeded, + SafetyFactor = 2.01, + ActiveCenterPoint = new Point2D(10, 10), + ActiveCenterPointRadius = 8, + PassiveCenterPoint = new Point2D(22, 11), + PassiveCenterPointRadius = 7 + }; macroStabilityOutput.StabilityOutputItems.Add(macroStabilityOutputItem); } - macroStabilityOutput.StabilityOutputItems[0].ActiveCenterPoint = new Point2D(10, 10); - macroStabilityOutput.StabilityOutputItems[0].ActiveCenterPointRadius = 8; - macroStabilityOutput.StabilityOutputItems[0].PassiveCenterPoint = new Point2D(22, 11); - macroStabilityOutput.StabilityOutputItems[0].PassiveCenterPointRadius = 7; - if (modelType == MStabModelType.BishopUpliftVan) + var designScenario = new DesignScenario { - macroStabilityOutput.StabilityOutputItems[1].ActiveCenterPoint = new Point2D(10, 10); - macroStabilityOutput.StabilityOutputItems[1].ActiveCenterPointRadius = 8; - macroStabilityOutput.StabilityOutputItems[1].PassiveCenterPoint = new Point2D(22, 11); - macroStabilityOutput.StabilityOutputItems[1].PassiveCenterPointRadius = 7; - macroStabilityOutput.StabilityOutputItems[1].SafetyFactor = 2.01; - } + Location = kernelInput.Location + }; var resultSlice = new StabilityResultSlice { TopLeftPoint = new Point2D(9, 3), @@ -232,6 +237,10 @@ ResultantAngle = 60 }; macroStabilityOutput.StabilityOutputItems[0].ResultSlices = new List { resultSlice }; + if (modelType == MStabModelType.BishopUpliftVan) + { + macroStabilityOutput.StabilityOutputItems[1].ResultSlices = new List { resultSlice }; + } kernelWrapper.PostProcess(kernelInput, macroStabilityOutput, designScenario, "", out var results); switch (modelType) @@ -245,39 +254,54 @@ break; } - var counter = 0; - foreach (var result in results) + var expectedNumberOfIterations = new List(); + var expectedStabilityModelType = new List(); + var expectedSafetyFactor = new List(); + switch (modelType) { - Assert.AreEqual(Path.GetFileNameWithoutExtension(inputXmlForDamEngine), result.BaseFileName); - Assert.AreEqual(TestFolder + "@\testpath", result.CalculationSubDir); + case MStabModelType.Bishop: + expectedNumberOfIterations = new List{ 0 }; + expectedStabilityModelType = new List { MStabModelType.Bishop }; + expectedSafetyFactor = new List{ 2.34 }; + break; + case MStabModelType.UpliftVan: + expectedNumberOfIterations = new List{ 0 }; + expectedStabilityModelType = new List { MStabModelType.UpliftVan }; + expectedSafetyFactor = new List{ 2.34 }; + break; + case MStabModelType.BishopUpliftVan: + expectedNumberOfIterations = new List{ 0, 0, null }; + expectedStabilityModelType = new List { MStabModelType.Bishop, MStabModelType.UpliftVan, MStabModelType.BishopUpliftVan }; + expectedSafetyFactor = new List{2.34, 2.01, 2.01}; + break; + + } + + for (var index = 0; index < results.Count; index++) + { + var result = results[index]; + Assert.AreEqual(CalculationResult.Succeeded, result.CalculationResult); Assert.AreEqual(true, ((UpliftSituation)result.StabilityDesignResults.UpliftSituation).IsUplift); - if (counter != 2) + if (index == 0) { - Assert.AreEqual(0, result.StabilityDesignResults.NumberOfIterations); //NumberOfIterations can not be set for this test, so always zero here + Assert.AreEqual(Path.GetFileNameWithoutExtension(inputXmlForDamEngine), result.BaseFileName); + Assert.AreEqual(TestFolder + "@\testpath", result.CalculationSubDir); } - if (modelType == MStabModelType.BishopUpliftVan) - { - Assert.AreEqual(2.01, result.StabilityDesignResults.SafetyFactor, diff); - } - else - { - Assert.AreEqual(2.34, result.StabilityDesignResults.SafetyFactor, diff); - } - + Assert.AreEqual(expectedNumberOfIterations[index], result.StabilityDesignResults.NumberOfIterations); + Assert.AreEqual(expectedSafetyFactor[index], result.StabilityDesignResults.SafetyFactor); Assert.AreEqual(kernelInput.Location.SurfaceLine, result.StabilityDesignResults.RedesignedSurfaceLine); Assert.AreEqual(kernelInput.SubSoilScenario.ToString(), result.ProfileName); - Assert.AreEqual(modelType, result.StabilityDesignResults.StabilityModelType); + Assert.AreEqual(expectedStabilityModelType[index], result.StabilityDesignResults.StabilityModelType); Assert.AreEqual(10, result.StabilityDesignResults.ActiveCenterPoint.X); Assert.AreEqual(10, result.StabilityDesignResults.ActiveCenterPoint.Z); Assert.AreEqual(8, result.StabilityDesignResults.ActiveCenterPointRadius); - if (modelType != MStabModelType.Bishop) + if (result.StabilityDesignResults.StabilityModelType != MStabModelType.Bishop) { Assert.AreEqual(22, result.StabilityDesignResults.PassiveCenterPoint.X); Assert.AreEqual(11, result.StabilityDesignResults.PassiveCenterPoint.Z); Assert.AreEqual(7, result.StabilityDesignResults.PassiveCenterPointRadius); } - Assert.AreEqual(9, result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.X); Assert.AreEqual(3, result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.Z); Assert.AreEqual(9.2, result.StabilityDesignResults.ResultSlices[0].TopRightPoint.X); @@ -338,8 +362,6 @@ Assert.AreEqual(60, result.StabilityDesignResults.ResultSlices[0].ResultantAngle); Assert.AreEqual(ShearStrengthModel.CPhi, result.StabilityDesignResults.ResultSlices[0].ShearStrengthModel); - - counter++; } }