def test_battery_setter(self):
        battery_level = randint(0, 100)
        bot = LaserBatteryBotField(battery_level=battery_level)

        with self.assertRaises(CriticalBatteryLevel):
            while True:
                bot.drain(1)
    def test_battery_setter(self):
        battery_level = randint(0, 100)
        bot = LaserBatteryBotField(battery_level=battery_level)

        with self.assertRaises(CriticalBatteryLevel):
            while True:
                bot.drain(1)
    def test_battery_draining(self):
        battery_level = randint(10, 100)
        bot = LaserBatteryBotField(battery_level=battery_level)
        bot.drain(LaserBatteryBotField.DEFAULT_STEP_BATTERY_COST)
        self.assertEqual(bot.actual_battery_level, battery_level - LaserBatteryBotField.DEFAULT_STEP_BATTERY_COST)

        bot.drain(LaserBatteryBotField.DEFAULT_LASER_BATTERY_COST)
        self.assertEqual(bot.actual_battery_level, battery_level -
                         LaserBatteryBotField.DEFAULT_STEP_BATTERY_COST -
                         LaserBatteryBotField.DEFAULT_LASER_BATTERY_COST)
    def test_battery_draining(self):
        battery_level = randint(10, 100)
        bot = LaserBatteryBotField(battery_level=battery_level)
        bot.drain(LaserBatteryBotField.DEFAULT_STEP_BATTERY_COST)
        self.assertEqual(
            bot.actual_battery_level,
            battery_level - LaserBatteryBotField.DEFAULT_STEP_BATTERY_COST)

        bot.drain(LaserBatteryBotField.DEFAULT_LASER_BATTERY_COST)
        self.assertEqual(
            bot.actual_battery_level,
            battery_level - LaserBatteryBotField.DEFAULT_STEP_BATTERY_COST -
            LaserBatteryBotField.DEFAULT_LASER_BATTERY_COST)