public void Attacking_returns_pawn_paths_for_black()
        {
            var loc = "D4".ToBoardLocation();

            var finder = new FindAttackPaths();

            var attackPaths = finder.Attacking(loc, Colours.Black);
            var paths       = attackPaths.Pawns;

            paths.Any().ShouldBeTrue();

            PathsShouldContainsMovesTo(paths, new[]
            {
                "C3", "E3"
            });
        }
        public void Attacking_returns_knight_paths()
        {
            var loc = "D4".ToBoardLocation();

            var finder = new FindAttackPaths();

            var attackPaths = finder.Attacking(loc);
            var paths       = attackPaths.Knight;

            paths.Any().ShouldBeTrue();


            PathsShouldContainsMovesTo(paths, new[]
            {
                "E6", "F5", "F3", "E2", "C2", "B3", "B5", "C6"
            });
        }
        public void Attacking_returns_straight_paths()
        {
            var loc = "D4".ToBoardLocation();

            var finder      = new FindAttackPaths();
            var attackPaths = finder.Attacking(loc);
            var paths       = attackPaths.Straight;

            paths.Any().ShouldBeTrue();

            PathsShouldContainsMovesTo(paths, new[]
            {
                "D1", "D2", "D3",
                "D5", "D6", "D7", "D8",
                "E4", "F4", "G4", "H4",
                "A4", "B4", "C4"
            });
        }
        public void Attacking_returns_diagonal_paths()
        {
            var loc = "D4".ToBoardLocation();

            var finder = new FindAttackPaths();

            var attackPaths = finder.Attacking(loc);
            var paths       = attackPaths.Diagonal;

            paths.Any().ShouldBeTrue();

            PathsShouldContainsMovesTo(paths, new[]
            {
                "E5", "F6", "G7", "H8",
                "C3", "B2", "A1",
                "C5", "B6", "A7",
                "E3", "F2", "G1"
            });
        }