48b2ef8fa9af7cf7202b0c3cbe23bdb813279d93
[naja.git] / naja / tests / test_player.py
1 from unittest import TestCase
2
3 from naja.constants import NORTH, SOUTH, CYAN, MSB
4 from naja.player import PlayerBits
5
6
7 class TestPlayerBits(TestCase):
8     def test_range_limits(self):
9         bits = PlayerBits(0x00)
10
11         def set_value(value):
12             bits.bits = value
13
14         self.assertEqual(bits.bits, 0x00)
15         self.assertRaises(AssertionError, set_value, -1)
16         self.assertEqual(bits.bits, 0x00)
17         bits.bits = 255
18         self.assertEqual(bits.bits, 0xff)
19         bits.bits = 0
20         self.assertEqual(bits.bits, 0x00)
21         self.assertRaises(AssertionError, set_value, 256)
22         self.assertEqual(bits.bits, 0x00)
23
24     def test_check_bit(self):
25         bits = PlayerBits(0x01)
26         self.assertEqual(bits.check_bit(NORTH), True)
27         self.assertEqual(bits.check_bit(SOUTH), False)
28
29     def test_set_bit(self):
30         bits = PlayerBits(0x00)
31         self.assertEqual(bits._bits, 0x00)
32         bits.set_bit(NORTH)
33         self.assertEqual(bits._bits, 0x01)
34         bits.set_bit(NORTH)
35         self.assertEqual(bits._bits, 0x01)
36
37     def test_clear_bit(self):
38         bits = PlayerBits(0x01)
39         self.assertEqual(bits._bits, 0x01)
40         bits.clear_bit(NORTH)
41         self.assertEqual(bits._bits, 0x00)
42         bits.clear_bit(NORTH)
43         self.assertEqual(bits._bits, 0x00)
44
45     def test_toggle_bit(self):
46         bits = PlayerBits(0x00)
47         self.assertEqual(bits._bits, 0x00)
48         bits.toggle_bit(NORTH)
49         self.assertEqual(bits._bits, 0x01)
50         bits.toggle_bit(NORTH)
51         self.assertEqual(bits._bits, 0x00)
52
53     def test_check_bits(self):
54         bits = PlayerBits(0x03)
55         self.assertEqual(bits.check_bits(NORTH), True)
56         self.assertEqual(bits.check_bits(NORTH, SOUTH), True)
57         self.assertEqual(bits.check_bits(CYAN), False)
58         self.assertEqual(bits.check_bits(CYAN, MSB), False)
59         self.assertEqual(bits.check_bits(NORTH, SOUTH, CYAN), False)
60
61     def test_set_bits(self):
62         bits = PlayerBits(0x03)
63         self.assertEqual(bits._bits, 0x03)
64         bits.set_bits(NORTH, CYAN)
65         self.assertEqual(bits._bits, 0x13)
66         bits.set_bits(NORTH, CYAN, MSB)
67         self.assertEqual(bits._bits, 0x93)
68
69     def test_clear_bits(self):
70         bits = PlayerBits(0x03)
71         self.assertEqual(bits._bits, 0x03)
72         bits.clear_bits(NORTH, CYAN)
73         self.assertEqual(bits._bits, 0x02)
74         bits.clear_bits(NORTH, CYAN, MSB)
75         self.assertEqual(bits._bits, 0x02)
76
77     def test_toggle_bits(self):
78         bits = PlayerBits(0x03)
79         self.assertEqual(bits._bits, 0x03)
80         bits.toggle_bits(NORTH, CYAN)
81         self.assertEqual(bits._bits, 0x12)
82         bits.toggle_bits(NORTH, CYAN)
83         self.assertEqual(bits._bits, 0x03)
84         bits.toggle_bits(NORTH, CYAN, MSB)
85         self.assertEqual(bits._bits, 0x92)