diff options
Diffstat (limited to 'src/Q9/MovingRobotTest.java')
| -rw-r--r-- | src/Q9/MovingRobotTest.java | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/src/Q9/MovingRobotTest.java b/src/Q9/MovingRobotTest.java new file mode 100644 index 0000000..68feddd --- /dev/null +++ b/src/Q9/MovingRobotTest.java @@ -0,0 +1,136 @@ +package ca.mokhan.test; + +import Q9.*; +import java.io.*; +import java.text.*; +import java.util.*; +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +public class MovingRobotTest extends TestCase { + private MovingRobot subject; + + public MovingRobotTest(String testName) { + super(testName); + this.subject = new MovingRobot(0, 0); + } + + public static Test suite() { + return new TestSuite(MovingRobotTest.class); + } + + public void test_generateNextMove() { + for (int i = 0; i < 100; i++) { + int move = subject.generateNextMove(); + assertTrue(move > 0); + assertTrue(move < 9); + } + } + + public void test_validateNextMove_whenAtZeroZero() { + this.subject = new MovingRobot(0, 0); + assertFalse(subject.validateNextMove(Robot.UP)); + assertFalse(subject.validateNextMove(Robot.RIGHT_UP_CORNER)); + assertTrue(subject.validateNextMove(Robot.RIGHT)); + assertTrue(subject.validateNextMove(Robot.RIGHT_DOWN_CORNER)); + assertTrue(subject.validateNextMove(Robot.DOWN)); + assertFalse(subject.validateNextMove(Robot.LEFT_DOWN_CORNER)); + assertFalse(subject.validateNextMove(Robot.LEFT)); + assertFalse(subject.validateNextMove(Robot.LEFT_UP_CORNER)); + } + + public void test_validateNextMove_whenAtZeroOne() { + this.subject = new MovingRobot(0, 1); + + assertTrue(subject.validateNextMove(Robot.UP)); + assertTrue(subject.validateNextMove(Robot.RIGHT_UP_CORNER)); + assertTrue(subject.validateNextMove(Robot.RIGHT)); + assertTrue(subject.validateNextMove(Robot.RIGHT_DOWN_CORNER)); + assertTrue(subject.validateNextMove(Robot.DOWN)); + assertFalse(subject.validateNextMove(Robot.LEFT_DOWN_CORNER)); + assertFalse(subject.validateNextMove(Robot.LEFT)); + assertFalse(subject.validateNextMove(Robot.LEFT_UP_CORNER)); + } + + public void test_validateNextMove_whenAtNineZero() { + this.subject = new MovingRobot(9, 0); + + assertFalse(subject.validateNextMove(Robot.UP)); + assertFalse(subject.validateNextMove(Robot.RIGHT_UP_CORNER)); + assertFalse(subject.validateNextMove(Robot.RIGHT)); + assertFalse(subject.validateNextMove(Robot.RIGHT_DOWN_CORNER)); + assertTrue(subject.validateNextMove(Robot.DOWN)); + assertTrue(subject.validateNextMove(Robot.LEFT_DOWN_CORNER)); + assertTrue(subject.validateNextMove(Robot.LEFT)); + assertFalse(subject.validateNextMove(Robot.LEFT_UP_CORNER)); + } + + public void test_validateNextMove_whenAtNineNine() { + this.subject = new MovingRobot(9, 9); + assertTrue(subject.validateNextMove(Robot.UP)); + assertFalse(subject.validateNextMove(Robot.RIGHT_UP_CORNER)); + assertFalse(subject.validateNextMove(Robot.RIGHT)); + assertFalse(subject.validateNextMove(Robot.RIGHT_DOWN_CORNER)); + assertFalse(subject.validateNextMove(Robot.DOWN)); + assertFalse(subject.validateNextMove(Robot.LEFT_DOWN_CORNER)); + assertTrue(subject.validateNextMove(Robot.LEFT)); + assertTrue(subject.validateNextMove(Robot.LEFT_UP_CORNER)); + } + + public void test_validateNextMove_whenAtZeroNine() { + this.subject = new MovingRobot(0, 9); + assertTrue(subject.validateNextMove(Robot.UP)); + assertTrue(subject.validateNextMove(Robot.RIGHT_UP_CORNER)); + assertTrue(subject.validateNextMove(Robot.RIGHT)); + assertFalse(subject.validateNextMove(Robot.RIGHT_DOWN_CORNER)); + assertFalse(subject.validateNextMove(Robot.DOWN)); + assertFalse(subject.validateNextMove(Robot.LEFT_DOWN_CORNER)); + assertFalse(subject.validateNextMove(Robot.LEFT)); + assertFalse(subject.validateNextMove(Robot.LEFT_UP_CORNER)); + } + + public void test_move_whenAtZeroZero() { + subject = new MovingRobot(0, 0); + + for (int i = 0; i < 9; i++) { + subject.move(Robot.RIGHT); + assertEquals(i + 1, subject.getX()); + assertEquals(0, subject.getY()); + } + + for (int i = 0; i < 9; i++) { + subject.move(Robot.DOWN); + assertEquals(9, subject.getX()); + assertEquals(i + 1, subject.getY()); + } + + for (int i = 9; i > 0; i--) { + subject.move(Robot.LEFT); + assertEquals(i - 1, subject.getX()); + assertEquals(9, subject.getY()); + } + + for (int i = 9; i > 0; i--) { + subject.move(Robot.UP); + assertEquals(0, subject.getX()); + assertEquals(i - 1, subject.getY()); + } + + subject.move(Robot.UP); + assertEquals(0, subject.getX()); + assertEquals(0, subject.getY()); + + subject.move(Robot.LEFT_UP_CORNER); + assertEquals(0, subject.getX()); + assertEquals(0, subject.getY()); + + subject.move(Robot.LEFT); + assertEquals(0, subject.getX()); + assertEquals(0, subject.getY()); + + subject.move(Robot.LEFT_DOWN_CORNER); + assertEquals(0, subject.getX()); + assertEquals(0, subject.getY()); + } +} |
