Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Deltares.DamEngine.Calculators.Tests.csproj
===================================================================
diff -u -r1258 -r1285
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Deltares.DamEngine.Calculators.Tests.csproj (.../Deltares.DamEngine.Calculators.Tests.csproj) (revision 1258)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/Deltares.DamEngine.Calculators.Tests.csproj (.../Deltares.DamEngine.Calculators.Tests.csproj) (revision 1285)
@@ -151,6 +151,12 @@
PreserveNewest
+
+ PreserveNewest
+
+
+ PreserveNewest
+
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesAssessmentRegional/RegionalScenariosCalculation.cs
===================================================================
diff -u -r1212 -r1285
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesAssessmentRegional/RegionalScenariosCalculation.cs (.../RegionalScenariosCalculation.cs) (revision 1212)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/DikesAssessmentRegional/RegionalScenariosCalculation.cs (.../RegionalScenariosCalculation.cs) (revision 1285)
@@ -370,17 +370,17 @@
currentSpecification.AssessmentScenarioJobSettings.DikeDrySensitivity = job.DikeDrySensitivity;
currentSpecification.AssessmentScenarioJobSettings.HydraulicShortcutType = job.HydraulicShortcutType;
var calculator = CreateKernelWrapper(currentSpecification);
- switch (job.LoadSituation)
+ var boezemLevelHbp = job.Location.BoezemLevelHbp;
+ var boezemLevelLbp = job.Location.BoezemLevelLbp;
+ // Adapt used waterlevel(s) when needed
+ if (job.LoadSituation == LoadSituation.Wet)
{
- case LoadSituation.Dry:
- job.Location.BoezemLevelHbp = job.Location.BoezemLevelLbp;
- break;
- case LoadSituation.Wet:
- job.Location.BoezemLevelHbp = job.Location.BoezemLevelTp;
- job.Location.BoezemLevelLbp = job.Location.BoezemLevelTp;
- break;
+ job.Location.BoezemLevelHbp = job.Location.BoezemLevelTp;
+ job.Location.BoezemLevelLbp = job.Location.BoezemLevelTp;
}
PerformJob(job, calculator, currentSpecification);
+ job.Location.BoezemLevelHbp = boezemLevelHbp;
+ job.Location.BoezemLevelLbp = boezemLevelLbp;
}
///
@@ -399,6 +399,7 @@
currentSpecification.AssessmentScenarioJobSettings.HydraulicShortcutType = job.HydraulicShortcutType;
var calculator = CreateKernelWrapper(currentSpecification);
// For piping waterlevel needs to be set here. Piping kernel only uses waterlevelhigh which is set from BoezemLevelHbp.
+ var boezemLevelHbp = job.Location.BoezemLevelHbp;
switch (job.LoadSituation)
{
case LoadSituation.Dry:
@@ -408,7 +409,8 @@
job.Location.BoezemLevelHbp = job.Location.BoezemLevelTp;
break;
}
- PerformJob(job, calculator, currentSpecification);
+ PerformJob(job, calculator, currentSpecification);
+ job.Location.BoezemLevelHbp = boezemLevelHbp;
}
else
{
Index: DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs
===================================================================
diff -u -r1268 -r1285
--- DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1268)
+++ DamEngine/trunk/src/Deltares.DamEngine.Interface/FillDamFromXmlInput.cs (.../FillDamFromXmlInput.cs) (revision 1285)
@@ -624,40 +624,43 @@
private static void AddSoilProfileProbabilities(Io.XmlInput.Segment inputSegment, Segment segment)
{
- for (int i = 0; i < inputSegment.SoilGeometryProbability.Length; i++)
+ if (inputSegment.SoilGeometryProbability != null)
{
- var soilGeometryProbability = new SoilGeometryProbability();
- var inputSoilGeometryProbability = inputSegment.SoilGeometryProbability[i];
- soilGeometryProbability.Probability = inputSoilGeometryProbability.Probability;
- if (inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified)
+ for (int i = 0; i < inputSegment.SoilGeometryProbability.Length; i++)
{
- soilGeometryProbability.SegmentFailureMechanismType = ConversionHelper.ConvertToFailureMechanismSystemType(inputSoilGeometryProbability.FailureMechanismSystemType);
- }
- else
- {
- soilGeometryProbability.SegmentFailureMechanismType = null;
- }
- soilGeometryProbability.SoilProfileType = ConversionHelper.ConvertToSoilGeometryType(inputSoilGeometryProbability.SoilProfileType);
- switch (soilGeometryProbability.SoilProfileType)
- {
- case SoilProfileType.ProfileType1D:
+ var soilGeometryProbability = new SoilGeometryProbability();
+ var inputSoilGeometryProbability = inputSegment.SoilGeometryProbability[i];
+ soilGeometryProbability.Probability = inputSoilGeometryProbability.Probability;
+ if (inputSoilGeometryProbability.FailureMechanismSystemTypeSpecified)
+ {
+ soilGeometryProbability.SegmentFailureMechanismType = ConversionHelper.ConvertToFailureMechanismSystemType(inputSoilGeometryProbability.FailureMechanismSystemType);
+ }
+ else
+ {
+ soilGeometryProbability.SegmentFailureMechanismType = null;
+ }
+ soilGeometryProbability.SoilProfileType = ConversionHelper.ConvertToSoilGeometryType(inputSoilGeometryProbability.SoilProfileType);
+ switch (soilGeometryProbability.SoilProfileType)
+ {
+ case SoilProfileType.ProfileType1D:
{
soilGeometryProbability.SoilProfile1DName = inputSoilGeometryProbability.SoilProfileName;
break;
}
- case SoilProfileType.ProfileType2D:
+ case SoilProfileType.ProfileType2D:
{
soilGeometryProbability.SoilProfile2DName = inputSoilGeometryProbability.SoilProfileName;
break;
}
- case SoilProfileType.ProfileTypeStiFile:
+ case SoilProfileType.ProfileTypeStiFile:
{
soilGeometryProbability.StiFileName = inputSoilGeometryProbability.SoilProfileName;
break;
}
- }
+ }
- segment.SoilProfileProbabilities.Add(soilGeometryProbability);
+ segment.SoilProfileProbabilities.Add(soilGeometryProbability);
+ }
}
}
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment3.soilmaterials.mdb
===================================================================
diff -u
Binary files differ
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/PlLinesHelper.cs
===================================================================
diff -u -r1258 -r1285
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/PlLinesHelper.cs (.../PlLinesHelper.cs) (revision 1258)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/PlLinesHelper.cs (.../PlLinesHelper.cs) (revision 1285)
@@ -79,19 +79,14 @@
(regionalAssessmentScenarioJobSettings.LoadSituation == LoadSituation.Dry))
{
// For dry situation other offsets have to be used as in normal situation
-// plLinesCreator.PlLineOffsetBelowDikeTopAtRiver = location.PLLineOffsetDryBelowDikeTopAtRiver; Todo Bka: implement as soon as Tom has solved this.
-// plLinesCreator.PlLineOffsetBelowDikeTopAtPolder = location.PLLineOffsetDryBelowDikeTopAtPolder;
-// plLinesCreator.PlLineOffsetBelowShoulderBaseInside = location.PLLineOffsetDryBelowShoulderBaseInside;
-// plLinesCreator.PlLineOffsetBelowDikeToeAtPolder = location.PLLineOffsetDryBelowDikeToeAtPolder;
+ plLinesCreator.PlLineOffsetBelowDikeTopAtRiver = location.PlLineOffsetDryBelowDikeTopAtRiver;
+ plLinesCreator.PlLineOffsetBelowDikeTopAtPolder = location.PlLineOffsetDryBelowDikeTopAtPolder;
+ plLinesCreator.PlLineOffsetBelowShoulderBaseInside = location.PlLineOffsetDryBelowShoulderBaseInside;
+ plLinesCreator.PlLineOffsetBelowDikeToeAtPolder = location.PlLineOffsetDryBelowDikeToeAtPolder;
plLinesCreator.PlLineOffsetBelowDikeCrestMiddle = location.PlLineOffsetDryBelowDikeCrestMiddle;
plLinesCreator.PlLineOffsetFactorBelowShoulderCrest = location.PlLineOffsetDryFactorBelowShoulderCrest;
plLinesCreator.UsePlLineOffsetBelowDikeCrestMiddle = location.UsePlLineOffsetDryBelowDikeCrestMiddle;
plLinesCreator.UsePlLineOffsetFactorBelowShoulderCrest = location.UsePlLineOffsetDryFactorBelowShoulderCrest;
- // ToDo temporay check and adjust PolderLevelLow as this is missing in xsd and thus data. Code can be removed as soon as this is fixed MWDAM-1171.
- if (location.PolderLevelLow > location.PolderLevel)
- {
- location.PolderLevelLow = location.PolderLevel - 0.25;
- }
plLinesCreator.WaterLevelPolder = location.PolderLevelLow;
}
var plLines = plLinesCreator.CreateAllPlLines(location);
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment2.xml
===================================================================
diff -u -r1258 -r1285
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment2.xml (.../RegionalAssessment2.xml) (revision 1258)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment2.xml (.../RegionalAssessment2.xml) (revision 1285)
@@ -4,7 +4,7 @@
-
+
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment3.xml
===================================================================
diff -u
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment3.xml (revision 0)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/TestFiles/RegionalAssessment3.xml (revision 1285)
@@ -0,0 +1,12169 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/RegionalAssessment/RegionalScenariosCalculationTests.cs
===================================================================
diff -u -r1258 -r1285
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/RegionalAssessment/RegionalScenariosCalculationTests.cs (.../RegionalScenariosCalculationTests.cs) (revision 1258)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators.Tests/RegionalAssessment/RegionalScenariosCalculationTests.cs (.../RegionalScenariosCalculationTests.cs) (revision 1285)
@@ -44,12 +44,18 @@
TestScenario3And7And8And10(7);
}
- [Test, Category("Work_In_Progress")]
+ [Test, Category("Slow")]
public void TestScenario1And3And5And6And7And8And9And10And11SingleCore()
{
TestScenario1And3And5And6And7And8And9And10And11(1);
}
+ [Test, Category("Slow")]
+ public void TestScenario3And4And7And8And10SingleCore()
+ {
+ TestScenario3And4And7And8And10(1);
+ }
+
private void TestScenario3And7And8And10(int numberOfCores)
{
const string calcDir = "TestOutAssessment";
@@ -146,42 +152,49 @@
Assert.IsNotNull(outputString);
var output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
Assert.AreEqual(1, output.Results.CalculationResults.LocationResults.Length);
- // expected: 18 results overall: 3 Piping Bligh (scenario 10), 3 UpliftVan (scenario03) and 12 Bishop (scenario 7: 3 results, scenario 8: 9 results)
- // Results are per scenario so expect 4
+ // expected: 14 * Bishop Dry (scenario 6), 16 * Bishop Wet (scenario08) and 6 * Bishop Dry Hydraulic Shortcut (scenario 5)
+ // 2 * UpliftVan Dry (scenario 1), 2 * Horizontal Balance (scenario 9), 2 * Piping Dry (scenario 11),
+ // 2 * UpliftVan Wet (scenario 3), 4 * scenario 7, 2 * Piping Wet (scenario 10)
+ // Results are per scenario so expect 9 scenarios
Assert.AreEqual(9, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult.Length);
- // scenario06: 14 results #Bka: not yet Ok, is 16. Safety factors wrong too
-// Assert.AreEqual(14, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults.Length);
-// Assert.AreEqual("Segment_13005_1D1", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[0].SoilProfileName);
-// Assert.AreEqual(1.607, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D3", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[1].SoilProfileName);
-// Assert.AreEqual(1.599, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D5", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[2].SoilProfileName);
-// Assert.AreEqual(1.607, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[2].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D6", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[3].SoilProfileName);
-// Assert.AreEqual(1.470, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[3].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D7", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[4].SoilProfileName);
-// Assert.AreEqual(1.559, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[4].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D8", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[5].SoilProfileName);
-// Assert.AreEqual(1.459, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[5].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D9", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[6].SoilProfileName);
-// Assert.AreEqual(1.607, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[6].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D10", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[7].SoilProfileName);
-// Assert.AreEqual(1.511, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[7].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D11", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[8].SoilProfileName);
-// Assert.AreEqual(1.559, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[8].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D12", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[9].SoilProfileName);
-// Assert.AreEqual(1.502, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[9].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D17", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[10].SoilProfileName);
-// Assert.AreEqual(1.607, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[10].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D18", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[11].SoilProfileName);
-// Assert.AreEqual(1.470, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[11].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D19", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[12].SoilProfileName);
-// Assert.AreEqual(1.559, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[12].RegionalResult.SafetyFactor, tolerance);
-// Assert.AreEqual("Segment_13005_1D20", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[13].SoilProfileName);
-// Assert.AreEqual(1.459, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[13].RegionalResult.SafetyFactor, tolerance);
+ // scenario06: 14 results
+ Assert.AreEqual(14, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(5, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[0].ScenarioType);
+
+ Assert.AreEqual("Segment_13005_1D1", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[0].SoilProfileName);
+ Assert.AreEqual(1.607, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D3", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[1].SoilProfileName);
+ Assert.AreEqual(1.559, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D5", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[2].SoilProfileName);
+ Assert.AreEqual(1.607, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[2].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D6", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[3].SoilProfileName);
+ Assert.AreEqual(1.470, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[3].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D7", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[4].SoilProfileName);
+ Assert.AreEqual(1.559, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[4].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D8", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[5].SoilProfileName);
+ Assert.AreEqual(1.459, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[5].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D9", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[6].SoilProfileName);
+ Assert.AreEqual(1.607, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[6].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D10", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[7].SoilProfileName);
+ Assert.AreEqual(1.511, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[7].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D11", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[8].SoilProfileName);
+ Assert.AreEqual(1.559, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[8].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D12", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[9].SoilProfileName);
+ Assert.AreEqual(1.502, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[9].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D17", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[10].SoilProfileName);
+ Assert.AreEqual(1.607, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[10].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D18", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[11].SoilProfileName);
+ Assert.AreEqual(1.470, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[11].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D19", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[12].SoilProfileName);
+ Assert.AreEqual(1.559, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[12].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D20", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[13].SoilProfileName);
+ Assert.AreEqual(1.459, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[13].RegionalResult.SafetyFactor, tolerance);
+
// scenario08: 16 results
Assert.AreEqual(16, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(7, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[0].ScenarioType);
+
Assert.AreEqual("Segment_13005_1D1", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[0].SoilProfileName);
Assert.AreEqual(0.984, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
Assert.AreEqual("Segment_13005_1D2", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[1].SoilProfileName);
@@ -215,51 +228,63 @@
Assert.AreEqual("Segment_13005_1D20", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[15].SoilProfileName);
Assert.AreEqual(0.804, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[15].RegionalResult.SafetyFactor, tolerance);
- // scenario05: 6 results #Bka: not yet Ok, is 4. Safety factors wrong too
- // Assert.AreEqual(6, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults.Length);
- // Assert.AreEqual("Segment_13005_1D2", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[0].SoilProfileName);
- // Assert.AreEqual(0.874, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
- // Assert.AreEqual("Segment_13005_1D4", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[1].SoilProfileName);
- // Assert.AreEqual(0.873, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
- // Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[2].SoilProfileName);
- // Assert.AreEqual(1.122, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[2].RegionalResult.SafetyFactor, tolerance);
- // Assert.AreEqual("Segment_13005_1D14", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[3].SoilProfileName);
- // Assert.AreEqual(0.972, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[3].RegionalResult.SafetyFactor, tolerance);
- // Assert.AreEqual("Segment_13005_1D15", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[4].SoilProfileName);
- // Assert.AreEqual(1.178, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[4].RegionalResult.SafetyFactor, tolerance);
- // Assert.AreEqual("Segment_13005_1D16", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[5].SoilProfileName);
- // Assert.AreEqual(1.015, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[5].RegionalResult.SafetyFactor, tolerance);
+ // scenario05: 6 results
+ Assert.AreEqual(6, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(4, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[0].ScenarioType);
- // scenario01: 2 results #Bka: not yet Ok. Safety factors wrong
- // Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults.Length);
- // Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[0].SoilProfileName);
- // Assert.AreEqual(1.379, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
- // Assert.AreEqual("Segment_13005_1D15", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[1].SoilProfileName);
- // Assert.AreEqual(1.472, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D2", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[0].SoilProfileName);
+ Assert.AreEqual(0.834, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D4", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[1].SoilProfileName);
+ Assert.AreEqual(0.873, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[2].SoilProfileName);
+ Assert.AreEqual(1.122, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[2].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D14", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[3].SoilProfileName);
+ Assert.AreEqual(0.972, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[3].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D15", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[4].SoilProfileName);
+ Assert.AreEqual(1.178, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[4].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D16", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[5].SoilProfileName);
+ Assert.AreEqual(1.015, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[5].RegionalResult.SafetyFactor, tolerance);
- // scenario09: 2 results: not yet Ok. First should be unexpected error, second factor wrong
-// Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults.Length);
-// Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[0].SoilProfileName);
-// Assert.AreEqual(8, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[0].RegionalResult.CalculationResult, tolerance);
-// Assert.AreEqual("Segment_13005_1D15", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[1].SoilProfileName);
-// Assert.AreEqual(2.819, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+ //scenario01: 2 results
+ Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(0, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[0].ScenarioType);
+ Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[0].SoilProfileName);
+ Assert.AreEqual(1.379, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_13005_1D15", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[1].SoilProfileName);
+ Assert.AreEqual(1.472, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+
+ // scenario09: 2 results
+ Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(8, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[0].ScenarioType);
+
+ Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[0].SoilProfileName);
+ Assert.AreEqual(8, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[0].RegionalResult.CalculationResult, tolerance);
+ Assert.AreEqual("Segment_13005_1D15", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[1].SoilProfileName);
+ Assert.AreEqual(2.819, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+
// scenario11: 2 results
Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[5].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(10, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[5].RegionalScenarioProfileResults[0].ScenarioType);
+
Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[5].RegionalScenarioProfileResults[0].SoilProfileName);
Assert.AreEqual(90.00, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[5].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
Assert.AreEqual("Segment_13005_1D15", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[5].RegionalScenarioProfileResults[1].SoilProfileName);
Assert.AreEqual(90.00, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[5].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
// scenario03: 2 results
Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[6].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[6].RegionalScenarioProfileResults[0].ScenarioType);
+
Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[6].RegionalScenarioProfileResults[0].SoilProfileName);
Assert.AreEqual(0.562, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[6].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
Assert.AreEqual("Segment_13005_1D15", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[6].RegionalScenarioProfileResults[1].SoilProfileName);
Assert.AreEqual(0.547, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[6].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
// scenario07: 4 results
Assert.AreEqual(4, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[7].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(6, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[7].RegionalScenarioProfileResults[0].ScenarioType);
+
Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[7].RegionalScenarioProfileResults[0].SoilProfileName);
Assert.AreEqual(0.668, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[7].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
Assert.AreEqual("Segment_13005_1D14", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[7].RegionalScenarioProfileResults[1].SoilProfileName);
@@ -271,10 +296,93 @@
// scenario10: 2 results
Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[8].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(9, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[8].RegionalScenarioProfileResults[0].ScenarioType);
Assert.AreEqual("Segment_13005_1D13", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[8].RegionalScenarioProfileResults[0].SoilProfileName);
Assert.AreEqual(90.00, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[8].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
Assert.AreEqual("Segment_13005_1D15", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[8].RegionalScenarioProfileResults[1].SoilProfileName);
Assert.AreEqual(90.00, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[8].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
}
+
+ private void TestScenario3And4And7And8And10(int numberOfCores)
+ {
+ const string calcDir = "TestOutAssessment3";
+ if (Directory.Exists(calcDir))
+ {
+ Directory.Delete(calcDir, true); // delete previous results
+ }
+ Directory.CreateDirectory(calcDir);
+
+ const string fileName = @"TestFiles\RegionalAssessment3.xml";
+ string inputString = File.ReadAllText(fileName);
+ inputString = XmlAdapter.ChangeValueInXml(inputString, "ProjectPath", ""); // Current directory will be used
+ inputString = XmlAdapter.ChangeValueInXml(inputString, "CalculationMap", calcDir); // Current directory will be used
+ //inputString = XmlAdapter.ChangeValueInXml(inputString, "MapForSoilgeometries2D", @"TestFiles\DAM Tutorial Design.geometries2D.0\");
+ inputString = XmlAdapter.ChangeValueInXml(inputString, "SoilDatabaseName", @"TestFiles\RegionalAssessment3.soilmaterials.mdb");
+ var engineInterface = new EngineInterface(inputString);
+ Assert.IsNotNull(engineInterface.DamProjectData);
+
+ engineInterface.DamProjectData.MaxCalculationCores = numberOfCores;
+ string outputString = engineInterface.Run();
+
+ Assert.IsNotNull(outputString);
+ var output = DamXmlSerialization.LoadOutputFromXmlString(outputString);
+ Assert.AreEqual(1, output.Results.CalculationResults.LocationResults.Length);
+ // expected: 14 results overall: 2 * scenario 3, 2 * scenario 7, 3 * scenario 10, 1 * scenario 4, 6 * scenario08
+ // Results are per scenario so expect 5
+ Assert.AreEqual(5, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult.Length);
+ // scenario03: 3 results
+ Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[0].ScenarioType);
+
+ Assert.AreEqual("Segment_238_1D1", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[0].SoilProfileName);
+ Assert.AreEqual(1.178, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_238_1D5", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[1].SoilProfileName);
+ Assert.AreEqual(1.178, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[0].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+
+ // scenario07: 2 results
+ Assert.AreEqual(2, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(6, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[0].ScenarioType);
+
+ Assert.AreEqual("Segment_238_1D1", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[0].SoilProfileName);
+ Assert.AreEqual(1.246, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_238_1D5", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[1].SoilProfileName);
+ Assert.AreEqual(1.246, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[1].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+
+ // scenario10: 3 results
+ Assert.AreEqual(3, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(9, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[0].ScenarioType);
+
+ Assert.AreEqual("Segment_238_1D1", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[0].SoilProfileName);
+ Assert.AreEqual(1.576, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_238_1D2", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[1].SoilProfileName);
+ Assert.AreEqual(1.377, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_238_1D5", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[2].SoilProfileName);
+ Assert.AreEqual(1.816, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[2].RegionalScenarioProfileResults[2].RegionalResult.SafetyFactor, tolerance);
+
+ // scenario04: 1 result
+ Assert.AreEqual(1, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(3, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[0].ScenarioType);
+
+ Assert.AreEqual("Segment_238_1D2", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[0].SoilProfileName);
+ Assert.AreEqual(1.178, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[3].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
+
+ // scenario08: 6 results
+ Assert.AreEqual(6, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults.Length);
+ Assert.AreEqual(7, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[0].ScenarioType);
+
+ Assert.AreEqual("Segment_238_1D2", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[0].SoilProfileName);
+ Assert.AreEqual(1.235, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[0].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_238_1D3", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[1].SoilProfileName);
+ Assert.AreEqual(1.166, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[1].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_238_1D4", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[2].SoilProfileName);
+ Assert.AreEqual(1.163, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[2].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_238_1D6", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[3].SoilProfileName);
+ Assert.AreEqual(1.264, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[3].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_238_1D7", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[4].SoilProfileName);
+ Assert.AreEqual(1.166, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[4].RegionalResult.SafetyFactor, tolerance);
+ Assert.AreEqual("Segment_238_1D8", output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[5].SoilProfileName);
+ Assert.AreEqual(1.163, output.Results.CalculationResults.LocationResults[0].RegionalScenariosResult.RegionalScenarioResult[4].RegionalScenarioProfileResults[5].RegionalResult.SafetyFactor, tolerance);
+
+ }
}
}
Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/MStabXmlDoc.cs
===================================================================
diff -u -r1246 -r1285
--- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/MStabXmlDoc.cs (.../MStabXmlDoc.cs) (revision 1246)
+++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamMacroStabilityCommon/MStabXmlDoc.cs (.../MStabXmlDoc.cs) (revision 1285)
@@ -111,6 +111,9 @@
location.ShoulderEmbankmentMaterial;
failureMechanismParametersMStab.MStabParameters.GeometryCreationOptions.IsUseOriginalPlLineAssignments =
location.IsUseOriginalPlLineAssignments;
+ failureMechanismParametersMStab.MStabParameters.GeometryCreationOptions.IsDrySituation =
+ (regionalAssessmentScenarioJobSettings.DikeDrySensitivity == DikeDrySensitivity.Dry) &&
+ (regionalAssessmentScenarioJobSettings.LoadSituation == LoadSituation.Dry);
failureMechanismParametersMStab.MStabParameters.GeometryCreationOptions.IsDesign =
(embankmentDesignParameters != null);
failureMechanismParametersMStab.MStabParameters.GeometryCreationOptions.XOffsetSoilGeometry2DOrigin =