Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs =================================================================== diff -u -r3618 -r3619 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 3618) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/MacroStabilityInwards/MacroStabilityInwardsKernelWrapperTests.cs (.../MacroStabilityInwardsKernelWrapperTests.cs) (revision 3619) @@ -415,6 +415,51 @@ } [Test] + public void TestFullCalculationSucceedsWithBeeSwarmAsSearchMethod() + { + const double diff = 0.0001; + + var kernelWrapper = new MacroStabilityInwardsKernelWrapper(); + kernelWrapper.FailureMechanismParametersMStab = new FailureMechanismParametersMStab(); + kernelWrapper.FailureMechanismParametersMStab.MStabParameters.SearchMethod = MStabSearchMethod.BeeSwarm; + + // Prepare the wrapper. Result is input for the calculation dll + IKernelDataInput kernelDataInput; + IKernelDataOutput kernelDataOutput; + var kernelInput = CreateDamKernelInputForTest(); + kernelInput.DamFailureMechanismeCalculationSpecification.FailureMechanismParametersMStab.MStabParameters + .SearchMethod = MStabSearchMethod.BeeSwarm; + // To ensure uplift occurs, set criterion to 1.4 + kernelInput.Location.ModelFactors.UpliftCriterionStability = 1.4; + PrepareResult prepareResult = + kernelWrapper.Prepare(kernelInput, 0, out kernelDataInput, out kernelDataOutput); + Assert.AreEqual(PrepareResult.Successful, prepareResult); + + // Validate the input + List messages; + var errorCount = kernelWrapper.Validate(kernelDataInput, kernelDataOutput, out messages); + Assert.IsTrue(errorCount == 0); + + // Run the dll + kernelWrapper.Execute(kernelDataInput, kernelDataOutput, out messages); + MacroStabilityOutput macroStabilityOutput = (MacroStabilityOutput) kernelDataOutput; + Assert.AreEqual(3, messages.Count); + Assert.AreEqual(CalculationResult.Succeeded, macroStabilityOutput.CalculationResult); + Assert.AreEqual(1, macroStabilityOutput.StabilityOutputItems.Count); + // SafetyFactor as obtained when running the skx file with this input in the stability kernel directly = 1.9882432331086863 + Assert.AreEqual(1.98824, macroStabilityOutput.StabilityOutputItems[0].SafetyFactor, diff); + + // Fill the design results + DesignScenario designScenario = new DesignScenario + { + Location = kernelInput.Location + }; + List results; + kernelWrapper.PostProcess(kernelInput, macroStabilityOutput, designScenario, "", out results); + Assert.IsTrue(results.Count > 0); + } + + [Test] public void CalculationBishopBasedOnDamEngineXmlFailsForWrongType() { const string calcDir = "TestStabInwardsBishop"; @@ -434,7 +479,7 @@ Assert.IsNotNull(outputString); var output = DamXmlSerialization.LoadOutputFromXmlString(outputString); - Assert.AreEqual(3,output.Results.CalculationMessages.Length, "No results available"); + Assert.AreEqual(3, output.Results.CalculationMessages.Length, "No results available"); Assert.IsTrue(output.Results.CalculationMessages[0].Message1.Contains("Requested kernel not implemented")); }