Source code for game.AI.test_ai

# -*- coding: utf-8 -*-
from unittest import TestCase
from game.AI import ai
from game.AI import _ai_rek_another_attack_in_a_row
from tools import *
from settings import Settings


[docs]class TestAi(TestCase):
[docs] def testNoPossibleMovement(self): default_settings = Settings(default=True) wynik = ai([], [], default_settings) self.assertEqual(wynik, None) wynik = ai([], [(2, 0)], default_settings) self.assertEqual(wynik, None) wynik = ai([(0, 0), (2, 0)], [(1, 1)], default_settings) self.assertEqual(wynik, None)
[docs] def testSimpleMove(self): default_settings = Settings(default=True) wynik = ai([], [(7,7)], default_settings) self.assertEqual(wynik, ((7,7), (6,6), [])) wynik = ai([(0,6)], [(1,7)], default_settings) self.assertEqual(wynik, ((1,7), (2,6), []))
[docs] def testSimpleAttackMove(self): default_settings = Settings(default=True) wynik = ai([(1,1)],[(2,2)], default_settings) self.assertEqual(wynik,((2,2),(0,0),[(1,1)])) wynik = ai([(7,3),(5,3)],[(6,4)], default_settings) self.assertEqual(wynik,((6,4),(4,2),[(5,3)]))
[docs] def testNotMakingLosingMoves(self): default_settings = Settings(default=True) wynik = ai([(1,1)],[(3,3)], default_settings) self.assertEqual(wynik,((3,3),(4,2),[])) wynik = ai([(2,2),(1,1)],[(3,3),(7,7)], default_settings) self.assertEqual(wynik,((3,3),(4,2),[]))
[docs] def testGuessingEnemyMoves(self): default_settings = Settings(default=True) wynik = ai([(0,0),(2,2),(4,2)],[(3,3)], default_settings) self.assertEqual(wynik,((3,3),(5,1),[(4,2)]))
[docs] def testMultipleAttack(self): default_settings = Settings(default=True) wynik = ai([(1,1),(3,3),(5,3)],[(4,4)], default_settings) self.assertEqual(wynik,((4,4),(0,0),[(1,1),(3,3)]))
[docs] def testMultipleAttackRecursiveFunction(self): wynik = _ai_rek_another_attack_in_a_row([(1, 1), (3, 3)], [(4, 4)], Color.black, (4, 4)) self.assertEqual(wynik, ((0,0),[(3,3),(1,1)])) wynik = _ai_rek_another_attack_in_a_row([(1, 1), (3, 3), (5, 3)], [(4, 4)], Color.black, (4, 4)) self.assertEqual(wynik, ((0,0),[(3,3),(1,1)]))
[docs] def testSettingForceAttack(self): default_settings = Settings(default=True) wynik = ai([(0,0),(2,2),(1,3),(2,0)],[(3,3),(3,1),(5,1)], default_settings) self.assertEqual(wynik,((3, 3), (1, 1), [(2, 2)])) default_settings.force_attack=False wynik = ai([(0,0),(2,2),(1,3),(2,0)],[(3,3),(3,1),(5,1)], default_settings) self.assertEqual(wynik,((3, 1), (4, 0), []))
[docs] def testSettingMultipleAttack(self): default_settings = Settings(default=True) wynik = ai([(1,1),(3,3),(5,3),(6,2)],[(4,4)], default_settings) self.assertEqual(wynik,((4, 4), (0, 0), [(1,1), (3, 3)])) default_settings.multiple_attack=False wynik = ai([(1,1),(3,3),(5,3),(6,2)],[(4,4)], default_settings) self.assertEqual(wynik,((4, 4), (2, 2),[(3,3)]))