From 02a4dfbb2f1cb37cda86789b94b38facc981fe48 Mon Sep 17 00:00:00 2001
From: DannyAbdi <dannyabdi13@gmail.com>
Date: Fri, 22 Mar 2024 03:32:14 +0000
Subject: [PATCH] Created test class for dfs class

---
 testDFS.py | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 80 insertions(+)
 create mode 100644 testDFS.py

diff --git a/testDFS.py b/testDFS.py
new file mode 100644
index 0000000..84730cf
--- /dev/null
+++ b/testDFS.py
@@ -0,0 +1,80 @@
+import unittest
+from dfs import DFS
+
+
+class TestDFS(unittest.TestCase):
+    def test_init(self):
+        dfs = DFS()
+        self.assertEqual(dfs.visited, set())
+        self.assertEqual(dfs.path, [])
+
+    def test_get_neighbours(self):
+        maze = [
+            [0, 0, 0, 1],
+            [1, 1, 0, 0],
+            [0, 1, 0, 1],
+            [0, 0, 0, 0]
+        ]
+        dfs = DFS()
+
+        self.assertEqual(dfs.get_neighbours(maze, 0, 0), [(0, 1), (1, 0)])
+        self.assertEqual(dfs.get_neighbours(maze, 1, 1), [(1, 2), (2, 1)])
+        self.assertEqual(dfs.get_neighbours(maze, 2, 2), [(2, 1), (3, 2)])
+
+    def test_dfs(self):
+        maze = [
+            [0, 0, 0, 1],
+            [1, 1, 0, 0],
+            [0, 1, 0, 1],
+            [0, 0, 0, 0]
+        ]
+        dfs = DFS()
+
+        start = (0, 0)
+        goal = (3, 3)
+        self.assertTrue(dfs.dfs(maze, start, goal))
+
+        start = (0, 0)
+        goal = (2, 2)
+        self.assertFalse(dfs.dfs(maze, start, goal))
+
+    def test__dfs(self):
+        maze = [
+            [0, 0, 0, 1],
+            [1, 1, 0, 0],
+            [0, 1, 0, 1],
+            [0, 0, 0, 0]
+        ]
+        dfs = DFS()
+
+        start = (0, 0)
+        goal = (3, 3)
+        self.assertTrue(dfs._dfs(maze, start, goal))
+
+        start = (0, 0)
+        goal = (2, 2)
+        self.assertFalse(dfs._dfs(maze, start, goal))
+
+    def test_get_path(self):
+        maze = [
+            [0, 0, 0, 1],
+            [1, 1, 0, 0],
+            [0, 1, 0, 1],
+            [0, 0, 0, 0]
+        ]
+        dfs = DFS()
+
+        start = (0, 0)
+        goal = (3, 3)
+        dfs._dfs(maze, start, goal)
+        expected_path = [(0, 0), (0, 1), (1, 1), (2, 1), (3, 1), (3, 2), (3, 3)]
+        self.assertEqual(dfs.get_path(), expected_path)
+
+        start = (0, 0)
+        goal = (2, 2)  
+        dfs._dfs(maze, start, goal)
+        self.assertEqual(dfs.get_path(), [])
+
+
+if __name__ == "__main__":
+    unittest.main()
-- 
GitLab