예제 #1
0
        public void Direction_IsPossibleDirectionShouldAllowEveryMonodirection()
        {
            //Arrange
            DirectionEnum possibleMoves = DirectionEnum.Origin;
            DirectionEnum down          = DirectionEnum.Down,
                          up            = DirectionEnum.Up,
                          right         = DirectionEnum.Right,
                          left          = DirectionEnum.Left;
            //Act
            var testDown  = down.IsPossibleDirection(possibleMoves);
            var testUp    = up.IsPossibleDirection(possibleMoves);
            var testRight = right.IsPossibleDirection(possibleMoves);
            var testLeft  = left.IsPossibleDirection(possibleMoves);

            //Assert
            Assert.True(testDown & testUp & testRight & testLeft);
        }
예제 #2
0
        public void Direction_PossibleDirectionsShouldNotAllowDiagonalMoveWhenOneDirectionIsBlocked()
        {
            //Arrange
            DirectionEnum possibleMoves = (DirectionEnum.Down | DirectionEnum.Left | DirectionEnum.Right); //obstacle on up direction.
            DirectionEnum down_left     = (DirectionEnum.Down | DirectionEnum.Left),
                          up_right      = (DirectionEnum.Up | DirectionEnum.Right),
                          down_right    = (DirectionEnum.Down | DirectionEnum.Right),
                          up_left       = (DirectionEnum.Up | DirectionEnum.Left);

            //Act
            var testDownLeft  = down_left.IsPossibleDirection(possibleMoves);
            var testUpRight   = up_right.IsPossibleDirection(possibleMoves);
            var testDownRight = down_right.IsPossibleDirection(possibleMoves);
            var testUpLeft    = up_left.IsPossibleDirection(possibleMoves);

            //Assert
            Assert.True(testDownLeft & testDownRight);
            Assert.False(testUpRight | testUpLeft);
        }