1 from unittest import TestCase
3 from naja.constants import NORTH, SOUTH, CYAN, MSB
4 from naja.player import PlayerBits
7 class TestPlayerBits(TestCase):
8 def test_range_limits(self):
9 bits = PlayerBits(0x00)
14 self.assertEqual(bits.bits, 0x00)
15 self.assertRaises(AssertionError, set_value, -1)
16 self.assertEqual(bits.bits, 0x00)
18 self.assertEqual(bits.bits, 0xff)
20 self.assertEqual(bits.bits, 0x00)
21 self.assertRaises(AssertionError, set_value, 256)
22 self.assertEqual(bits.bits, 0x00)
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)
29 def test_set_bit(self):
30 bits = PlayerBits(0x00)
31 self.assertEqual(bits._bits, 0x00)
33 self.assertEqual(bits._bits, 0x01)
35 self.assertEqual(bits._bits, 0x01)
37 def test_clear_bit(self):
38 bits = PlayerBits(0x01)
39 self.assertEqual(bits._bits, 0x01)
41 self.assertEqual(bits._bits, 0x00)
43 self.assertEqual(bits._bits, 0x00)
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)
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)
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)
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)
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)