def __init__(self):
     self.health = HealthAspect()
class HealthAspectTest(unittest.TestCase):

    def __init__(self):
        self.health = HealthAspect()

    def test_heal(self):
        self.health.health = 0
        self.health.add_health(10)
        self.assertEqual(self.health.health, 10)

    def test_heal_at_max(self):
        self.health.add_health(100)
        self.assertEqual(self.health.health, self.health.max_health)

    def test_take_damage(self):
        self.health.sub_health(1)
        self.assertEqual(self.health.health, self.health.max_health - 1)

    def test_take_too_much_damage(self):
        self.health.sub_health(self.health.max_health + 1)
        self.assertEqual(self.health.health, 0)

    def test_is_dead(self):
        self.assertFalse(self.health.is_dead())
        self.health.sub_health(self.health.max_health)
        self.assertTrue(self.health.is_dead())

    def test_reset_health(self):
        self.health.health = 0
        self.health.reset_health()
        self.assertEqual(self.health.health, self.health.max_health)

    def test_is_at_full_health(self):
        self.assertTrue(self.health.is_full_health())
        self.health.health = 0
        self.assertFalse(self.health.is_full_health())