def setUp(self):
     self.game_object = GameController(100, 100, 2)
     self.max_height = self.game_object.game_field['height']
     self.max_width = self.game_object.game_field['width']
Example #2
0
 def setUp(self):
     self.game_object = GameController(100, 100, 2)
     self.max_height = self.game_object.game_field['height']
     self.max_width = self.game_object.game_field['width']
class MainControllerTestCase(unittest.TestCase):
    def setUp(self):
        self.game_object = GameController(100, 100, 2)
        self.max_height = self.game_object.game_field['height']
        self.max_width = self.game_object.game_field['width']

    def tearDown(self):
        del self

    def test_game_field_width(self):
        self.assertEqual(self.game_object.game_field['width'], 100, 'incorrect game field width')

    def test_game_field_height(self):
        self.assertEqual(self.game_object.game_field['height'], 100, 'incorrect game field height')

    def test_game_field_units_length(self):
        self.assertEqual(len(self.game_object.units), 3, 'incorrect length of units')

    def test_bullet_create(self):
        self.game_object.fire(self.game_object.units[0])
        self.assertEqual(len(self.game_object.units), 4, 'Bullet was not created')

    def test_hero_start_speed(self):
        self.assertEqual(self.game_object.units[0].speed, 0, 'Incorrect initial speed')
        self.assertEqual(self.game_object.units[1].speed, DEFAULT_SPEED, 'Incorrect initial speed')

    def test_hero_speed_after_change(self):
        self.game_object.units[0].change_speed(5)
        self.assertEqual(self.game_object.units[0].speed, 5, 'Incorrect initial speed')
        self.assertEqual(self.game_object.units[1].speed, DEFAULT_SPEED, 'Incorrect initial speed')

    def test_hero_angle(self):
        hero = Hero(20, 20, 100)
        self.assertEqual(hero.angle, 100, 'Incorrect initial angle')

    def test_hero_angle_after_rotate(self):
        hero = Hero(20, 20, 100)
        hero.rotate(20)
        self.assertEqual(hero.angle, 120, 'Incorrect angle after rotate')

    #  Bullet coordinates after initial x = 0, y = 0, angle = 90:
    #    1. after 0 seconds ---  x = 0, y = 0
    #    2. after 1 seconds ---  x = 0, y = 5
    #    3. after 2 seconds ---  x = 0, y = 10
    #    4. after 3 seconds ---  x = 0, y = 15
    #  Coordinate will be the same as in invader!! Both units will be dead !!
    def test_compute_new_coordinate(self):
        hero = Hero(0, 0, 90)
        bullet = Bullet(hero)
        step = 0
        while step < 3:
            bullet.compute_new_coordinate(self.game_object.game_field)
            step += STEP_INTERVAL
        self.assertEqual(bullet.x1, 0, 'Bullet coordinate x is incorrect!')
        self.assertEqual(bullet.y1, 15, 'Bullet coordinate y is incorrect!')

    def test_check_collision_with_kill(self):
        hero = Hero(0, 0, 90)
        invader = Invader(0, 15, 90, 10, 0)
        bullet = Bullet(hero)
        self.units = [hero, invader, bullet]
        step = 0
        while step < 3:
            bullet.compute_new_coordinate(self.game_object.game_field)
            step += STEP_INTERVAL
        bullet.check_collision(invader, self.units)
        self.assertEqual(bullet.is_dead, True, 'Bullet is not dead!')
        self.assertEqual(invader.is_dead, True, 'Invader is not dead!')
        self.assertEqual(hero.bonus, 10, 'Incorrect bonus for hero!')
        self.assertEqual(len(self.units), 1, 'Incorrect count of units after kill!!')

    def test_check_collision_without_kill(self):
        hero = Hero(0, 0, 90)
        invader = Invader(7, 31, 90, 10, 0)
        bullet = Bullet(hero)
        self.units = [hero, invader, bullet]
        step = 0
        while step < 3:
            bullet.compute_new_coordinate(self.game_object.game_field)
            step += STEP_INTERVAL
        bullet.check_collision(invader, self.units)
        self.assertEqual(bullet.is_dead, False, 'Bullet is dead!')
        self.assertEqual(invader.is_dead, False, 'Invader is dead!')
        self.assertEqual(hero.bonus, 0, 'Incorrect bonus for hero!')
        self.assertEqual(len(self.units), 3, 'Incorrect count of units after check collision!!')
