+
+ def test_LoseHealthOrMSB_MSB_set(self):
+ board = self.make_board(player_bits=[BITS.MSB])
+ state_before = board.export()
+ actions.LoseHealthOrMSB(set()).perform_action(board, None)
+ state_after = board.export()
+ self.assertEqual(board.player.bits.check_bit(BITS.MSB), False)
+
+ state_before['player'].pop('bits')
+ state_after['player'].pop('bits')
+ self.assertEqual(state_before, state_after)
+
+ def test_SetBits(self):
+ board = self.make_board()
+ state_before = board.export()
+ location = LocationCard(set([BITS.MSB, BITS.NORTH]), [])
+ actions.SetBits(set()).perform_action(board, location)
+ state_after = board.export()
+ self.assertEqual(
+ board.player.bits.check_bits([BITS.MSB, BITS.NORTH]), True)
+
+ state_before['player'].pop('bits')
+ state_after['player'].pop('bits')
+ self.assertEqual(state_before, state_after)
+
+ def test_ToggleBits(self):
+ board = self.make_board(player_bits=[BITS.NORTH])
+ state_before = board.export()
+ location = LocationCard(set([BITS.MSB, BITS.NORTH]), [])
+ actions.ToggleBits(set()).perform_action(board, location)
+ state_after = board.export()
+ self.assertEqual(board.player.bits.check_bit(BITS.MSB), True)
+ self.assertEqual(board.player.bits.check_bit(BITS.NORTH), False)
+
+ state_before['player'].pop('bits')
+ state_after['player'].pop('bits')
+ self.assertEqual(state_before, state_after)