summaryrefslogtreecommitdiff
path: root/src/Q9/MovingRobotTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Q9/MovingRobotTest.java')
-rw-r--r--src/Q9/MovingRobotTest.java136
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());
+ }
+}