Linting
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
@@ -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__":
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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())
|
||||
|
||||
Reference in New Issue
Block a user