public void Calculate_ReturnsTheCorrectNumberOfAngles_ForMaxAngleInRadians(
            double fromAngleInDegrees,
            double toAngleInDegrees,
            int steps,
            Constants.TurnDirection turnDirection,
            double maxAngleInRadians,
            double[] expectedAnglesInDegrees)
        {
            // Arrange
            IEnumerable <double> expectedAngles = ConvertToAngles(expectedAnglesInDegrees);

            AngelInterpolationCalculator sut = CreateSut();

            sut.FromAngleInRadians = Angle.FromDegrees(fromAngleInDegrees).Radians;
            sut.ToAngleInRadians   = Angle.FromDegrees(toAngleInDegrees).Radians;
            sut.Steps             = steps;
            sut.TurnDirection     = turnDirection;
            sut.MaxAngleInRadians = maxAngleInRadians;

            // Act
            sut.Calculate();

            // Assert
            AssertAngles(expectedAngles,
                         sut.AnglesInRadians);
        }
        public void Calculate_ReturnsTheCorrectNumberOfAngles_ForGivenSteps(
            double fromAngleInDegrees,
            double toAngleInDegrees,
            int steps,
            Constants.TurnDirection turnDirection,
            double[] expectedAnglesInDegrees)
        {
            Console.WriteLine("fromAngleInDegrees: {0} toAngleInDegrees: {1} " +
                              "steps: {2} turnDirection: {3} expectedAnglesInDegrees: {4}",
                              fromAngleInDegrees,
                              toAngleInDegrees,
                              steps,
                              turnDirection,
                              expectedAnglesInDegrees);

            // Arrange
            IEnumerable <double> expectedAngles = ConvertToAngles(expectedAnglesInDegrees);

            AngelInterpolationCalculator sut = CreateSut();

            sut.FromAngleInRadians = Angle.FromDegrees(fromAngleInDegrees).Radians;
            sut.ToAngleInRadians   = Angle.FromDegrees(toAngleInDegrees).Radians;
            sut.Steps         = steps;
            sut.TurnDirection = turnDirection;

            // Act
            sut.Calculate();

            // Assert
            AssertAngles(expectedAngles,
                         sut.AnglesInRadians);
        }
        public void TurnDirection_ReturnsDefault_WhenCalled()
        {
            // Arrange
            AngelInterpolationCalculator sut = CreateSut();

            // Act
            // Assert
            Assert.AreEqual(Constants.TurnDirection.Clockwise,
                            sut.TurnDirection);
        }
        public void ToAngle_ReturnsDefault_WhenCalled()
        {
            // Arrange
            AngelInterpolationCalculator sut = CreateSut();

            // Act
            // Assert
            Assert.AreEqual(0.0,
                            sut.ToAngleInRadians);
        }
        public void MaxAngleInRadians_ReturnsDefault_WhenCalled()
        {
            // Arrange
            AngelInterpolationCalculator sut = CreateSut();

            // Act
            // Assert
            Assert.AreEqual(BaseAngle.RadiansFor360Degrees,
                            sut.MaxAngleInRadians);
        }
        public void Setup()
        {
            var angleIntervallCalculator                = new AngleIntervallCalculator();
            var angelInterpolationCalculator            = new AngelInterpolationCalculator(angleIntervallCalculator);
            var sphericalCoordinatesIntervallCalculator =
                new SphericalCoordinatesIntervallCalculator(angelInterpolationCalculator);
            var radiusPhiThetaToSphericalCoordinatesConverter = new RadiusPhiThetaToSphericalCoordinatesConverter();

            m_Sut = new SphericalArcCalculator(sphericalCoordinatesIntervallCalculator,
                                               radiusPhiThetaToSphericalCoordinatesConverter);
        }
        public void Calculate_ThrowsException_ForInvalidSteps(
            int steps)
        {
            // Arrange
            AngelInterpolationCalculator sut = CreateSut();

            sut.Steps = steps;

            // Act
            // Assert
            Assert.Throws <ArgumentException>(() => sut.Calculate());
        }
        public void Calculate_ReturnsTheCorrectNumberOfAngles_ForGivenSteps()
        {
            // Arrange
            AngelInterpolationCalculator sut = CreateSut();

            sut.FromAngleInRadians = Angle.ForZeroDegrees.Radians;
            sut.ToAngleInRadians   = Angle.For90Degrees.Radians;
            sut.Steps = 10;

            // Act
            sut.Calculate();

            // Assert
            IEnumerable <double> actual = sut.AnglesInRadians;

            Assert.AreEqual(10,
                            actual.Count());
        }