public void Read_EntityWithOutput_ReturnsCalculationScenarioWithOutput() { // Setup var random = new Random(31); var tangentLines = new RoundedDouble[0]; var slices = new MacroStabilityInwardsSlice[0]; var calculationOutputEntity = new MacroStabilityInwardsCalculationOutputEntity { SlipPlaneTangentLinesXml = new TangentLineCollectionXmlSerializer().ToXml(tangentLines), SlidingCurveSliceXML = new MacroStabilityInwardsSliceCollectionXmlSerializer().ToXml(slices), SlipPlaneLeftGridNrOfHorizontalPoints = random.Next(1, 100), SlipPlaneLeftGridNrOfVerticalPoints = random.Next(1, 100), SlipPlaneRightGridNrOfHorizontalPoints = random.Next(1, 100), SlipPlaneRightGridNrOfVerticalPoints = random.Next(1, 100) }; MacroStabilityInwardsCalculationEntity entity = CreateValidCalculationEntity(); entity.MacroStabilityInwardsCalculationOutputEntities.Add(calculationOutputEntity); var collector = new ReadConversionCollector(); // Call MacroStabilityInwardsCalculationScenario calculation = entity.Read(collector); // Assert MacroStabilityInwardsOutput output = calculation.Output; Assert.IsNotNull(output); MacroStabilityInwardsCalculationOutputEntityTestHelper.AssertOutputPropertyValues(output, calculationOutputEntity); }
private static void AssertSlipPlaneProperties(MacroStabilityInwardsSlipPlaneUpliftVan slipPlane, MacroStabilityInwardsCalculationOutputEntity entity) { string expectedTangentLinesXml = new TangentLineCollectionXmlSerializer().ToXml(slipPlane.TangentLines); Assert.AreEqual(expectedTangentLinesXml, entity.SlipPlaneTangentLinesXml); MacroStabilityInwardsGrid leftGrid = slipPlane.LeftGrid; AssertAreEqual(leftGrid.XLeft, entity.SlipPlaneLeftGridXLeft); AssertAreEqual(leftGrid.XRight, entity.SlipPlaneLeftGridXRight); Assert.AreEqual(leftGrid.NumberOfHorizontalPoints, entity.SlipPlaneLeftGridNrOfHorizontalPoints); AssertAreEqual(leftGrid.ZTop, entity.SlipPlaneLeftGridZTop); AssertAreEqual(leftGrid.ZBottom, entity.SlipPlaneLeftGridZBottom); Assert.AreEqual(leftGrid.NumberOfVerticalPoints, entity.SlipPlaneLeftGridNrOfVerticalPoints); MacroStabilityInwardsGrid rightGrid = slipPlane.RightGrid; AssertAreEqual(rightGrid.XLeft, entity.SlipPlaneRightGridXLeft); AssertAreEqual(rightGrid.XRight, entity.SlipPlaneRightGridXRight); Assert.AreEqual(rightGrid.NumberOfHorizontalPoints, entity.SlipPlaneRightGridNrOfHorizontalPoints); AssertAreEqual(rightGrid.ZTop, entity.SlipPlaneRightGridZTop); AssertAreEqual(rightGrid.ZBottom, entity.SlipPlaneRightGridZBottom); Assert.AreEqual(rightGrid.NumberOfVerticalPoints, entity.SlipPlaneRightGridNrOfVerticalPoints); }
private static void SetSlidingCurveParametersToEntity(MacroStabilityInwardsCalculationOutputEntity entity, MacroStabilityInwardsSlidingCurve slidingCurve) { entity.SlidingCurveSliceXML = new MacroStabilityInwardsSliceCollectionXmlSerializer().ToXml(slidingCurve.Slices); entity.SlidingCurveNonIteratedHorizontalForce = slidingCurve.NonIteratedHorizontalForce.ToNaNAsNull(); entity.SlidingCurveIteratedHorizontalForce = slidingCurve.IteratedHorizontalForce.ToNaNAsNull(); MacroStabilityInwardsSlidingCircle leftCircle = slidingCurve.LeftCircle; entity.SlidingCurveLeftSlidingCircleCenterX = leftCircle.Center.X.ToNaNAsNull(); entity.SlidingCurveLeftSlidingCircleCenterY = leftCircle.Center.Y.ToNaNAsNull(); entity.SlidingCurveLeftSlidingCircleRadius = leftCircle.Radius.ToNaNAsNull(); entity.SlidingCurveLeftSlidingCircleIsActive = Convert.ToByte(leftCircle.IsActive); entity.SlidingCurveLeftSlidingCircleNonIteratedForce = leftCircle.NonIteratedForce.ToNaNAsNull(); entity.SlidingCurveLeftSlidingCircleIteratedForce = leftCircle.IteratedForce.ToNaNAsNull(); entity.SlidingCurveLeftSlidingCircleDrivingMoment = leftCircle.DrivingMoment.ToNaNAsNull(); entity.SlidingCurveLeftSlidingCircleResistingMoment = leftCircle.ResistingMoment.ToNaNAsNull(); MacroStabilityInwardsSlidingCircle rightCircle = slidingCurve.RightCircle; entity.SlidingCurveRightSlidingCircleCenterX = rightCircle.Center.X.ToNaNAsNull(); entity.SlidingCurveRightSlidingCircleCenterY = rightCircle.Center.Y.ToNaNAsNull(); entity.SlidingCurveRightSlidingCircleRadius = rightCircle.Radius.ToNaNAsNull(); entity.SlidingCurveRightSlidingCircleIsActive = Convert.ToByte(rightCircle.IsActive); entity.SlidingCurveRightSlidingCircleNonIteratedForce = rightCircle.NonIteratedForce.ToNaNAsNull(); entity.SlidingCurveRightSlidingCircleIteratedForce = rightCircle.IteratedForce.ToNaNAsNull(); entity.SlidingCurveRightSlidingCircleDrivingMoment = rightCircle.DrivingMoment.ToNaNAsNull(); entity.SlidingCurveRightSlidingCircleResistingMoment = rightCircle.ResistingMoment.ToNaNAsNull(); }
private static MacroStabilityInwardsSlidingCurve ReadSlidingCurve(MacroStabilityInwardsCalculationOutputEntity entity) { var leftCircle = new MacroStabilityInwardsSlidingCircle(new Point2D(entity.SlidingCurveLeftSlidingCircleCenterX.ToNullAsNaN(), entity.SlidingCurveLeftSlidingCircleCenterY.ToNullAsNaN()), entity.SlidingCurveLeftSlidingCircleRadius.ToNullAsNaN(), Convert.ToBoolean(entity.SlidingCurveLeftSlidingCircleIsActive), entity.SlidingCurveLeftSlidingCircleNonIteratedForce.ToNullAsNaN(), entity.SlidingCurveLeftSlidingCircleIteratedForce.ToNullAsNaN(), entity.SlidingCurveLeftSlidingCircleDrivingMoment.ToNullAsNaN(), entity.SlidingCurveLeftSlidingCircleResistingMoment.ToNullAsNaN()); var rightCircle = new MacroStabilityInwardsSlidingCircle(new Point2D(entity.SlidingCurveRightSlidingCircleCenterX.ToNullAsNaN(), entity.SlidingCurveRightSlidingCircleCenterY.ToNullAsNaN()), entity.SlidingCurveRightSlidingCircleRadius.ToNullAsNaN(), Convert.ToBoolean(entity.SlidingCurveRightSlidingCircleIsActive), entity.SlidingCurveRightSlidingCircleNonIteratedForce.ToNullAsNaN(), entity.SlidingCurveRightSlidingCircleIteratedForce.ToNullAsNaN(), entity.SlidingCurveRightSlidingCircleDrivingMoment.ToNullAsNaN(), entity.SlidingCurveRightSlidingCircleResistingMoment.ToNullAsNaN()); MacroStabilityInwardsSlice[] slices = new MacroStabilityInwardsSliceCollectionXmlSerializer().FromXml(entity.SlidingCurveSliceXML); return(new MacroStabilityInwardsSlidingCurve(leftCircle, rightCircle, slices, entity.SlidingCurveNonIteratedHorizontalForce.ToNullAsNaN(), entity.SlidingCurveIteratedHorizontalForce.ToNullAsNaN())); }
private static void AssertSlidingCurveProperties(MacroStabilityInwardsSlidingCurve slidingCurve, MacroStabilityInwardsCalculationOutputEntity entity) { string expectedSlicesXml = new MacroStabilityInwardsSliceCollectionXmlSerializer().ToXml(slidingCurve.Slices); Assert.AreEqual(expectedSlicesXml, entity.SlidingCurveSliceXML); AssertAreEqual(slidingCurve.IteratedHorizontalForce, entity.SlidingCurveIteratedHorizontalForce); AssertAreEqual(slidingCurve.NonIteratedHorizontalForce, entity.SlidingCurveNonIteratedHorizontalForce); MacroStabilityInwardsSlidingCircle leftCircle = slidingCurve.LeftCircle; AssertAreEqual(leftCircle.Center.X, entity.SlidingCurveLeftSlidingCircleCenterX); AssertAreEqual(leftCircle.Center.Y, entity.SlidingCurveLeftSlidingCircleCenterY); AssertAreEqual(leftCircle.Radius, entity.SlidingCurveLeftSlidingCircleRadius); Assert.AreEqual(Convert.ToByte(leftCircle.IsActive), entity.SlidingCurveLeftSlidingCircleIsActive); AssertAreEqual(leftCircle.IteratedForce, entity.SlidingCurveLeftSlidingCircleIteratedForce); AssertAreEqual(leftCircle.NonIteratedForce, entity.SlidingCurveLeftSlidingCircleNonIteratedForce); AssertAreEqual(leftCircle.DrivingMoment, entity.SlidingCurveLeftSlidingCircleDrivingMoment); AssertAreEqual(leftCircle.ResistingMoment, entity.SlidingCurveLeftSlidingCircleResistingMoment); MacroStabilityInwardsSlidingCircle rightCircle = slidingCurve.RightCircle; AssertAreEqual(rightCircle.Center.X, entity.SlidingCurveRightSlidingCircleCenterX); AssertAreEqual(rightCircle.Center.Y, entity.SlidingCurveRightSlidingCircleCenterY); AssertAreEqual(rightCircle.Radius, entity.SlidingCurveRightSlidingCircleRadius); Assert.AreEqual(Convert.ToByte(rightCircle.IsActive), entity.SlidingCurveRightSlidingCircleIsActive); AssertAreEqual(rightCircle.IteratedForce, entity.SlidingCurveRightSlidingCircleIteratedForce); AssertAreEqual(rightCircle.NonIteratedForce, entity.SlidingCurveRightSlidingCircleNonIteratedForce); AssertAreEqual(rightCircle.DrivingMoment, entity.SlidingCurveRightSlidingCircleDrivingMoment); AssertAreEqual(rightCircle.ResistingMoment, entity.SlidingCurveRightSlidingCircleResistingMoment); }
public void Read_EntityWithValues_ReturnExpectedOutput() { // Setup var random = new Random(21); IEnumerable <MacroStabilityInwardsSlice> slices = new[] { MacroStabilityInwardsSliceTestFactory.CreateSlice() }; IEnumerable <RoundedDouble> tangentLines = new[] { new RoundedDouble(2, random.NextDouble()) }; var entity = new MacroStabilityInwardsCalculationOutputEntity { FactorOfStability = random.NextDouble(), ForbiddenZonesXEntryMin = random.NextDouble(), ForbiddenZonesXEntryMax = random.NextDouble(), SlidingCurveSliceXML = new MacroStabilityInwardsSliceCollectionXmlSerializer().ToXml(slices), SlidingCurveNonIteratedHorizontalForce = random.NextDouble(), SlidingCurveIteratedHorizontalForce = random.NextDouble(), SlidingCurveLeftSlidingCircleCenterX = random.NextDouble(), SlidingCurveLeftSlidingCircleCenterY = random.NextDouble(), SlidingCurveLeftSlidingCircleRadius = random.NextDouble(), SlidingCurveLeftSlidingCircleIsActive = Convert.ToByte(random.NextBoolean()), SlidingCurveLeftSlidingCircleNonIteratedForce = random.NextDouble(), SlidingCurveLeftSlidingCircleIteratedForce = random.NextDouble(), SlidingCurveLeftSlidingCircleDrivingMoment = random.NextDouble(), SlidingCurveLeftSlidingCircleResistingMoment = random.NextDouble(), SlidingCurveRightSlidingCircleCenterX = random.NextDouble(), SlidingCurveRightSlidingCircleCenterY = random.NextDouble(), SlidingCurveRightSlidingCircleRadius = random.NextDouble(), SlidingCurveRightSlidingCircleIsActive = Convert.ToByte(random.NextBoolean()), SlidingCurveRightSlidingCircleNonIteratedForce = random.NextDouble(), SlidingCurveRightSlidingCircleIteratedForce = random.NextDouble(), SlidingCurveRightSlidingCircleDrivingMoment = random.NextDouble(), SlidingCurveRightSlidingCircleResistingMoment = random.NextDouble(), SlipPlaneTangentLinesXml = new TangentLineCollectionXmlSerializer().ToXml(tangentLines), SlipPlaneLeftGridXLeft = random.NextDouble(0.0, 1.0), SlipPlaneLeftGridXRight = random.NextDouble(2.0, 3.0), SlipPlaneLeftGridNrOfHorizontalPoints = random.Next(1, 100), SlipPlaneLeftGridZTop = random.NextDouble(2.0, 3.0), SlipPlaneLeftGridZBottom = random.NextDouble(0.0, 1.0), SlipPlaneLeftGridNrOfVerticalPoints = random.Next(1, 100), SlipPlaneRightGridXLeft = random.NextDouble(0.0, 1.0), SlipPlaneRightGridXRight = random.NextDouble(2.0, 3.0), SlipPlaneRightGridNrOfHorizontalPoints = random.Next(1, 100), SlipPlaneRightGridZTop = random.NextDouble(2.0, 3.0), SlipPlaneRightGridZBottom = random.NextDouble(0.0, 1.0), SlipPlaneRightGridNrOfVerticalPoints = random.Next(1, 100) }; // Call MacroStabilityInwardsOutput output = entity.Read(); // Assert MacroStabilityInwardsCalculationOutputEntityTestHelper.AssertOutputPropertyValues(output, entity); }
private static void SetCalculationOutputsToScenario(MacroStabilityInwardsCalculationScenario calculationScenario, MacroStabilityInwardsCalculationEntity entity) { MacroStabilityInwardsCalculationOutputEntity outputEntity = entity.MacroStabilityInwardsCalculationOutputEntities.SingleOrDefault(); if (outputEntity != null) { calculationScenario.Output = outputEntity.Read(); } }
public void Create_WithNaNValues_ReturnsPropertyWithExpectedPropertiesSet() { // Setup MacroStabilityInwardsSlidingCircle leftCircle = CreateSlidingCircleWithNaNValues(); MacroStabilityInwardsSlidingCircle rightCircle = CreateSlidingCircleWithNaNValues(); var slidingCurve = new MacroStabilityInwardsSlidingCurve(leftCircle, rightCircle, new MacroStabilityInwardsSlice[0], double.NaN, double.NaN); var slipPlane = new MacroStabilityInwardsSlipPlaneUpliftVan(CreateGridWithNaNValues(), CreateGridWithNaNValues(), new RoundedDouble[0]); var output = new MacroStabilityInwardsOutput(slidingCurve, slipPlane, new MacroStabilityInwardsOutput.ConstructionProperties()); // Call MacroStabilityInwardsCalculationOutputEntity entity = output.Create(); // Assert Assert.IsNotNull(entity); Assert.IsNull(entity.FactorOfStability); Assert.IsNull(entity.ForbiddenZonesXEntryMin); Assert.IsNull(entity.ForbiddenZonesXEntryMax); Assert.IsNull(entity.SlipPlaneLeftGridXLeft); Assert.IsNull(entity.SlipPlaneLeftGridXRight); Assert.IsNull(entity.SlipPlaneLeftGridZTop); Assert.IsNull(entity.SlipPlaneLeftGridZBottom); Assert.IsNull(entity.SlipPlaneRightGridXLeft); Assert.IsNull(entity.SlipPlaneRightGridXRight); Assert.IsNull(entity.SlipPlaneRightGridZTop); Assert.IsNull(entity.SlipPlaneRightGridZBottom); Assert.IsNull(entity.SlidingCurveIteratedHorizontalForce); Assert.IsNull(entity.SlidingCurveNonIteratedHorizontalForce); Assert.IsNull(entity.SlidingCurveLeftSlidingCircleCenterX); Assert.IsNull(entity.SlidingCurveLeftSlidingCircleCenterY); Assert.IsNull(entity.SlidingCurveLeftSlidingCircleRadius); Assert.IsNull(entity.SlidingCurveLeftSlidingCircleIteratedForce); Assert.IsNull(entity.SlidingCurveLeftSlidingCircleNonIteratedForce); Assert.IsNull(entity.SlidingCurveLeftSlidingCircleDrivingMoment); Assert.IsNull(entity.SlidingCurveLeftSlidingCircleResistingMoment); Assert.IsNull(entity.SlidingCurveRightSlidingCircleCenterX); Assert.IsNull(entity.SlidingCurveRightSlidingCircleCenterY); Assert.IsNull(entity.SlidingCurveRightSlidingCircleRadius); Assert.IsNull(entity.SlidingCurveRightSlidingCircleIteratedForce); Assert.IsNull(entity.SlidingCurveRightSlidingCircleNonIteratedForce); Assert.IsNull(entity.SlidingCurveRightSlidingCircleDrivingMoment); Assert.IsNull(entity.SlidingCurveRightSlidingCircleResistingMoment); }
public void Read_EntityWithNullValues_ReturnExpectedOutputWithNaNValues() { // Setup MacroStabilityInwardsCalculationOutputEntity entity = CreateValidCalculationOutputEntity(); // Call MacroStabilityInwardsOutput output = entity.Read(); // Assert MacroStabilityInwardsCalculationOutputEntityTestHelper.AssertOutputPropertyValues(output, entity); }
public void Read_SlidingCurveSliceXMLEmpty_ThrowsArgumentException() { // Setup MacroStabilityInwardsCalculationOutputEntity entity = CreateValidCalculationOutputEntity(); entity.SlidingCurveSliceXML = string.Empty; // Call TestDelegate call = () => entity.Read(); // Assert var exception = Assert.Throws <ArgumentException>(call); Assert.AreEqual("xml", exception.ParamName); }
/// <summary> /// Read the <see cref="MacroStabilityInwardsCalculationOutputEntity"/> and use the information to /// construct a <see cref="MacroStabilityInwardsOutput"/>. /// </summary> /// <param name="entity">The <see cref="MacroStabilityInwardsCalculationOutputEntity"/> to create /// <see cref="MacroStabilityInwardsOutput"/> for.</param> /// <returns>A new <see cref="MacroStabilityInwardsOutput"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="entity"/> is <c>null</c>.</exception> public static MacroStabilityInwardsOutput Read(this MacroStabilityInwardsCalculationOutputEntity entity) { if (entity == null) { throw new ArgumentNullException(nameof(entity)); } MacroStabilityInwardsSlipPlaneUpliftVan slipPlane = ReadSlipPlane(entity); MacroStabilityInwardsSlidingCurve slidingCurve = ReadSlidingCurve(entity); return(new MacroStabilityInwardsOutput(slidingCurve, slipPlane, new MacroStabilityInwardsOutput.ConstructionProperties { FactorOfStability = entity.FactorOfStability.ToNullAsNaN(), ForbiddenZonesXEntryMax = entity.ForbiddenZonesXEntryMax.ToNullAsNaN(), ForbiddenZonesXEntryMin = entity.ForbiddenZonesXEntryMin.ToNullAsNaN() })); }
/// <summary> /// Creates a <see cref="MacroStabilityInwardsCalculationOutputEntity"/> based on the information /// of the <see cref="MacroStabilityInwardsOutput"/>. /// </summary> /// <param name="output">The calculation output for macro stability inwards failure mechanism to /// create a database entity for.</param> /// <returns>A new <see cref="MacroStabilityInwardsCalculationOutputEntity"/>.</returns> /// <exception cref="ArgumentNullException">Thrown when <paramref name="output"/> /// is <c>null</c>.</exception> public static MacroStabilityInwardsCalculationOutputEntity Create(this MacroStabilityInwardsOutput output) { if (output == null) { throw new ArgumentNullException(nameof(output)); } var entity = new MacroStabilityInwardsCalculationOutputEntity { FactorOfStability = output.FactorOfStability.ToNaNAsNull(), ForbiddenZonesXEntryMin = output.ForbiddenZonesXEntryMin.ToNaNAsNull(), ForbiddenZonesXEntryMax = output.ForbiddenZonesXEntryMax.ToNaNAsNull() }; SetSlidingCurveParametersToEntity(entity, output.SlidingCurve); SetSlipPlaneParametersToEntity(entity, output.SlipPlane); return(entity); }
public void Create_HasMacroStabilityInwardsOutput_ReturnsEntityWithOutputEntity() { // Setup var scenario = new MacroStabilityInwardsCalculationScenario { Output = MacroStabilityInwardsOutputTestFactory.CreateOutput() }; var registry = new PersistenceRegistry(); // Call MacroStabilityInwardsCalculationEntity entity = scenario.Create(registry, 0); // Assert Assert.IsNotNull(entity); MacroStabilityInwardsCalculationOutputEntity outputEntity = entity.MacroStabilityInwardsCalculationOutputEntities.SingleOrDefault(); Assert.IsNotNull(outputEntity); MacroStabilityInwardsCalculationOutputEntityTestHelper.AssertOutputPropertyValues(scenario.Output, outputEntity); }
/// <summary> /// Determines for each property of <paramref name="entity"/> whether the matching /// property of <paramref name="output"/> has an equal value. /// </summary> /// <param name="output">The <see cref="MacroStabilityInwardsOutput"/> to compare.</param> /// <param name="entity">The <see cref="MacroStabilityInwardsCalculationOutputEntity"/> /// to compare.</param> /// <exception cref="ArgumentNullException">Thrown if any of the argument is <c>null</c>.</exception> /// <exception cref="AssertionException">Thrown when any of the values of the /// <see cref="MacroStabilityInwardsOutput"/> and its nested elements do not match. /// </exception> public static void AssertOutputPropertyValues(MacroStabilityInwardsOutput output, MacroStabilityInwardsCalculationOutputEntity entity) { if (output == null) { throw new ArgumentNullException(nameof(output)); } if (entity == null) { throw new ArgumentNullException(nameof(entity)); } AssertAreEqual(output.FactorOfStability, entity.FactorOfStability); AssertAreEqual(output.ForbiddenZonesXEntryMin, entity.ForbiddenZonesXEntryMin); AssertAreEqual(output.ForbiddenZonesXEntryMax, entity.ForbiddenZonesXEntryMax); AssertSlidingCurveProperties(output.SlidingCurve, entity); AssertSlipPlaneProperties(output.SlipPlane, entity); }
public void Create_WithValidValues_ReturnsEntityWithExpectedPropertiesSet() { // Setup var random = new Random(21); MacroStabilityInwardsSlidingCircle leftCircle = CreateSlidingCircle(13); MacroStabilityInwardsSlidingCircle rightCircle = CreateSlidingCircle(34); IEnumerable<MacroStabilityInwardsSlice> slices = new[] { MacroStabilityInwardsSliceTestFactory.CreateSlice() }; var slidingCurve = new MacroStabilityInwardsSlidingCurve(leftCircle, rightCircle, slices, random.NextDouble(), random.NextDouble()); MacroStabilityInwardsGrid leftGrid = MacroStabilityInwardsGridTestFactory.Create(); MacroStabilityInwardsGrid rightGrid = MacroStabilityInwardsGridTestFactory.Create(); RoundedDouble[] tangentLines = { random.NextRoundedDouble() }; var slipPlane = new MacroStabilityInwardsSlipPlaneUpliftVan(leftGrid, rightGrid, tangentLines); var output = new MacroStabilityInwardsOutput(slidingCurve, slipPlane, new MacroStabilityInwardsOutput.ConstructionProperties { FactorOfStability = random.NextDouble(), ForbiddenZonesXEntryMax = random.NextDouble(), ForbiddenZonesXEntryMin = random.NextDouble() }); // Call MacroStabilityInwardsCalculationOutputEntity entity = output.Create(); // Assert Assert.IsNotNull(entity); MacroStabilityInwardsCalculationOutputEntityTestHelper.AssertOutputPropertyValues(output, entity); }
private static void SetSlipPlaneParametersToEntity(MacroStabilityInwardsCalculationOutputEntity entity, MacroStabilityInwardsSlipPlaneUpliftVan slipPlane) { entity.SlipPlaneTangentLinesXml = new TangentLineCollectionXmlSerializer().ToXml(slipPlane.TangentLines); MacroStabilityInwardsGrid leftGrid = slipPlane.LeftGrid; entity.SlipPlaneLeftGridXLeft = leftGrid.XLeft.ToNaNAsNull(); entity.SlipPlaneLeftGridXRight = leftGrid.XRight.ToNaNAsNull(); entity.SlipPlaneLeftGridNrOfHorizontalPoints = leftGrid.NumberOfHorizontalPoints; entity.SlipPlaneLeftGridZTop = leftGrid.ZTop.ToNaNAsNull(); entity.SlipPlaneLeftGridZBottom = leftGrid.ZBottom.ToNaNAsNull(); entity.SlipPlaneLeftGridNrOfVerticalPoints = leftGrid.NumberOfVerticalPoints; MacroStabilityInwardsGrid rightGrid = slipPlane.RightGrid; entity.SlipPlaneRightGridXLeft = rightGrid.XLeft.ToNaNAsNull(); entity.SlipPlaneRightGridXRight = rightGrid.XRight.ToNaNAsNull(); entity.SlipPlaneRightGridNrOfHorizontalPoints = rightGrid.NumberOfHorizontalPoints; entity.SlipPlaneRightGridZTop = rightGrid.ZTop.ToNaNAsNull(); entity.SlipPlaneRightGridZBottom = rightGrid.ZBottom.ToNaNAsNull(); entity.SlipPlaneRightGridNrOfVerticalPoints = rightGrid.NumberOfVerticalPoints; }
private static MacroStabilityInwardsSlipPlaneUpliftVan ReadSlipPlane(MacroStabilityInwardsCalculationOutputEntity entity) { var leftGrid = new MacroStabilityInwardsGrid(entity.SlipPlaneLeftGridXLeft.ToNullAsNaN(), entity.SlipPlaneLeftGridXRight.ToNullAsNaN(), entity.SlipPlaneLeftGridZTop.ToNullAsNaN(), entity.SlipPlaneLeftGridZBottom.ToNullAsNaN()) { NumberOfHorizontalPoints = entity.SlipPlaneLeftGridNrOfHorizontalPoints, NumberOfVerticalPoints = entity.SlipPlaneLeftGridNrOfVerticalPoints }; var rightGrid = new MacroStabilityInwardsGrid(entity.SlipPlaneRightGridXLeft.ToNullAsNaN(), entity.SlipPlaneRightGridXRight.ToNullAsNaN(), entity.SlipPlaneRightGridZTop.ToNullAsNaN(), entity.SlipPlaneRightGridZBottom.ToNullAsNaN() ) { NumberOfHorizontalPoints = entity.SlipPlaneRightGridNrOfHorizontalPoints, NumberOfVerticalPoints = entity.SlipPlaneRightGridNrOfVerticalPoints }; RoundedDouble[] tangentLines = new TangentLineCollectionXmlSerializer().FromXml(entity.SlipPlaneTangentLinesXml); return(new MacroStabilityInwardsSlipPlaneUpliftVan(leftGrid, rightGrid, tangentLines)); }