| canMoveDown() |   | 50% |   | 33% | 5 | 7 | 3 | 9 | 0 | 1 |
| moveUp() |   | 42% |   | 25% | 2 | 3 | 3 | 6 | 0 | 1 |
| clone() |   | 70% | | n/a | 0 | 1 | 2 | 6 | 0 | 1 |
| canMove(Direction) |   | 80% |   | 80% | 1 | 5 | 0 | 5 | 0 | 1 |
| canMoveRight() |   | 94% |   | 75% | 2 | 5 | 1 | 5 | 0 | 1 |
| checkPositions(Position[]) |  | 100% |  | 100% | 0 | 5 | 0 | 8 | 0 | 1 |
| PuzzleState() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| move(Direction, int[]) |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| toString() |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| getLegalMoves() |  | 100% |  | 100% | 0 | 3 | 0 | 5 | 0 | 1 |
| isEmpty(Position) |  | 100% |  | 100% | 0 | 3 | 0 | 4 | 0 | 1 |
| equals(Object) |  | 100% |  | 100% | 0 | 4 | 0 | 3 | 0 | 1 |
| deepClone(Position[]) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| canMoveUp() |  | 100% |   | 75% | 1 | 3 | 0 | 1 | 0 | 1 |
| canMoveLeft() |  | 100% |   | 75% | 1 | 3 | 0 | 1 | 0 | 1 |
| moveRight() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| moveDown() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| isOnBoard(Position) |  | 100% |   | 62% | 3 | 5 | 0 | 2 | 0 | 1 |
| move(Direction) |  | 100% |   | 80% | 1 | 5 | 0 | 6 | 0 | 1 |
| moveLeft() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| PuzzleState(Position[]) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| haveEqualPositions(int, int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getPosition(int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isGoal() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| hashCode() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |