You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
3.2 KiB
111 lines
3.2 KiB
3 years ago
|
import unittest
|
||
|
import pytest
|
||
|
from arcade_game import eat_ghost, score, lose, win
|
||
|
|
||
|
|
||
|
class GhostGobbleGameTest(unittest.TestCase):
|
||
|
|
||
|
@pytest.mark.task(taskno=1)
|
||
|
def test_ghost_gets_eaten(self):
|
||
|
self.assertIs(
|
||
|
eat_ghost(True, True),
|
||
|
True,
|
||
|
msg="ghost should get eaten"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=1)
|
||
|
def test_ghost_does_not_get_eaten_because_no_power_pellet_active(self):
|
||
|
self.assertIs(
|
||
|
eat_ghost(False, True),
|
||
|
False,
|
||
|
msg="ghost does not get eaten because no power pellet active"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=1)
|
||
|
def test_ghost_does_not_get_eaten_because_not_touching_ghost(self):
|
||
|
self.assertIs(
|
||
|
eat_ghost(True, False),
|
||
|
False,
|
||
|
msg="ghost does not get eaten because not touching ghost"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=2)
|
||
|
def test_score_when_eating_dot(self):
|
||
|
self.assertIs(
|
||
|
score(False, True),
|
||
|
True,
|
||
|
msg="score when eating dot"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=2)
|
||
|
def test_score_when_eating_power_pellet(self):
|
||
|
self.assertIs(
|
||
|
score(True, False),
|
||
|
True,
|
||
|
msg="score when eating power pellet"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=2)
|
||
|
def test_no_score_when_nothing_eaten(self):
|
||
|
self.assertIs(
|
||
|
score(False, False),
|
||
|
False,
|
||
|
msg="no score when nothing eaten"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=3)
|
||
|
def test_lose_if_touching_a_ghost_without_a_power_pellet_active(self):
|
||
|
self.assertIs(
|
||
|
lose(False, True),
|
||
|
True,
|
||
|
msg="lose if touching a ghost without a power pellet active"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=3)
|
||
|
def test_dont_lose_if_touching_a_ghost_with_a_power_pellet_active(self):
|
||
|
self.assertIs(
|
||
|
lose(True, True),
|
||
|
False,
|
||
|
msg="don't lose if touching a ghost with a power pellet active"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=3)
|
||
|
def test_dont_lose_if_not_touching_a_ghost(self):
|
||
|
self.assertIs(
|
||
|
lose(True, False),
|
||
|
False,
|
||
|
msg="don't lose if not touching a ghost"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=4)
|
||
|
def test_win_if_all_dots_eaten(self):
|
||
|
self.assertIs(
|
||
|
win(True, False, False),
|
||
|
True,
|
||
|
msg="win if all dots eaten"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=4)
|
||
|
def test_dont_win_if_all_dots_eaten_but_touching_a_ghost(self):
|
||
|
self.assertIs(
|
||
|
win(True, False, True),
|
||
|
False,
|
||
|
msg="don't win if all dots eaten, but touching a ghost"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=4)
|
||
|
def test_win_if_all_dots_eaten_and_touching_a_ghost_with_a_power_pellet_active(self):
|
||
|
self.assertIs(
|
||
|
win(True, True, True),
|
||
|
True,
|
||
|
msg="win if all dots eaten and touching a ghost with a power pellet active"
|
||
|
)
|
||
|
|
||
|
@pytest.mark.task(taskno=4)
|
||
|
def test_dont_win_if_not_all_dots_eaten(self):
|
||
|
self.assertIs(
|
||
|
win(False, True, True),
|
||
|
False,
|
||
|
msg="don't win if not all dots eaten and touching a ghost with a power pellet active"
|
||
|
)
|