From a63fb8529ff56b27324457be27518d7830190b39 Mon Sep 17 00:00:00 2001
From: Curtis James Moore <cmoore44@myune.edu.au>
Date: Sun, 30 Jul 2023 16:54:21 +1000
Subject: [PATCH] Added tests to check if horizontal and vertical lines are
 appropriately drawn. Also added test to check if boxComplete correctly checks
 if a box is complete

---
 .DS_Store                                     | Bin 0 -> 6148 bytes
 .../dotsandboxes/DotsAndBoxesGridTest.java    |  64 +++++++++++++++++-
 2 files changed, 63 insertions(+), 1 deletion(-)
 create mode 100644 .DS_Store

diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..623a308bc6a57189af730efded58d174ec06a3e3
GIT binary patch
literal 6148
zcmZQzU|@7AO)+F(5MW?n;9!8zEL;p&0Z1N%F(jFwBHSSJKxX78C*|ZPL5+h-j#8r`
zFd71bHUvO<mzg1nA(J7`GY2LAIx;XY==}!+u<KbFk{C)EG8u9hQqWYc$E`A{ytn{b
zChSNm$jK}&F)+Bs$i&RT%Er#Y&cV$Q8=R3}9$b=GQd;bkSQHK7h2-bwB*EB;Nnx3(
z<?#X{&iQ#IiJ5t+MIa@?nJKABiA6EtnRzMs<xcsfc`3zUy-*1bP7cm^0g38rQzHW%
z1tUYFS{;RIOAy<{*sQjelS5Ql-#REhJ0~|UzYFX;21Z5*&A<z#VN^E*0|S!Z%YuvY
za`N-iA!Qx|4<b|;^cd0^iWm|ZQW$a=Qc=T*Q5G$X*zl+Y*@ztS?8s^v%F#^ziDoi4
zs%i#3h9rhWh7wd=44~MZ2aeqTV2^S#1TnZWI5M~}_%gUM=rQDCjb&sV{0zkmsSG6y
zC7`s!kj_v{(ErG~nHh>1iWrhnUBw9UIkGCS(?$szg#a|gbAZYK8d))F>}Uv#hQJUF
z0Z{p%0Ila7pmYO-21zk6GBAL<0E`R_EHE!Jg8BgvH6X1ZH6X1Z8l;th5yS$^gS9d+
zLbWo2yCDn=jNmQ_hz4tCU}OMmXJBLiYlm0Uj1cV%j8K~yp*<8vP>%*=K14eMBSbsQ
zd871b2#kgRGz6F-v;e67cV%F})&Ga68YM?VU^E1VWe6~`xCFa6fhtWL-UHROp!zfc
zDi5mtLDexMsGf%C11SN^GC>9uCBPhr97rpu+6Py~j0}*Pe6%3|3!zbZGz91$0syvl
BzqbGY

literal 0
HcmV?d00001

diff --git a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
index 1946bed..cb847ec 100644
--- a/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
+++ b/src/test/java/dotsandboxes/DotsAndBoxesGridTest.java
@@ -26,6 +26,68 @@ public class DotsAndBoxesGridTest {
         logger.info("Dummy test to show the test suite runs");
         assertTrue(true);
     }
+    
+    @Test
+    public void testBoxCompleteFalse() {
+        //Creating a box that should be incorrect and checking if it returns false
+        DotsAndBoxesGrid boxCompleteFalse = new DotsAndBoxesGrid(5, 5, 2);
+        boxCompleteFalse.drawHorizontal(0, 0, 0);
+        boxCompleteFalse.drawVertical(0, 0, 1);
+        boxCompleteFalse.drawHorizontal(0, 1, 0);
+        boxCompleteFalse.drawVertical(1, 1, 1);
+
+        assertFalse(boxCompleteFalse.boxComplete(0, 0));
+    }
+
+    @Test
+    public void testBoxCompleteTrue() {
+        //Creating a box that should be correct and checking if it returns true
+        DotsAndBoxesGrid boxCompleteTrue = new DotsAndBoxesGrid(5, 5, 2);
+        boxCompleteTrue.drawHorizontal(0, 0, 0);
+        boxCompleteTrue.drawVertical(0, 0, 1);
+        boxCompleteTrue.drawHorizontal(0, 1, 0);
+        boxCompleteTrue.drawVertical(1, 0, 1);
+
+        assertTrue(boxCompleteTrue.boxComplete(0, 0));
+    }
+
+    @Test
+    public void testDrawHorizontalDrawn() {
+        //Draws a horizontal line, then draws another horizontal line in the same
+        //place to check if an exception is appropriately thrown
+        DotsAndBoxesGrid horizontalDrawn = new DotsAndBoxesGrid(5, 5, 1);
+        horizontalDrawn.drawHorizontal(0, 0, 1);
+        assertThrows(RuntimeException.class, () -> {
+            horizontalDrawn.drawHorizontal(0, 0, 1);
+        });
+    }
 
-    // FIXME: You need to write tests for the two known bugs in the code.
+    @Test
+    public void testDrawHorizontalNotDrawn() {
+        //Draws a horizontal line to check if no exception is thrown
+        DotsAndBoxesGrid horizontalNotDrawn = new DotsAndBoxesGrid(5, 5, 1);
+        assertDoesNotThrow(() -> {
+            horizontalNotDrawn.drawHorizontal(0, 0, 1);
+        });
+    }
+
+    @Test
+    public void testDrawVerticalDrawn() {
+        //Draws a vertical line, then draws another vertical line in the same
+        //place to check if an exception is appropriately thrown
+        DotsAndBoxesGrid verticalDrawn = new DotsAndBoxesGrid(5, 5, 1);
+        verticalDrawn.drawVertical(0, 0, 1);
+        assertThrows(RuntimeException.class, () -> {
+            verticalDrawn.drawVertical(0, 0, 1);
+        });
+    }
+
+    @Test
+    public void testDrawVerticalNotDrawn() {
+        //Draws a vertical line to check if no exception is thrown
+        DotsAndBoxesGrid verticalNotDrawn = new DotsAndBoxesGrid(5, 5, 1);
+        assertDoesNotThrow(() -> {
+            verticalNotDrawn.drawVertical(0, 0, 1);
+        });    
+    }
 }
-- 
GitLab