diff --git a/maze1.mz b/maze1.mz
new file mode 100644
index 0000000000000000000000000000000000000000..b99fce060cd8fe713e836cd50005ebd1bcc15ac5
--- /dev/null
+++ b/maze1.mz
@@ -0,0 +1,3 @@
+#####
+#...#
+#####
\ No newline at end of file
diff --git a/maze2.mz b/maze2.mz
new file mode 100644
index 0000000000000000000000000000000000000000..b5815b589eead1848ece4cbce4117743264430cf
--- /dev/null
+++ b/maze2.mz
@@ -0,0 +1,3 @@
+#####
+#...##
+#####
\ No newline at end of file
diff --git a/test_maze_reader.py b/test_maze_reader.py
new file mode 100644
index 0000000000000000000000000000000000000000..88bd39bd6ecd61b20ec1c3cf1ef8abeb73532fdd
--- /dev/null
+++ b/test_maze_reader.py
@@ -0,0 +1,30 @@
+"""
+Created on Wed Nov 20 15:32:28 2024
+"""
+
+__author__ = "Son Hoang"
+__copyright__ = "Copyright (c) 2024, University of Southampton"
+__credits__ = ["Son Hoang"]
+__licence__ = "MIT"
+__version__ = "1.0"
+__maintainer__ = "Son Hoang"
+__email__ = "T.S.Hoang@soton.ac.uk"
+__status__ = "Prototype"
+
+import pytest
+
+from maze import Maze
+from maze_runner import maze_reader  # type: ignore
+
+
+def test_maze_reader_maze1() -> None:
+    maze: Maze = maze_reader("maze1.mz")
+    assert maze.width == 2
+    assert maze.height == 1
+    assert maze.get_walls(0, 0) == (True, False, True, True)
+    assert maze.get_walls(1, 0) == (True, True, True, False)
+
+
+def test_maze_reader_maze2() -> None:
+    with pytest.raises(ValueError):
+        maze: Maze = maze_reader("maze2.mz")