Example #1
0
        public void Constructor_ValidParameters_ExpectedValues()
        {
            // Setup
            var random = new Random(21);
            UpliftVanSlidingCircleResult rightCircle = UpliftVanSlidingCircleResultTestFactory.Create();
            UpliftVanSlidingCircleResult leftCircle  = UpliftVanSlidingCircleResultTestFactory.Create();
            var slices = new[]
            {
                new UpliftVanSliceResult(new Point2D(0, 0), new Point2D(0, 0), new Point2D(0, 0), new Point2D(0, 0),
                                         new UpliftVanSliceResult.ConstructionProperties())
            };

            double nonIteratedHorizontalForce = random.NextDouble();
            double iteratedHorizontalForce    = random.NextDouble();

            // Call
            var curve = new UpliftVanSlidingCurveResult(leftCircle, rightCircle, slices, nonIteratedHorizontalForce, iteratedHorizontalForce);

            // Assert
            Assert.AreSame(leftCircle, curve.LeftCircle);
            Assert.AreSame(rightCircle, curve.RightCircle);
            Assert.AreEqual(nonIteratedHorizontalForce, curve.NonIteratedHorizontalForce);
            Assert.AreEqual(iteratedHorizontalForce, curve.IteratedHorizontalForce);
            Assert.AreSame(slices, curve.Slices);
        }
 private static void AssertCircle(UpliftVanSlidingCircleResult circleResult, MacroStabilityInwardsSlidingCircle circleOutput)
 {
     Assert.AreEqual(circleResult.Center, circleOutput.Center);
     Assert.AreEqual(circleResult.IsActive, circleOutput.IsActive);
     Assert.AreEqual(circleResult.Radius, circleOutput.Radius);
     Assert.AreEqual(circleResult.DrivingMoment, circleOutput.DrivingMoment);
     Assert.AreEqual(circleResult.ResistingMoment, circleOutput.ResistingMoment);
     Assert.AreEqual(circleResult.IteratedForce, circleOutput.IteratedForce);
     Assert.AreEqual(circleResult.NonIteratedForce, circleOutput.NonIteratedForce);
 }
Example #3
0
 /// <summary>
 /// Asserts whether <paramref name="actual"/> is equal to <paramref name="expected"/>.
 /// </summary>
 /// <param name="expected">The expected <see cref="UpliftVanSlidingCircleResult"/>.</param>
 /// <param name="actual">The actual <see cref="UpliftVanSlidingCircleResult"/>.</param>
 /// <exception cref="AssertionException">Thrown when <paramref name="actual"/>
 /// is not equal to <paramref name="expected"/>.</exception>
 private static void AssertUpliftVanSlidingCircleResult(UpliftVanSlidingCircleResult expected, UpliftVanSlidingCircleResult actual)
 {
     Assert.AreEqual(expected.Center, actual.Center);
     Assert.AreEqual(expected.Radius, actual.Radius);
     Assert.AreEqual(expected.IsActive, actual.IsActive);
     Assert.AreEqual(expected.NonIteratedForce, actual.NonIteratedForce);
     Assert.AreEqual(expected.IteratedForce, actual.IteratedForce);
     Assert.AreEqual(expected.DrivingMoment, actual.DrivingMoment);
     Assert.AreEqual(expected.ResistingMoment, actual.ResistingMoment);
 }
Example #4
0
 private static MacroStabilityInwardsSlidingCircle ConvertCircle(UpliftVanSlidingCircleResult circle)
 {
     return(new MacroStabilityInwardsSlidingCircle(circle.Center,
                                                   circle.Radius,
                                                   circle.IsActive,
                                                   circle.NonIteratedForce,
                                                   circle.IteratedForce,
                                                   circle.DrivingMoment,
                                                   circle.ResistingMoment));
 }
Example #5
0
 private static void AssertCircle(UpliftVanSlidingCircleResult circle, double x, double z, double iteratedForce,
                                  double nonIteratedForce, double radius, double drivingMoment, double resistingMoment)
 {
     Assert.AreEqual(x, circle.Center.X);
     Assert.AreEqual(z, circle.Center.Y);
     Assert.AreEqual(iteratedForce, circle.IteratedForce);
     Assert.AreEqual(nonIteratedForce, circle.NonIteratedForce);
     Assert.AreEqual(radius, circle.Radius);
     Assert.AreEqual(drivingMoment, circle.DrivingMoment);
     Assert.AreEqual(resistingMoment, circle.ResistingMoment);
 }
