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 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());
        }