Example #4
0
class MainControllerTestCase(unittest.TestCase):
    def setUp(self):
        self.game_object = GameController(100, 100, 2)
        self.max_height = self.game_object.game_field['height']
        self.max_width = self.game_object.game_field['width']

    def tearDown(self):
        del self

    def test_game_field_width(self):
        self.assertEqual(self.game_object.game_field['width'], 100,
                         'incorrect game field width')

    def test_game_field_height(self):
        self.assertEqual(self.game_object.game_field['height'], 100,
                         'incorrect game field height')

    def test_game_field_units_length(self):
        self.assertEqual(len(self.game_object.units), 3,
                         'incorrect length of units')

    def test_bullet_create(self):
        self.game_object.fire(self.game_object.units[0])
        self.assertEqual(len(self.game_object.units), 4,
                         'Bullet was not created')

    def test_hero_start_speed(self):
        self.assertEqual(self.game_object.units[0].speed, 0,
                         'Incorrect initial speed')
        self.assertEqual(self.game_object.units[1].speed, DEFAULT_SPEED,
                         'Incorrect initial speed')

    def test_hero_speed_after_change(self):
        self.game_object.units[0].change_speed(5)
        self.assertEqual(self.game_object.units[0].speed, 5,
                         'Incorrect initial speed')
        self.assertEqual(self.game_object.units[1].speed, DEFAULT_SPEED,
                         'Incorrect initial speed')

    def test_hero_angle(self):
        hero = Hero(20, 20, 100)
        self.assertEqual(hero.angle, 100, 'Incorrect initial angle')

    def test_hero_angle_after_rotate(self):
        hero = Hero(20, 20, 100)
        hero.rotate(20)
        self.assertEqual(hero.angle, 120, 'Incorrect angle after rotate')

    #  Bullet coordinates after initial x = 0, y = 0, angle = 90:
    #    1. after 0 seconds ---  x = 0, y = 0
    #    2. after 1 seconds ---  x = 0, y = 5
    #    3. after 2 seconds ---  x = 0, y = 10
    #    4. after 3 seconds ---  x = 0, y = 15
    #  Coordinate will be the same as in invader!! Both units will be dead !!
    def test_compute_new_coordinate(self):
        hero = Hero(0, 0, 90)
        bullet = Bullet(hero)
        step = 0
        while step < 3:
            bullet.compute_new_coordinate(self.game_object.game_field)
            step += STEP_INTERVAL
        self.assertEqual(bullet.x1, 0, 'Bullet coordinate x is incorrect!')
        self.assertEqual(bullet.y1, 15, 'Bullet coordinate y is incorrect!')

    def test_check_collision_with_kill(self):
        hero = Hero(0, 0, 90)
        invader = Invader(0, 15, 90, 10, 0)
        bullet = Bullet(hero)
        self.units = [hero, invader, bullet]
        step = 0
        while step < 3:
            bullet.compute_new_coordinate(self.game_object.game_field)
            step += STEP_INTERVAL
        bullet.check_collision(invader, self.units)
        self.assertEqual(bullet.is_dead, True, 'Bullet is not dead!')
        self.assertEqual(invader.is_dead, True, 'Invader is not dead!')
        self.assertEqual(hero.bonus, 10, 'Incorrect bonus for hero!')
        self.assertEqual(len(self.units), 1,
                         'Incorrect count of units after kill!!')

    def test_check_collision_without_kill(self):
        hero = Hero(0, 0, 90)
        invader = Invader(7, 31, 90, 10, 0)
        bullet = Bullet(hero)
        self.units = [hero, invader, bullet]
        step = 0
        while step < 3:
            bullet.compute_new_coordinate(self.game_object.game_field)
            step += STEP_INTERVAL
        bullet.check_collision(invader, self.units)
        self.assertEqual(bullet.is_dead, False, 'Bullet is dead!')
        self.assertEqual(invader.is_dead, False, 'Invader is dead!')
        self.assertEqual(hero.bonus, 0, 'Incorrect bonus for hero!')
        self.assertEqual(len(self.units), 3,
                         'Incorrect count of units after check collision!!')