summaryrefslogtreecommitdiff
path: root/src/miinaharava/tests/test_bot.py
diff options
context:
space:
mode:
authorAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-02-17 09:41:48 +0200
committerAineopintojen-harjoitustyo-Algoritmit-j <github-hy-tiralabra@v.hix.fi>2024-02-17 09:41:48 +0200
commite785dbd4f726c5716f21071ed25dc35ac87c0c74 (patch)
tree781373b78380a1ffd1ea8c5dc8ceb2bd313631e9 /src/miinaharava/tests/test_bot.py
parent4eff4a32cfa594cc2a3df3885de92d407edc6675 (diff)
Dev tools and directory structure rework.
Diffstat (limited to 'src/miinaharava/tests/test_bot.py')
-rw-r--r--src/miinaharava/tests/test_bot.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/miinaharava/tests/test_bot.py b/src/miinaharava/tests/test_bot.py
new file mode 100644
index 0000000..4dab148
--- /dev/null
+++ b/src/miinaharava/tests/test_bot.py
@@ -0,0 +1,54 @@
+""" tests/test_bot.py - Testaa botin toimintaa"""
+# pylint: disable = missing-class-docstring, too-few-public-methods, protected-access
+
+import unittest
+
+from board import Board, Tile
+from bots import DSSPBot, SimpleBot
+from tui import Action
+
+class TestBotClass(unittest.TestCase):
+ """ botin testit"""
+ def test_init(self):
+ """ olioden luominen onnistuu """
+ DSSPBot()
+ SimpleBot()
+
+ def correctly_marking(self, open_free=False, bot_type=DSSPBot):
+ """ Testaa onko miinat miinoja ja vapaat vapaita alkuun avatusta """
+ for _ in range(500):
+ brd = Board()
+ # jos ei aukea ylälaidasta otetaan seuraava
+ if not brd.guess(0,0):
+ continue
+ # vain varmat liikut
+ bot = bot_type(uncertain=False)
+
+ tested = set()
+ while True:
+ action, x, y = bot.hint(brd.get_view(), 0, 0)
+ if (x,y) in tested:
+ break
+ tested.add((x,y))
+ if action == Action.SAFE:
+ self.assertTrue( brd._Board__tiles[x][y] < Tile.MINE )
+ if open_free:
+ brd.guess(x,y)
+ if action == Action.MINE:
+ self.assertTrue( brd._Board__tiles[x][y] == Tile.MINE )
+
+ def test_dssp_marks_correctly_with_open(self):
+ """ Testaa onko dssp:n miinat miinoja ja avaa vapaat """
+ self.correctly_marking(True, DSSPBot)
+
+ def test_simple_marks_correctly_with_open(self):
+ """ Testaa onko dssp:n miinat miinoja ja avaa vapaat """
+ self.correctly_marking(True, SimpleBot)
+
+ def test_dssp_marks_correctly(self):
+ """ Testaa onko dssp:n miinat miinoja ja vapaat vapaita """
+ self.correctly_marking(False, DSSPBot)
+
+ def test_simple_marks_correctly(self):
+ """ Testaa onko simple:n miinat miinoja ja vapaat vapaita """
+ self.correctly_marking(False, SimpleBot)