Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapperTests.cs =================================================================== diff -u -r950 -r986 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapperTests.cs (.../DamMacroStabilityInwardsKernelWrapperTests.cs) (revision 950) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapperTests.cs (.../DamMacroStabilityInwardsKernelWrapperTests.cs) (revision 986) @@ -74,10 +74,8 @@ FullCalculation(MStabModelType.BishopUpliftVan, expectedValues, expectedOutputValues); } - public void FullCalculation(MStabModelType model, List expectedCalculationValues, - List expectedOutputValues) + private static DamKernelInput CreateDamKernelInput(bool realOut = false) { - const double diff = 0.01; var soilDbName = Path.Combine(TestFolder, "soilmaterials.mdb"); var soilGeometry2DName = "1D1.sti"; @@ -105,18 +103,25 @@ subSoilScenario.SoilProfileType = SoilProfileType.ProfileTypeStiFile; subSoilScenario.SegmentFailureMechanismType = FailureMechanismSystemType.StabilityInside; - var failureMechanismParametersMStab = new FailureMechanismParametersMStab(); - failureMechanismParametersMStab.MStabParameters.GridPosition = MStabGridPosition.Right; - failureMechanismParametersMStab.MStabParameters.SearchMethod = MStabSearchMethod.GeneticAlgorithm; - failureMechanismParametersMStab.MStabParameters.CalculationOptions.MinimalCircleDepth = 1.0; - failureMechanismParametersMStab.MStabParameters.Model = model; - var damKernelInput = new DamKernelInput(); damKernelInput.Location = location; damKernelInput.DesignScenario = scenario; damKernelInput.SubSoilScenario = subSoilScenario; damKernelInput.WorkingDir = workingDir; + return damKernelInput; + } + public void FullCalculation(MStabModelType model, List expectedCalculationValues, + List expectedOutputValues) + { + const double diff = 0.01; + var damKernelInput = CreateDamKernelInput(); + var failureMechanismParametersMStab = new FailureMechanismParametersMStab(); + failureMechanismParametersMStab.MStabParameters.GridPosition = MStabGridPosition.Right; + failureMechanismParametersMStab.MStabParameters.SearchMethod = MStabSearchMethod.GeneticAlgorithm; + failureMechanismParametersMStab.MStabParameters.CalculationOptions.MinimalCircleDepth = 1.0; + failureMechanismParametersMStab.MStabParameters.Model = model; + var kernelWrapper = new DamMacroStabilityInwardsKernelWrapper(); kernelWrapper.FailureMechanismParametersMStab = failureMechanismParametersMStab; @@ -251,7 +256,7 @@ public void TestPostProcess() { var kernelWrapper = new DamMacroStabilityInwardsKernelWrapper(); - + var damKernelInput = CreateDamKernelInput(); DamMacroStabilityOutputItem outputItem = new DamMacroStabilityOutputItem(); var zone1 = new DamMacroStabilityOutputItem.ResultsSingleZone(); @@ -268,7 +273,7 @@ output.StabilityOutputItems = new List(); output.StabilityOutputItems.Add(outputItem); List results; - kernelWrapper.PostProcess(null, output, "", out results); + kernelWrapper.PostProcess(damKernelInput, output, "", out results); Assert.AreEqual(0.9, results[0].StabilityDesignResults.SafetyFactor); Assert.AreEqual(1.1, results[0].StabilityDesignResults.Zone1SafetyFactor); Assert.AreEqual(1.2, results[0].StabilityDesignResults.LocalZone1EntryPointX); @@ -301,7 +306,7 @@ { var kernelWrapper = new DamMacroStabilityInwardsKernelWrapper(); List results; - kernelWrapper.PostProcess(null, null, "", out results); + kernelWrapper.PostProcess(new DamKernelInput(), null, "", out results); } } Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs =================================================================== diff -u -r968 -r986 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 968) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityInwards/DamMacroStabilityInwardsKernelWrapper.cs (.../DamMacroStabilityInwardsKernelWrapper.cs) (revision 986) @@ -334,22 +334,27 @@ /// public void PostProcess(DamKernelInput damKernelInput, IKernelDataOutput kernelDataOutput, string resultMessage, out List designResults) { + if (damKernelInput == null) + { + throw new NoNullAllowedException(Resources.DamMacroStabilityKernelWrapper_StabilityCalculator_NoInputObjectDefinedForMacroStability); + } DamMacroStabilityOutput damMacroStabilityOutput = kernelDataOutput as DamMacroStabilityOutput; if (damMacroStabilityOutput == null) { throw new NoNullAllowedException(Resources.DamMacroStabilityKernelWrapper_PostProcess_NoOutputObjectDefinedForMacroStability); } - // TODO: this is just fake data - string soilProfile2DName = "soilProfile2DName"; - var d = new DamFailureMechanismeCalculationSpecification(); - var s = new DesignScenario + string soilProfile2DName = damKernelInput.SubSoilScenario.ToString(); + + designResults = new List(); + var designResult = new DesignResult(damKernelInput.DamFailureMechanismeCalculationSpecification, + damKernelInput.DesignScenario, damKernelInput.SubSoilScenario.SoilProfile1D, soilProfile2DName, + DamProjectCalculationSpecification.SelectedAnalysisType) { - Location = new Location() + // initialize as failed + CalculationResult = CalculationResult.RunFailed }; - var p = new SoilProfile1D(); - designResults = new List(); - var designResult = new DesignResult(d, s, p, soilProfile2DName, AnalysisType.NoAdaption); + if (damMacroStabilityOutput.StabilityOutputItems.Count > 0) { var damMacroStabilityOutputItem = damMacroStabilityOutput.StabilityOutputItems[0]; @@ -362,7 +367,9 @@ if (damMacroStabilityOutput.StabilityOutputItems.Count > 1) { // Todo this next line is still fake! - designResult = new DesignResult(d, s, p, soilProfile2DName, AnalysisType.NoAdaption); + designResult = new DesignResult(damKernelInput.DamFailureMechanismeCalculationSpecification, + damKernelInput.DesignScenario, damKernelInput.SubSoilScenario.SoilProfile1D, soilProfile2DName, + DamProjectCalculationSpecification.SelectedAnalysisType); var damMacroStabilityOutputItem = damMacroStabilityOutput.StabilityOutputItems[1]; if (damMacroStabilityOutputItem != null) {