diff --git a/cs621/proj4/KnightsTourBoard.java b/cs621/proj4/KnightsTourBoard.java index 5f6e18b..a01697e 100644 --- a/cs621/proj4/KnightsTourBoard.java +++ b/cs621/proj4/KnightsTourBoard.java @@ -8,9 +8,6 @@ public class KnightsTourBoard KnightsTourBoard(int width, int height) { m_board = new int[width][height]; - for (int x = 0; x < m_width; x++) - for (int y = 0; y < m_height; y++) - m_board[x][y] = 0; } public int getWidth() { return m_width; } @@ -19,6 +16,9 @@ public class KnightsTourBoard public boolean tour(int startx, int starty) { + for (int x = 0; x < m_width; x++) + for (int y = 0; y < m_height; y++) + m_board[x][y] = 0; m_board[startx][starty] = 1; return tourFrom(2, startx, starty); } diff --git a/cs621/proj4/KnightsTourBoardTest.java b/cs621/proj4/KnightsTourBoardTest.java new file mode 100644 index 0000000..87086be --- /dev/null +++ b/cs621/proj4/KnightsTourBoardTest.java @@ -0,0 +1,33 @@ + +import junit.framework.TestCase; + +public class KnightsTourBoardTest extends TestCase +{ + public void testKnightsTourBoardImpossible1() + { + KnightsTourBoard ktb = new KnightsTourBoard(3, 3); + + assertFalse(ktb.tour(0, 0)); + assertFalse(ktb.tour(1, 1)); + assertFalse(ktb.tour(0, 1)); + } + + public void testKnightsTourBoardImpossible2() + { + KnightsTourBoard ktb = new KnightsTourBoard(3, 4); + + assertFalse(ktb.tour(0, 0)); + assertFalse(ktb.tour(1, 1)); + assertFalse(ktb.tour(0, 1)); + assertFalse(ktb.tour(1, 2)); + assertFalse(ktb.tour(1, 3)); + assertFalse(ktb.tour(2, 3)); + } + + public void testKnightsTourBoardPossible1() + { + KnightsTourBoard ktb = new KnightsTourBoard(5, 5); + + assertTrue(ktb.tour(2, 2)); + } +} diff --git a/cs621/proj4/Makefile b/cs621/proj4/Makefile index a9153ee..98cc97f 100644 --- a/cs621/proj4/Makefile +++ b/cs621/proj4/Makefile @@ -1,4 +1,6 @@ +export CLASSPATH := $(CLASSPATH):/usr/share/junit/lib/junit.jar + all: $(patsubst %.java,%.class,$(wildcard *.java)) %.class: %.java @@ -9,6 +11,10 @@ javadoc: -mkdir doc javadoc -d doc *.java +.PHONY: test +test: all + java junit.swingui.TestRunner KnightsTourBoardTest + clean: -rm -f *.class -rm -rf doc