diff --git a/test/boards.py b/test/boards.py index 53d6f85..ce1b8c4 100644 --- a/test/boards.py +++ b/test/boards.py @@ -1,4 +1,4 @@ -from .context import shenzhen_solitaire +"""Contains an example board to run tests on""" from shenzhen_solitaire.board import NumberCard, SpecialCard, Board my_board: Board = Board() diff --git a/test/context.py b/test/context.py deleted file mode 100644 index 98fe044..0000000 --- a/test/context.py +++ /dev/null @@ -1,7 +0,0 @@ -"""Adjust context to add the project to the search past""" -import os -import sys -sys.path.insert(0, os.path.abspath( - os.path.join(os.path.dirname(__file__), '..'))) - -import shenzhen_solitaire diff --git a/test/cv_helper.py b/test/cv_helper.py index 40b6041..0ab941f 100644 --- a/test/cv_helper.py +++ b/test/cv_helper.py @@ -1,40 +1,35 @@ -import itertools -from typing import Tuple, List, Dict -import zipfile -import io -import json -import dataclasses +"""Contains function to manually test the visual detection of a board""" import numpy as np import cv2 -from .context import shenzhen_solitaire from shenzhen_solitaire.cv import adjustment -from shenzhen_solitaire.cv import card_finder from shenzhen_solitaire.cv import board_parser from shenzhen_solitaire import board from shenzhen_solitaire.cv.configuration import Configuration def generate() -> None: - with open("Solitaire.png", 'rb') as fd: - img_str = fd.read() + """Generate a configuration""" + with open("Solitaire.png", 'rb') as png_file: + img_str = png_file.read() nparr = np.frombuffer(img_str, np.uint8) image = cv2.imdecode(nparr, cv2.IMREAD_COLOR) - a = Configuration.generate(image) - a.save('test_config.zip') + generated_config = Configuration.generate(image) + generated_config.save('test_config.zip') def parse() -> board.Board: - with open("Solitaire2.png", 'rb') as fd: - img_str = fd.read() + """Parse a configuration""" + with open("Solitaire2.png", 'rb') as png_file: + img_str = png_file.read() nparr = np.frombuffer(img_str, np.uint8) image = cv2.imdecode(nparr, cv2.IMREAD_COLOR) image = cv2.resize(image, (1000, 629)) - a = Configuration.load('test_config.zip') - a.field_adjustment = adjustment.adjust_field(image) - return board_parser.parse_board(image, a) + loaded_config = Configuration.load('test_config.zip') + loaded_config.field_adjustment = adjustment.adjust_field(image) + return board_parser.parse_board(image, loaded_config) if __name__ == "__main__": diff --git a/test/test_chain.py b/test/test_chain.py index a4b1be5..dfa80ed 100644 --- a/test/test_chain.py +++ b/test/test_chain.py @@ -1,8 +1,7 @@ """Contains tests for chain module""" import unittest -from .context import shenzhen_solitaire -from shenzhen_solitaire.board import NumberCard, SpecialCard, Board, Position +from shenzhen_solitaire.board import NumberCard, Position from shenzhen_solitaire.board_actions import MoveAction, BunkerizeAction, GoalAction, HuaKillAction from shenzhen_solitaire import board_possibilities from .boards import my_board diff --git a/test/test_solver.py b/test/test_solver.py index 1db3a0b..ceff4cd 100644 --- a/test/test_solver.py +++ b/test/test_solver.py @@ -1,20 +1,23 @@ +"""Contains the SolverTest class""" import unittest import copy -from .context import shenzhen_solitaire from shenzhen_solitaire import solver from .boards import my_board class SolverTest(unittest.TestCase): + """Tests the solitaire solver""" + def test_solver(self) -> None: + """Tests solver""" board_copy = copy.deepcopy(my_board) board_id = my_board.state_identifier - A = solver.solve(my_board) - for _, B in zip(range(1), A): + board_solution_iterator = solver.solve(my_board) + for _, current_solution in zip(range(1), board_solution_iterator): self.assertEqual(board_id, board_copy.state_identifier) - for x in B: - x.apply(board_copy) + for action in current_solution: + action.apply(board_copy) self.assertTrue(board_copy.check_correct()) self.assertTrue(board_copy.solved())