Example #6
0
        public void Constructor_SlicesNull_ThrowsArgumentNullException()
        {
            // Setup
            UpliftVanSlidingCircleResult circle = UpliftVanSlidingCircleResultTestFactory.Create();

            // Call
            TestDelegate call = () => new UpliftVanSlidingCurveResult(circle, circle, null, 0, 0);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(call);

            Assert.AreEqual("slices", exception.ParamName);
        }
Example #7
0
        public void Constructor_RightCircleNull_ThrowsArgumentNullException()
        {
            // Setup
            UpliftVanSlidingCircleResult leftCircle = UpliftVanSlidingCircleResultTestFactory.Create();

            // Call
            TestDelegate call = () => new UpliftVanSlidingCurveResult(leftCircle, null, Enumerable.Empty <UpliftVanSliceResult>(), 0, 0);

            // Assert
            var exception = Assert.Throws <ArgumentNullException>(call);

            Assert.AreEqual("rightCircle", exception.ParamName);
        }
Example #8
0
        /// <summary>
        /// Creates a <see cref="UpliftVanSlidingCurveResult"/> based on the information
        /// given in the <paramref name="slidingCurve"/>.
        /// </summary>
        /// <param name="slidingCurve">The output to create the result for.</param>
        /// <returns>A new <see cref="UpliftVanSlidingCurveResult"/> with information
        /// taken from the <paramref name="slidingCurve"/>.</returns>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="slidingCurve"/>
        /// is <c>null</c>.</exception>
        public static UpliftVanSlidingCurveResult Create(DualSlidingCircleMinimumSafetyCurve slidingCurve)
        {
            if (slidingCurve == null)
            {
                throw new ArgumentNullException(nameof(slidingCurve));
            }

            bool leftCircleIsActive = slidingCurve.ActiveCircleCenter.X <= slidingCurve.PassiveCircleCenter.X;
            UpliftVanSlidingCircleResult leftCircle  = leftCircleIsActive ? CreateActiveCircle(slidingCurve) : CreatePassiveCircle(slidingCurve);
            UpliftVanSlidingCircleResult rightCircle = leftCircleIsActive ? CreatePassiveCircle(slidingCurve) : CreateActiveCircle(slidingCurve);

            return(new UpliftVanSlidingCurveResult(leftCircle, rightCircle, CreateSlices(slidingCurve.Slices),
                                                   slidingCurve.NonIteratedHorizontalForce, slidingCurve.IteratedHorizontalForce));
        }
Example #9
0
        public void Constructor_ValidParameters_ExpectedValues()
        {
            // Setup
            var    random           = new Random(11);
            var    center           = new Point2D(random.NextDouble(), random.NextDouble());
            double radius           = random.NextDouble();
            bool   isActive         = random.NextBoolean();
            double nonIteratedForce = random.NextDouble();
            double iteratedForce    = random.NextDouble();
            double drivingMoment    = random.NextDouble();
            double resistingMoment  = random.NextDouble();

            // Call
            var circle = new UpliftVanSlidingCircleResult(center, radius, isActive, nonIteratedForce, iteratedForce, drivingMoment, resistingMoment);

            // Assert
            Assert.AreSame(center, circle.Center);
            Assert.AreEqual(radius, circle.Radius);
            Assert.AreEqual(isActive, circle.IsActive);
            Assert.AreEqual(nonIteratedForce, circle.NonIteratedForce);
            Assert.AreEqual(iteratedForce, circle.IteratedForce);
            Assert.AreEqual(drivingMoment, circle.DrivingMoment);
            Assert.AreEqual(resistingMoment, circle.ResistingMoment);
        }
Example #10
0
 private static void AssertPassiveCircle(UpliftVanSlidingCircleResult circle, double x, double z, double iteratedForce,
                                         double nonIteratedForce, double radius, double drivingMoment, double resistingMoment)
 {
     Assert.IsFalse(circle.IsActive);
     AssertCircle(circle, x, z, iteratedForce, nonIteratedForce, radius, drivingMoment, resistingMoment);
 }