Exemplo n.º 1
0
        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()));
        }
Exemplo n.º 2
0
        public void GivenArrayOfMacroStabilityInwardsSlices_WhenConvertingRoundTrip_ThenEqualMacroStabilityInwardsSlices()
        {
            // Given
            var random   = new Random(31);
            var original = new[]
            {
                new MacroStabilityInwardsSlice(
                    new Point2D(double.NaN, double.NaN),
                    new Point2D(double.NaN, double.NaN),
                    new Point2D(double.NaN, double.NaN),
                    new Point2D(double.NaN, double.NaN),
                    new MacroStabilityInwardsSlice.ConstructionProperties()),
                new MacroStabilityInwardsSlice(
                    new Point2D(random.NextDouble(), random.NextDouble()),
                    new Point2D(random.NextDouble(), random.NextDouble()),
                    new Point2D(random.NextDouble(), random.NextDouble()),
                    new Point2D(random.NextDouble(), random.NextDouble()),
                    new MacroStabilityInwardsSlice.ConstructionProperties
                {
                    Cohesion               = random.NextDouble(),
                    FrictionAngle          = random.NextDouble(),
                    CriticalPressure       = random.NextDouble(),
                    OverConsolidationRatio = random.NextDouble(),
                    Pop = random.NextDouble(),
                    DegreeOfConsolidationPorePressureSoil = random.NextDouble(),
                    DegreeOfConsolidationPorePressureLoad = random.NextDouble(),
                    Dilatancy               = random.NextDouble(),
                    ExternalLoad            = random.NextDouble(),
                    HydrostaticPorePressure = random.NextDouble(),
                    LeftForce               = random.NextDouble(),
                    LeftForceAngle          = random.NextDouble(),
                    LeftForceY              = random.NextDouble(),
                    RightForce              = random.NextDouble(),
                    RightForceAngle         = random.NextDouble(),
                    RightForceY             = random.NextDouble(),
                    LoadStress              = random.NextDouble(),
                    NormalStress            = random.NextDouble(),
                    PorePressure            = random.NextDouble(),
                    HorizontalPorePressure  = random.NextDouble(),
                    VerticalPorePressure    = random.NextDouble(),
                    PiezometricPorePressure = random.NextDouble(),
                    EffectiveStress         = random.NextDouble(),
                    ExcessPorePressure      = random.NextDouble(),
                    ShearStress             = random.NextDouble(),
                    SoilStress              = random.NextDouble(),
                    TotalPorePressure       = random.NextDouble(),
                    TotalStress             = random.NextDouble(),
                    Weight = random.NextDouble()
                })
            };
            var serializer = new MacroStabilityInwardsSliceCollectionXmlSerializer();

            // When
            string xml = serializer.ToXml(original);

            MacroStabilityInwardsSlice[] roundtripResult = serializer.FromXml(xml);

            // Then
            TestHelper.AssertCollectionsAreEqual(original, roundtripResult, new MacroStabilityInwardsSliceComparer());
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        public void Constructor_ExpectedValues()
        {
            // Call
            var serializer = new MacroStabilityInwardsSliceCollectionXmlSerializer();

            // Assert
            Assert.IsInstanceOf <DataCollectionSerializer <MacroStabilityInwardsSlice,
                                                           MacroStabilityInwardsSliceCollectionXmlSerializer.SerializableMacroStabilityInwardsSlice> >(serializer);
            SerializerTestHelper.AssertSerializedData(typeof(MacroStabilityInwardsSliceCollectionXmlSerializer.SerializableMacroStabilityInwardsSlice));
        }