-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtests_pawn.py
51 lines (41 loc) · 2.07 KB
/
tests_pawn.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import unittest
from chess import *
class TestChessMethods(unittest.TestCase):
def test_pe(self):
self.assertTrue(pe_allowed((5,5), (6,6), True))
self.assertTrue(pe_allowed((5,5), (4,6), True))
self.assertFalse(pe_allowed((5,5), (5,6), True))
self.assertFalse(pe_allowed((5,5), (5,7), True))
self.assertFalse(pe_allowed((5,5), (6,4), True))
self.assertFalse(pe_allowed((5,5), (4,4), True))
self.assertTrue(pe_allowed((5,5), (6,4), False))
self.assertTrue(pe_allowed((5,5), (4,4), False))
self.assertFalse(pe_allowed((5,5), (5,4), False))
self.assertFalse(pe_allowed((5,5), (5,3), False))
self.assertFalse(pe_allowed((5,5), (6,6), False))
self.assertFalse(pe_allowed((5,5), (4,6), False))
def test_p(self):
self.assertTrue(p_allowed((1,2), (1,3), True))
self.assertFalse(p_allowed((1,2), (1,3), False))
def test_first_two_cells_true(self):
self.assertTrue(p_allowed((2,2), (2,4), True))
self.assertTrue(p_allowed((3,2), (3,4), True))
self.assertTrue(p_allowed((2,7), (2,5), False))
self.assertTrue(p_allowed((5,7), (5,5), False))
def test_first_two_cells_false(self):
self.assertFalse(p_allowed((2,2), (2,4), False))
self.assertFalse(p_allowed((3,2), (3,4), False))
self.assertFalse(p_allowed((2,7), (2,5), True))
self.assertFalse(p_allowed((5,7), (5,5), True))
def test_out_of_bounds(self):
self.assertFalse(p_allowed((2, 1), (2, 2), True)) # White cannot be at y=1
self.assertFalse(p_allowed((2, 8), (2, 7), False)) # Black cannot be at y=1
self.assertFalse(p_allowed((2, 8), (2, 9), True))
self.assertFalse(p_allowed((2, 1), (2, 0), False))
self.assertFalse(p_allowed((0, 4), (0, 5), True))
self.assertFalse(p_allowed((0, 5), (0, 4), False))
self.assertFalse(p_allowed((9, 4), (9, 5), True))
self.assertFalse(p_allowed((9, 5), (9, 4), False))
self.assertFalse(p_allowed((2, 9), (2, 10), True))
if __name__ == '__main__':
unittest.main()