Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs =================================================================== diff -u -r4907 -r5154 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 4907) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 5154) @@ -48,6 +48,7 @@ { private const string TestFolder = @"..\..\..\Deltares.DamEngine.IntegrationTests\TestFiles"; private readonly string inputXmlForDamEngine = Path.Combine(TestFolder, "StabilityDesign1Dbased.xml"); + private const double tolerance4Decimals = 0.000051; [Test] public void TestPrepare() @@ -325,89 +326,104 @@ { DesignResult result = results[index]; - Assert.That(result.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); - Assert.That(((UpliftSituation) result.StabilityDesignResults.UpliftSituation).IsUplift, Is.EqualTo(true)); + Assert.Multiple(() => + { + Assert.That(result.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); + Assert.That(((UpliftSituation)result.StabilityDesignResults.UpliftSituation).IsUplift, Is.EqualTo(true)); + }); if (index == 0) { - Assert.That(result.BaseFileName, Is.EqualTo(Path.GetFileNameWithoutExtension(inputXmlForDamEngine))); - Assert.That(result.CalculationSubDir, Is.EqualTo(TestFolder + "@\testpath")); + Assert.Multiple(() => + { + Assert.That(result.BaseFileName, Is.EqualTo(Path.GetFileNameWithoutExtension(inputXmlForDamEngine))); + Assert.That(result.CalculationSubDir, Is.EqualTo(TestFolder + "@\testpath")); + }); } - Assert.That(result.StabilityDesignResults.NumberOfIterations, Is.EqualTo(expectedNumberOfIterations[index])); - Assert.That(result.StabilityDesignResults.SafetyFactor, Is.EqualTo(expectedSafetyFactor[index])); - Assert.That(result.StabilityDesignResults.RedesignedSurfaceLine, Is.EqualTo(kernelInput.Location.SurfaceLine)); - Assert.That(result.ProfileName, Is.EqualTo(kernelInput.SubSoilScenario.ToString())); - Assert.That(result.StabilityDesignResults.StabilityModelType, Is.EqualTo(expectedStabilityModelType[index])); - Assert.That(result.StabilityDesignResults.ActiveCenterPoint.X, Is.EqualTo(10)); - Assert.That(result.StabilityDesignResults.ActiveCenterPoint.Z, Is.EqualTo(10)); - Assert.That(result.StabilityDesignResults.ActiveCenterPointRadius, Is.EqualTo(8)); + Assert.Multiple(() => + { + Assert.That(result.StabilityDesignResults.NumberOfIterations, Is.EqualTo(expectedNumberOfIterations[index])); + Assert.That(result.StabilityDesignResults.SafetyFactor, Is.EqualTo(expectedSafetyFactor[index])); + Assert.That(result.StabilityDesignResults.RedesignedSurfaceLine, Is.EqualTo(kernelInput.Location.SurfaceLine)); + Assert.That(result.ProfileName, Is.EqualTo(kernelInput.SubSoilScenario.ToString())); + Assert.That(result.StabilityDesignResults.StabilityModelType, Is.EqualTo(expectedStabilityModelType[index])); + Assert.That(result.StabilityDesignResults.ActiveCenterPoint.X, Is.EqualTo(10)); + Assert.That(result.StabilityDesignResults.ActiveCenterPoint.Z, Is.EqualTo(10)); + Assert.That(result.StabilityDesignResults.ActiveCenterPointRadius, Is.EqualTo(8)); + }); if (result.StabilityDesignResults.StabilityModelType != MStabModelType.Bishop) { - Assert.That(result.StabilityDesignResults.PassiveCenterPoint.X, Is.EqualTo(22)); - Assert.That(result.StabilityDesignResults.PassiveCenterPoint.Z, Is.EqualTo(11)); - Assert.That(result.StabilityDesignResults.PassiveCenterPointRadius, Is.EqualTo(7)); + Assert.Multiple(() => + { + Assert.That(result.StabilityDesignResults.PassiveCenterPoint.X, Is.EqualTo(22)); + Assert.That(result.StabilityDesignResults.PassiveCenterPoint.Z, Is.EqualTo(11)); + Assert.That(result.StabilityDesignResults.PassiveCenterPointRadius, Is.EqualTo(7)); + }); } - Assert.That(result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.X, Is.EqualTo(9)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.Z, Is.EqualTo(3)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].TopRightPoint.X, Is.EqualTo(9.2)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].TopRightPoint.Z, Is.EqualTo(3.01)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomLeftPoint.X, Is.EqualTo(9)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomLeftPoint.Z, Is.EqualTo(-3)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomRightPoint.X, Is.EqualTo(9.2)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomRightPoint.Z, Is.EqualTo(-3.1)); + Assert.Multiple(() => + { + Assert.That(result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.X, Is.EqualTo(9)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.Z, Is.EqualTo(3)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].TopRightPoint.X, Is.EqualTo(9.2)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].TopRightPoint.Z, Is.EqualTo(3.01)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomLeftPoint.X, Is.EqualTo(9)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomLeftPoint.Z, Is.EqualTo(-3)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomRightPoint.X, Is.EqualTo(9.2)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomRightPoint.Z, Is.EqualTo(-3.1)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].Name, Is.EqualTo("slice1")); - Assert.That(result.StabilityDesignResults.ResultSlices[0].Width, Is.EqualTo(0.2)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ArcLength, Is.EqualTo(0.22)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].TopAngle, Is.EqualTo(0)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomAngle, Is.EqualTo(12.2)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].CohesionInput, Is.EqualTo(14)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].CohesionOutput, Is.EqualTo(15.5)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].FrictionAngleInput, Is.EqualTo(30)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].FrictionAngleOutput, Is.EqualTo(30.5)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].YieldStress, Is.EqualTo(22)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].OCR, Is.EqualTo(23)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].POP, Is.EqualTo(24)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].DegreeOfConsolidationPorePressure, Is.EqualTo(25)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].PorePressureDueToDegreeOfConsolidationLoad, Is.EqualTo(26)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].DilatancyInput, Is.EqualTo(27)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ExternalLoad, Is.EqualTo(29)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].HydrostaticPorePressure, Is.EqualTo(30)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].LeftForce, Is.EqualTo(31)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].LeftForceAngle, Is.EqualTo(32)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].LeftForceY, Is.EqualTo(33)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].RightForce, Is.EqualTo(34)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].RightForceAngle, Is.EqualTo(35)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].RightForceY, Is.EqualTo(36)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].LoadStress, Is.EqualTo(37)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].NormalStress, Is.EqualTo(38)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].PorePressure, Is.EqualTo(39)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].HorizontalPorePressure, Is.EqualTo(40)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].VerticalPorePressure, Is.EqualTo(41)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].PiezometricPorePressure, Is.EqualTo(42)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].EffectiveStress, Is.EqualTo(43)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ExcessPorePressure, Is.EqualTo(44)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ShearStressInput, Is.EqualTo(45)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ShearStressOutput, Is.EqualTo(45.5)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].SoilStress, Is.EqualTo(46)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].TotalPorePressure, Is.EqualTo(47)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].TotalStress, Is.EqualTo(48)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].Weight, Is.EqualTo(49)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].SuInput, Is.EqualTo(50)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].SuOutput, Is.EqualTo(50.5)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].HorizontalSoilQuakeStress, Is.EqualTo(51)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].StrengthIncreaseExponent, Is.EqualTo(52)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].UpliftFactor, Is.EqualTo(53)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].VerticalSoilQuakeStress, Is.EqualTo(54)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].WaterQuakeStress, Is.EqualTo(55)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].UpliftReductionFactor, Is.EqualTo(56)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].RatioCuPc, Is.EqualTo(57)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ResultantForce, Is.EqualTo(58)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ResultantMoment, Is.EqualTo(59)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ResultantAngle, Is.EqualTo(60)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].Name, Is.EqualTo("slice1")); + Assert.That(result.StabilityDesignResults.ResultSlices[0].Width, Is.EqualTo(0.2)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].ArcLength, Is.EqualTo(0.22)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].TopAngle, Is.EqualTo(0)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].BottomAngle, Is.EqualTo(12.2)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].CohesionInput, Is.EqualTo(14)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].CohesionOutput, Is.EqualTo(15.5)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].FrictionAngleInput, Is.EqualTo(30)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].FrictionAngleOutput, Is.EqualTo(30.5)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].YieldStress, Is.EqualTo(22)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].OCR, Is.EqualTo(23)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].POP, Is.EqualTo(24)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].DegreeOfConsolidationPorePressure, Is.EqualTo(25)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].PorePressureDueToDegreeOfConsolidationLoad, Is.EqualTo(26)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].DilatancyInput, Is.EqualTo(27)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].ExternalLoad, Is.EqualTo(29)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].HydrostaticPorePressure, Is.EqualTo(30)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].LeftForce, Is.EqualTo(31)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].LeftForceAngle, Is.EqualTo(32)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].LeftForceY, Is.EqualTo(33)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].RightForce, Is.EqualTo(34)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].RightForceAngle, Is.EqualTo(35)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].RightForceY, Is.EqualTo(36)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].LoadStress, Is.EqualTo(37)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].NormalStress, Is.EqualTo(38)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].PorePressure, Is.EqualTo(39)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].HorizontalPorePressure, Is.EqualTo(40)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].VerticalPorePressure, Is.EqualTo(41)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].PiezometricPorePressure, Is.EqualTo(42)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].EffectiveStress, Is.EqualTo(43)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].ExcessPorePressure, Is.EqualTo(44)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].ShearStressInput, Is.EqualTo(45)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].ShearStressOutput, Is.EqualTo(45.5)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].SoilStress, Is.EqualTo(46)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].TotalPorePressure, Is.EqualTo(47)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].TotalStress, Is.EqualTo(48)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].Weight, Is.EqualTo(49)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].SuInput, Is.EqualTo(50)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].SuOutput, Is.EqualTo(50.5)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].HorizontalSoilQuakeStress, Is.EqualTo(51)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].StrengthIncreaseExponent, Is.EqualTo(52)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].UpliftFactor, Is.EqualTo(53)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].VerticalSoilQuakeStress, Is.EqualTo(54)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].WaterQuakeStress, Is.EqualTo(55)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].UpliftReductionFactor, Is.EqualTo(56)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].RatioCuPc, Is.EqualTo(57)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].ResultantForce, Is.EqualTo(58)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].ResultantMoment, Is.EqualTo(59)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].ResultantAngle, Is.EqualTo(60)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ShearStrengthModel, Is.EqualTo(ShearStrengthModel.CPhi)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].ShearStrengthModel, Is.EqualTo(ShearStrengthModel.CPhi)); + }); } } @@ -431,9 +447,12 @@ // Run the dll kernelWrapper.Execute(kernelDataInput, kernelDataOutput, out List messages); var macroStabilityOutput = (MacroStabilityOutput) kernelDataOutput; - Assert.That(messages.Count, Is.GreaterThan(0)); - // as there is no data at all, expect unexpected error - Assert.That(macroStabilityOutput.CalculationResult, Is.EqualTo(CalculationResult.UnexpectedError)); + Assert.Multiple(() => + { + Assert.That(messages, Is.Not.Empty); + // as there is no data at all, expect unexpected error + Assert.That(macroStabilityOutput.CalculationResult, Is.EqualTo(CalculationResult.UnexpectedError)); + }); } [Test] @@ -468,16 +487,17 @@ // several failed attempted slip planes so there should be warnings. kernelWrapper.Execute(kernelDataInput, kernelDataOutput, out messages); var macroStabilityOutput = (MacroStabilityOutput) kernelDataOutput; - Assert.That(messages.Count, Is.EqualTo(11)); - Assert.That(macroStabilityOutput.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); - Assert.That(messages[0].Message, Does.Contain("A slice is beyond the geometry at x")); + Assert.Multiple(() => + { + Assert.That(messages, Has.Count.EqualTo(11)); + Assert.That(macroStabilityOutput.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); + Assert.That(messages[0].Message, Does.Contain("A slice is beyond the geometry at x")); + }); } [Test] public void TestFullCalculationSucceeds() { - const double diff = 0.0001; - var kernelWrapper = new MacroStabilityInwardsKernelWrapper { FailureMechanismParametersMStab = new FailureMechanismParametersMStab @@ -503,69 +523,82 @@ // Run the dll kernelWrapper.Execute(kernelDataInput, kernelDataOutput, out messages); var macroStabilityOutput = (MacroStabilityOutput) kernelDataOutput; - Assert.That(messages.Count, Is.EqualTo(2)); - Assert.That(macroStabilityOutput.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); - Assert.That(macroStabilityOutput.StabilityOutputItems.Count, Is.EqualTo(1)); - Assert.That(macroStabilityOutput.StabilityOutputItems[0].SafetyFactor, Is.EqualTo(1.5211).Within(diff)); // ToDo replace by actual value when calculation is done and output is parsed + Assert.Multiple(() => + { + Assert.That(messages, Has.Count.EqualTo(2)); + Assert.That(macroStabilityOutput.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); + Assert.That(macroStabilityOutput.StabilityOutputItems, Has.Count.EqualTo(1)); + }); + Assert.That(macroStabilityOutput.StabilityOutputItems[0].SafetyFactor, Is.EqualTo(1.5212).Within(tolerance4Decimals)); // ToDo replace by actual value when calculation is done and output is parsed // Fill the design results var designScenario = new DesignScenario { LocationName = kernelInput.Location.Name }; kernelWrapper.PostProcess(kernelInput, macroStabilityOutput, designScenario, "", out List results); - Assert.That(results.Count, Is.GreaterThan(0)); + Assert.That(results, Is.Not.Empty); foreach (DesignResult result in results) { - Assert.That(result.BaseFileName, Is.EqualTo("Loc(TestLocation)_Sce(1)_Pro(DefaultNameSoilProfile1D)")); - Assert.That(result.CalculationSubDir, Is.EqualTo("..\\Test\\Stability\\UpliftVan")); - Assert.That(result.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); - Assert.That(result.StabilityDesignResults.SafetyFactor, Is.EqualTo(1.5211).Within(diff)); - Assert.That(result.StabilityDesignResults.ActiveCenterPoint.X, Is.EqualTo(50.5).Within(diff)); - Assert.That(result.StabilityDesignResults.ActiveCenterPoint.Z, Is.EqualTo(12).Within(diff)); - Assert.That(result.StabilityDesignResults.ActiveCenterPointRadius, Is.EqualTo(22).Within(diff)); - Assert.That(result.StabilityDesignResults.PassiveCenterPoint.X, Is.EqualTo(50.5)); - Assert.That(result.StabilityDesignResults.PassiveCenterPoint.Z, Is.EqualTo(2.2)); - Assert.That(result.StabilityDesignResults.PassiveCenterPointRadius, Is.EqualTo(12.2)); - Assert.That(result.StabilityDesignResults.ResultSlices.Count, Is.EqualTo(40)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].ShearStrengthModel, Is.EqualTo(ShearStrengthModel.CPhi)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].EffectiveStress, Is.EqualTo(15.8180658).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].FrictionAngleInput, Is.EqualTo(31).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].OCR, Is.EqualTo(double.NaN).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].NormalStress, Is.EqualTo(8.8710528).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.X, Is.EqualTo(29.9769477).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.Z, Is.EqualTo(4.0750819).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].Width, Is.EqualTo(0.6946544).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[0].Weight, Is.EqualTo(10.9880897).Within(diff)); + Assert.Multiple(() => + { + Assert.That(result.BaseFileName, Is.EqualTo("Loc(TestLocation)_Sce(1)_Pro(DefaultNameSoilProfile1D)")); + Assert.That(result.CalculationSubDir, Is.EqualTo("..\\Test\\Stability\\UpliftVan")); + Assert.That(result.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); + Assert.That(result.StabilityDesignResults.SafetyFactor, Is.EqualTo(1.5212).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ActiveCenterPoint.X, Is.EqualTo(50.5).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ActiveCenterPoint.Z, Is.EqualTo(12).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ActiveCenterPointRadius, Is.EqualTo(22).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.PassiveCenterPoint.X, Is.EqualTo(50.5)); + Assert.That(result.StabilityDesignResults.PassiveCenterPoint.Z, Is.EqualTo(2.2)); + Assert.That(result.StabilityDesignResults.PassiveCenterPointRadius, Is.EqualTo(12.2)); + Assert.That(result.StabilityDesignResults.ResultSlices, Has.Count.EqualTo(40)); + }); + Assert.Multiple(() => + { + Assert.That(result.StabilityDesignResults.ResultSlices[0].ShearStrengthModel, Is.EqualTo(ShearStrengthModel.CPhi)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].EffectiveStress, Is.EqualTo(15.8181).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].FrictionAngleInput, Is.EqualTo(31).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].OCR, Is.EqualTo(double.NaN).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].NormalStress, Is.EqualTo(8.8711).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.X, Is.EqualTo(29.9769).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].TopLeftPoint.Z, Is.EqualTo(4.0751).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].Width, Is.EqualTo(0.6947).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[0].Weight, Is.EqualTo(10.9881).Within(tolerance4Decimals)); + }); var index = 21; - Assert.That(result.StabilityDesignResults.ResultSlices[index].ShearStrengthModel, Is.EqualTo(ShearStrengthModel.CPhi)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].EffectiveStress, Is.EqualTo(116.6794325).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].FrictionAngleInput, Is.EqualTo(10).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].OCR, Is.EqualTo(double.NaN).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].NormalStress, Is.EqualTo(114.2973685).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].TopLeftPoint.X, Is.EqualTo(46.8636363).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].TopLeftPoint.Z, Is.EqualTo(1.8181818).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].Width, Is.EqualTo(0.9090909).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].Weight, Is.EqualTo(193.1479678).Within(diff)); + Assert.Multiple(() => + { + Assert.That(result.StabilityDesignResults.ResultSlices[index].ShearStrengthModel, Is.EqualTo(ShearStrengthModel.CPhi)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].EffectiveStress, Is.EqualTo(116.6794).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].FrictionAngleInput, Is.EqualTo(10).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].OCR, Is.EqualTo(double.NaN).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].NormalStress, Is.EqualTo(114.2974).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].TopLeftPoint.X, Is.EqualTo(46.8636).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].TopLeftPoint.Z, Is.EqualTo(1.8182).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].Width, Is.EqualTo(0.9091).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].Weight, Is.EqualTo(193.1480).Within(tolerance4Decimals)); + }); index = result.StabilityDesignResults.ResultSlices.Count - 1; - Assert.That(result.StabilityDesignResults.ResultSlices[index].ShearStrengthModel, Is.EqualTo(ShearStrengthModel.CPhi)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].EffectiveStress, Is.EqualTo(5.5185653).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].FrictionAngleInput, Is.EqualTo(31).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].OCR, Is.EqualTo(double.NaN).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].NormalStress, Is.EqualTo(7.2892231).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].TopLeftPoint.X, Is.EqualTo(61.5363037).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].TopLeftPoint.Z, Is.EqualTo(-1.9273925).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].Width, Is.EqualTo(0.9636962).Within(diff)); - Assert.That(result.StabilityDesignResults.ResultSlices[index].Weight, Is.EqualTo(10.3883614).Within(diff)); + Assert.Multiple(() => + { + Assert.That(result.StabilityDesignResults.ResultSlices[index].ShearStrengthModel, Is.EqualTo(ShearStrengthModel.CPhi)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].EffectiveStress, Is.EqualTo(5.5186).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].FrictionAngleInput, Is.EqualTo(31).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].OCR, Is.EqualTo(double.NaN).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].NormalStress, Is.EqualTo(7.2892).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].TopLeftPoint.X, Is.EqualTo(61.5363).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].TopLeftPoint.Z, Is.EqualTo(-1.9274).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].Width, Is.EqualTo(0.9637).Within(tolerance4Decimals)); + Assert.That(result.StabilityDesignResults.ResultSlices[index].Weight, Is.EqualTo(10.3884).Within(tolerance4Decimals)); + }); } } [Test] public void TestFullCalculationSucceedsWithBeeSwarmAsSearchMethod() { - const double diff = 0.0001; - var kernelWrapper = new MacroStabilityInwardsKernelWrapper { FailureMechanismParametersMStab = new FailureMechanismParametersMStab @@ -595,11 +628,14 @@ // Run the dll kernelWrapper.Execute(kernelDataInput, kernelDataOutput, out messages); var macroStabilityOutput = (MacroStabilityOutput) kernelDataOutput; - Assert.That(messages.Count, Is.EqualTo(3)); - Assert.That(macroStabilityOutput.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); - Assert.That(macroStabilityOutput.StabilityOutputItems.Count, Is.EqualTo(1)); + Assert.Multiple(() => + { + Assert.That(messages, Has.Count.EqualTo(3)); + Assert.That(macroStabilityOutput.CalculationResult, Is.EqualTo(CalculationResult.Succeeded)); + Assert.That(macroStabilityOutput.StabilityOutputItems, Has.Count.EqualTo(1)); + }); // SafetyFactor as obtained when running the skx file with this input in the stability kernel directly = 1.9882432331086863 - Assert.That(macroStabilityOutput.StabilityOutputItems[0].SafetyFactor, Is.EqualTo(1.99423).Within(diff)); + Assert.That(macroStabilityOutput.StabilityOutputItems[0].SafetyFactor, Is.EqualTo(1.4732).Within(tolerance4Decimals)); // Fill the design results var designScenario = new DesignScenario @@ -630,7 +666,7 @@ Output output = GeneralHelper.RunAfterInputValidation(engineInterface); - Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.611).Within(0.001)); + Assert.That(output.Results.CalculationResults[0].StabilityDesignResults.SafetyFactor, Is.EqualTo(1.6107).Within(tolerance4Decimals)); } [Test] @@ -670,13 +706,13 @@ Location location = DamEngineDataTestFactory.CreateLocation(FactoryForSurfaceLines.CreateSurfaceLineTutorial1()); // Correction needed in order to make surface line as lengthy as needed to perform a proper calculation. location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.SurfaceLevelInside).X = 100; - // Correction needed in order to make surface line points strictly increasing increasing (ditch was vertical at polderside, + // Correction needed in order to make surface line points strictly increasing (ditch was vertical at polderside, // now this not allowed by the kernel validator!) So that needs to be fixed in the kernel). location.SurfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DitchPolderSide).X = 62.5; location.SurfaceLine.Geometry.SyncCalcPoints(); SoilProfile1D soilProfile = DamEngineDataTestFactory.CreateSoilProfile1D(location.SoilList); - SetWaterpressureInterpolationModel(soilProfile.Layers); + SetWaterPressureInterpolationModel(soilProfile.Layers); // This test is based on a 1D profile, to be combined with the surface line. var subSoilScenario = new SoilGeometryProbability @@ -716,7 +752,7 @@ return damKernelInput; } - private static void SetWaterpressureInterpolationModel(IEnumerable layers) + private static void SetWaterPressureInterpolationModel(IEnumerable layers) { foreach (SoilLayer1D layer in layers) {