-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_panda.py
69 lines (54 loc) · 1.95 KB
/
test_panda.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import unittest
from panda import Panda
class PandaTest(unittest.TestCase):
def test_above_limit_update(self):
panda = Panda()
panda.update_hungry(panda.POSITIVE_UPDATE)
self.assertEqual(panda.get_feed(), 1.0)
def test_below_limit_update(self):
panda = Panda()
for i in range(1, 10):
panda.update_hungry(panda.NEGATIVE_UPDATE)
self.assertEqual(panda.get_feed(), 0.0)
def test_calculate_happiness(self):
panda = Panda()
panda.update_dirty(panda.NEGATIVE_UPDATE)
self.assertEqual(panda.get_happiness(), 0.9)
def test_update_ill(self):
panda = Panda()
panda.update_ill(panda.NEGATIVE_UPDATE)
self.assertEqual(panda.get_cure(), 0.5)
def test_update_sleepy(self):
panda = Panda()
panda.update_sleepy(panda.NEGATIVE_UPDATE)
panda.update_sleepy(panda.NEGATIVE_UPDATE)
self.assertEqual(panda.get_sleep(), 0.5)
def test_update_dirty(self):
panda = Panda()
panda.update_dirty(panda.NEGATIVE_UPDATE)
panda.update_dirty(panda.NEGATIVE_UPDATE)
self.assertEqual(panda.get_clean(), 0.0)
def test_kill(self):
panda = Panda()
panda.kill()
self.assertFalse(panda.get_alive())
def test_dead_state(self):
panda = Panda()
panda.kill()
self.assertEqual(panda._state, panda.STATE_DEAD)
def test_healing_state(self):
panda = Panda()
panda.update_ill(panda.NEGATIVE_UPDATE)
panda.heal()
self.assertEqual(panda._state, panda.STATE_HEALING)
def test_playing_state(self):
panda = Panda()
panda.update_playful(panda.NEGATIVE_UPDATE)
panda.play()
self.assertEqual(panda._state, panda.STATE_PLAYING)
def test_state_no_change(self):
panda = Panda()
panda.eat()
self.assertNotEqual(panda._state, panda.STATE_EATING)
if __name__ == '__main__':
unittest.main()