Scenario: A knight can move forward, backward, left or right two squares and must then move one square in either perpendicular direction
GIVEN a <color> knight in <from>
WHEN the knight is moved to <direction> two times
AND then moved <perpendicular> one square
THEN the knight is in <to>
Example:
| color | from | direction | perpendicular | to |
| WHITE | D5 | FORWARD | SHIFT_LEFT | C7 |
| WHITE | D5 | FORWARD | SHIFT_RIGHT | E7 |
| WHITE | D5 | SHIFT_LEFT | FORWARD | B6 |
| WHITE | D5 | SHIFT_RIGHT | FORWARD | F6 |
| WHITE | D5 | SHIFT_LEFT | BACKWARD | B4 |
| WHITE | D5 | SHIFT_RIGHT | BACKWARD | F4 |
| WHITE | D5 | BACKWARD | SHIFT_LEFT | C3 |
| WHITE | D5 | BACKWARD | SHIFT_RIGHT | E3 |
| BLACK | E4 | BACKWARD | SHIFT_LEFT | F2 |
| BLACK | E4 | BACKWARD | SHIFT_RIGHT | D2 |
| BLACK | E4 | SHIFT_LEFT | FORWARD | G3 |
| BLACK | E4 | SHIFT_RIGHT | FORWARD | C3 |
| BLACK | E4 | SHIFT_LEFT | BACKWARD | G5 |
| BLACK | E4 | SHIFT_RIGHT | BACKWARD | C5 |
| BLACK | E4 | BACKWARD | SHIFT_LEFT | F6 |
| BLACK | E4 | BACKWARD | SHIFT_RIGHT | D6 |
Scenario: A knight can not take the place of any of its allies on the board that is within its bounds of movement
GIVEN a <color> knight in <from>
AND an allied piece in <to>
WHEN the knight is moved to <to>
THEN the move is refused
Example:
| color | from | to |
| WHITE | D5 | C7 |
| WHITE | D5 | E7 |
| WHITE | D5 | B6 |
| WHITE | D5 | F6 |
| WHITE | D5 | B4 |
| WHITE | D5 | F4 |
| WHITE | D5 | C3 |
| WHITE | D5 | E3 |
| BLACK | E4 | D6 |
| BLACK | E4 | F6 |
| BLACK | E4 | C5 |
| BLACK | E4 | G5 |
| BLACK | E4 | C3 |
| BLACK | E4 | G3 |
| BLACK | E4 | D2 |
| BLACK | E4 | F2 |
Scenario: A knight can take any opposing piece on the board that is within its bounds of movement
GIVEN a <color> knight in <from>
AND an opposing piece in <to>
WHEN the knight is moved to <to>
THEN the knight captures the opposing piece
Example:
| color | from | to |
| WHITE | D5 | C7 |
| WHITE | D5 | E7 |
| WHITE | D5 | B6 |
| WHITE | D5 | F6 |
| WHITE | D5 | B4 |
| WHITE | D5 | F4 |
| WHITE | D5 | C3 |
| WHITE | D5 | E3 |
| BLACK | E4 | D6 |
| BLACK | E4 | F6 |
| BLACK | E4 | C5 |
| BLACK | E4 | G5 |
| BLACK | E4 | C3 |
| BLACK | E4 | G3 |
| BLACK | E4 | D2 |
| BLACK | E4 | F2 |
Scenario: A knight can skip over any other pieces to reach its destination position
GIVEN a <color> knight in <from>
AND the square <obstructed> is not vacant
WHEN the knight is moved to <to>
THEN the knight is in <to>
Example:
| color | from | obstructed | to |
| WHITE | D5 | D6 | C7 |
| WHITE | D5 | D7 | E7 |
| WHITE | D5 | C5 | B6 |
| WHITE | D5 | F5 | F6 |
| WHITE | D5 | B5 | B4 |
| WHITE | D5 | E5 | F4 |
| WHITE | D5 | D4 | C3 |
| WHITE | D5 | D3 | E3 |
| BLACK | E4 | E5 | D6 |
| BLACK | E4 | E6 | F6 |
| BLACK | E4 | D4 | C5 |
| BLACK | E4 | F4 | G5 |
| BLACK | E4 | D4 | C3 |
| BLACK | E4 | G4 | G3 |
| BLACK | E4 | E3 | D2 |
| BLACK | E4 | E2 | F2 |
Feature: Knight
Scenario: A knight can move forward, backward, left or right two squares and must then move one square in either perpendicular direction
Scenario: A knight can not take the place of any of its allies on the board that is within its bounds of movement
Scenario: A knight can take any opposing piece on the board that is within its bounds of movement
Scenario: A knight can skip over any other pieces to reach its destination position