Index: DamEngine/trunk/src/Deltares.DamEngine.Data/General/Segment.cs =================================================================== diff -u -r1641 -r1642 --- DamEngine/trunk/src/Deltares.DamEngine.Data/General/Segment.cs (.../Segment.cs) (revision 1641) +++ DamEngine/trunk/src/Deltares.DamEngine.Data/General/Segment.cs (.../Segment.cs) (revision 1642) @@ -61,7 +61,14 @@ public SoilProfile1D GetMostProbableProfile1D(FailureMechanismSystemType? segmentFailureMechanismType) { var mostProbableSoilGeometryProbability = GetMostProbableSoilGeometryProbability(segmentFailureMechanismType); - return mostProbableSoilGeometryProbability?.SoilProfile1D; + if (mostProbableSoilGeometryProbability != null && mostProbableSoilGeometryProbability.SoilProfileType == SoilProfileType.ProfileType1D) + { + return mostProbableSoilGeometryProbability?.SoilProfile1D; + } + else + { + return null; + } } /// @@ -72,7 +79,14 @@ public string GetMostProbableProfile2DStiFileName(FailureMechanismSystemType? segmentFailureMechanismType) { var mostProbableSoilGeometryProbability = GetMostProbableSoilGeometryProbability(segmentFailureMechanismType); - return mostProbableSoilGeometryProbability?.FullStiFileName; + if (mostProbableSoilGeometryProbability != null && mostProbableSoilGeometryProbability.SoilProfileType == SoilProfileType.ProfileTypeStiFile) + { + return mostProbableSoilGeometryProbability?.FullStiFileName; + } + else + { + return null; + } } public SoilGeometryProbability GetMostProbableSoilGeometryProbability(FailureMechanismSystemType? segmentFailureMechanismType) Index: DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/General/SegmentTests.cs =================================================================== diff -u -r1641 -r1642 --- DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/General/SegmentTests.cs (.../SegmentTests.cs) (revision 1641) +++ DamEngine/trunk/src/Deltares.DamEngine.Data.Tests/General/SegmentTests.cs (.../SegmentTests.cs) (revision 1642) @@ -4,16 +4,109 @@ using System.Linq; using System.Text; using System.Threading.Tasks; +using Deltares.DamEngine.Data.General; +using Deltares.DamEngine.Data.Geotechnics; namespace Deltares.DamEngine.Data.Tests.General { [TestFixture] public class SegmentTests { [Test] - public void GetMostProbableSoilGeometryProbability() + public void CanGetMostProbableProbableProfile1DForStability() { - + var segment = CreateSegment(FailureMechanismSystemType.StabilityInside, SoilProfileType.ProfileType1D); + Assert.AreEqual("profile 1D 2", segment.GetMostProbableSoilGeometryProbability(FailureMechanismSystemType.StabilityInside).SoilProfile1D.Name); + Assert.AreEqual("profile 1D 2", segment.GetMostProbableProfile1D(FailureMechanismSystemType.StabilityInside).Name); + Assert.AreEqual(null, segment.GetMostProbableProfile2DStiFileName(FailureMechanismSystemType.StabilityInside)); + Assert.AreEqual(null, segment.GetMostProbableSoilGeometryProbability(FailureMechanismSystemType.Piping)); + Assert.AreEqual(null, segment.GetMostProbableProfile2DStiFileName(FailureMechanismSystemType.Piping)); + Assert.AreEqual(null, segment.GetMostProbableProfile1D(FailureMechanismSystemType.Piping)); } + + [Test] + public void CanGetMostProbableProbableProfile1DForPiping() + { + var segment = CreateSegment(FailureMechanismSystemType.Piping, SoilProfileType.ProfileType1D); + Assert.AreEqual("profile 1D 2", segment.GetMostProbableSoilGeometryProbability(FailureMechanismSystemType.Piping).SoilProfile1D.Name); + Assert.AreEqual("profile 1D 2", segment.GetMostProbableProfile1D(FailureMechanismSystemType.Piping).Name); + Assert.AreEqual(null, segment.GetMostProbableProfile2DStiFileName(FailureMechanismSystemType.Piping)); + Assert.AreEqual(null, segment.GetMostProbableSoilGeometryProbability(FailureMechanismSystemType.StabilityInside)); + Assert.AreEqual(null, segment.GetMostProbableProfile2DStiFileName(FailureMechanismSystemType.StabilityInside)); + Assert.AreEqual(null, segment.GetMostProbableProfile1D(FailureMechanismSystemType.StabilityInside)); + } + + [Test] + public void CanGetMostProbableProbableProfile2DStiFileNameForStability() + { + var segment = CreateSegment(FailureMechanismSystemType.StabilityInside, SoilProfileType.ProfileTypeStiFile); + Assert.AreEqual("sti filename 2", segment.GetMostProbableSoilGeometryProbability(FailureMechanismSystemType.StabilityInside).FullStiFileName); + Assert.AreEqual("sti filename 2", segment.GetMostProbableProfile2DStiFileName(FailureMechanismSystemType.StabilityInside)); + Assert.AreEqual(null, segment.GetMostProbableProfile1D(FailureMechanismSystemType.StabilityInside)); + Assert.AreEqual(null, segment.GetMostProbableSoilGeometryProbability(FailureMechanismSystemType.Piping)); + Assert.AreEqual(null, segment.GetMostProbableProfile2DStiFileName(FailureMechanismSystemType.Piping)); + Assert.AreEqual(null, segment.GetMostProbableProfile1D(FailureMechanismSystemType.Piping)); + } + + [Test] + public void CanGetMostProbableProbableProfile2DStiFileNameForPiping() + { + var segment = CreateSegment(FailureMechanismSystemType.Piping, SoilProfileType.ProfileTypeStiFile); + Assert.AreEqual("sti filename 2", segment.GetMostProbableSoilGeometryProbability(FailureMechanismSystemType.Piping).FullStiFileName); + Assert.AreEqual("sti filename 2", segment.GetMostProbableProfile2DStiFileName(FailureMechanismSystemType.Piping)); + Assert.AreEqual(null, segment.GetMostProbableProfile1D(FailureMechanismSystemType.Piping)); + Assert.AreEqual(null, segment.GetMostProbableSoilGeometryProbability(FailureMechanismSystemType.StabilityInside)); + Assert.AreEqual(null, segment.GetMostProbableProfile2DStiFileName(FailureMechanismSystemType.StabilityInside)); + Assert.AreEqual(null, segment.GetMostProbableProfile1D(FailureMechanismSystemType.StabilityInside)); + } + private static Segment CreateSegment(FailureMechanismSystemType failureMechanismSystemType, SoilProfileType soilProfileType) + { + var segment = new Segment(); + segment.SoilProfileProbabilities.Add(new SoilGeometryProbability() + { + Probability = 0.1, + SegmentFailureMechanismType = failureMechanismSystemType, + SoilProfileType = soilProfileType, + FullStiFileName = "sti filename 1", + SoilProfile1D = new SoilProfile1D() + { + Name = "profile 1D 1" + } + }); + segment.SoilProfileProbabilities.Add(new SoilGeometryProbability() + { + Probability = 0.4, + SegmentFailureMechanismType = failureMechanismSystemType, + SoilProfileType = soilProfileType, + FullStiFileName = "sti filename 2", + SoilProfile1D = new SoilProfile1D() + { + Name = "profile 1D 2" + } + }); + segment.SoilProfileProbabilities.Add(new SoilGeometryProbability() + { + Probability = 0.3, + SegmentFailureMechanismType = failureMechanismSystemType, + SoilProfileType = soilProfileType, + FullStiFileName = "sti filename 3", + SoilProfile1D = new SoilProfile1D() + { + Name = "profile 1D 3" + } + }); + segment.SoilProfileProbabilities.Add(new SoilGeometryProbability() + { + Probability = 0.2, + SegmentFailureMechanismType = failureMechanismSystemType, + SoilProfileType = soilProfileType, + FullStiFileName = "sti filename 4", + SoilProfile1D = new SoilProfile1D() + { + Name = "profile 1D 4" + } + }); + return segment; + } } }