X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Ftests%2Ftest_player.py;fp=naja%2Ftests%2Ftest_player.py;h=48b2ef8fa9af7cf7202b0c3cbe23bdb813279d93;hb=3757e52c05b60b636155a3205a579c118ae82cc1;hp=0000000000000000000000000000000000000000;hpb=b1653611e4c805719c8a12c86df6c046d292e52b;p=naja.git diff --git a/naja/tests/test_player.py b/naja/tests/test_player.py new file mode 100644 index 0000000..48b2ef8 --- /dev/null +++ b/naja/tests/test_player.py @@ -0,0 +1,85 @@ +from unittest import TestCase + +from naja.constants import NORTH, SOUTH, CYAN, MSB +from naja.player import PlayerBits + + +class TestPlayerBits(TestCase): + def test_range_limits(self): + bits = PlayerBits(0x00) + + def set_value(value): + bits.bits = value + + self.assertEqual(bits.bits, 0x00) + self.assertRaises(AssertionError, set_value, -1) + self.assertEqual(bits.bits, 0x00) + bits.bits = 255 + self.assertEqual(bits.bits, 0xff) + bits.bits = 0 + self.assertEqual(bits.bits, 0x00) + self.assertRaises(AssertionError, set_value, 256) + self.assertEqual(bits.bits, 0x00) + + def test_check_bit(self): + bits = PlayerBits(0x01) + self.assertEqual(bits.check_bit(NORTH), True) + self.assertEqual(bits.check_bit(SOUTH), False) + + def test_set_bit(self): + bits = PlayerBits(0x00) + self.assertEqual(bits._bits, 0x00) + bits.set_bit(NORTH) + self.assertEqual(bits._bits, 0x01) + bits.set_bit(NORTH) + self.assertEqual(bits._bits, 0x01) + + def test_clear_bit(self): + bits = PlayerBits(0x01) + self.assertEqual(bits._bits, 0x01) + bits.clear_bit(NORTH) + self.assertEqual(bits._bits, 0x00) + bits.clear_bit(NORTH) + self.assertEqual(bits._bits, 0x00) + + def test_toggle_bit(self): + bits = PlayerBits(0x00) + self.assertEqual(bits._bits, 0x00) + bits.toggle_bit(NORTH) + self.assertEqual(bits._bits, 0x01) + bits.toggle_bit(NORTH) + self.assertEqual(bits._bits, 0x00) + + def test_check_bits(self): + bits = PlayerBits(0x03) + self.assertEqual(bits.check_bits(NORTH), True) + self.assertEqual(bits.check_bits(NORTH, SOUTH), True) + self.assertEqual(bits.check_bits(CYAN), False) + self.assertEqual(bits.check_bits(CYAN, MSB), False) + self.assertEqual(bits.check_bits(NORTH, SOUTH, CYAN), False) + + def test_set_bits(self): + bits = PlayerBits(0x03) + self.assertEqual(bits._bits, 0x03) + bits.set_bits(NORTH, CYAN) + self.assertEqual(bits._bits, 0x13) + bits.set_bits(NORTH, CYAN, MSB) + self.assertEqual(bits._bits, 0x93) + + def test_clear_bits(self): + bits = PlayerBits(0x03) + self.assertEqual(bits._bits, 0x03) + bits.clear_bits(NORTH, CYAN) + self.assertEqual(bits._bits, 0x02) + bits.clear_bits(NORTH, CYAN, MSB) + self.assertEqual(bits._bits, 0x02) + + def test_toggle_bits(self): + bits = PlayerBits(0x03) + self.assertEqual(bits._bits, 0x03) + bits.toggle_bits(NORTH, CYAN) + self.assertEqual(bits._bits, 0x12) + bits.toggle_bits(NORTH, CYAN) + self.assertEqual(bits._bits, 0x03) + bits.toggle_bits(NORTH, CYAN, MSB) + self.assertEqual(bits._bits, 0x92)