private static void AssertChangeIsCorrectlyApplied(
            eDirection startDirection,
            eDirectionChange deltaDirection,
            eDirection expectedDirection)
        {
            var resultantDirectionFromTurn    = startDirection.Turn(deltaDirection);
            var resultantDirectionFromApplyTo = deltaDirection.ApplyTo(startDirection);

            Assert.AreEqual(expectedDirection, resultantDirectionFromTurn);
            Assert.AreEqual(expectedDirection, resultantDirectionFromApplyTo);
        }
Exemple #2
0
        public static IEnumerable <eDirection> Enumerate(eDirection startingDirection = eDirection.North, eDirectionChange deltaDirection = eDirectionChange.Clockwise)
        {
            eDirection currentDirection = startingDirection;

            for (int i = 0; i < 4; i++)
            {
                yield return(currentDirection);

                currentDirection = currentDirection.Turn(deltaDirection);
            }

            // ReSharper disable once RedundantJumpStatement
            yield break;
        }
Exemple #3
0
 public static eDirection ApplyTo(this eDirectionChange change, eDirection originalDirection)
 {
     return(originalDirection.Turn(change));
 }