コード例 #1
0
 def teste_valores_padrao(self):
     'Testa valores iniciais padrão de um Ator'
     ator = Ator()
     self.assertEqual(0, ator.x)
     self.assertEqual(0, ator.y)
     self.assertEqual(ATIVO, ator.status)
     self.assertEqual('A', ator.caracter())
コード例 #2
0
 def teste_valores_passados_por_parametro(self):
     'Testa se valores passados no inicializador são armazenados no objeto'
     ator = Ator(1, 2)
     self.assertEqual(1, ator.x)
     self.assertEqual(2, ator.y)
     self.assertEqual(ATIVO, ator.status)
     self.assertEqual('A', ator.caracter())
コード例 #3
0
 def test_caracter(self):
     'Teste de caracter para status ATIVO e DESTRUIDO'
     ator = Ator()
     self.assertEqual('A', ator.caracter())
     outro_ator_na_mesma_posicao = Ator()
     ator.colidir(outro_ator_na_mesma_posicao)
     self.assertEqual(' ', ator.caracter())
     self.assertEqual(' ', outro_ator_na_mesma_posicao.caracter())
コード例 #4
0
 def teste_ator_posicao(self):
     ator = Ator()
     self.assertTupleEqual((0, 0), ator.calcular_posicao(0))
     ator = Ator(0.3, 0.5)
     self.assertTupleEqual((0, 0), ator.calcular_posicao(2.3),
                           'Deveria arredondar para inteiro')
     ator = Ator(0.6, 2.1)
     self.assertTupleEqual((1, 2), ator.calcular_posicao(3.14),
                           'Deveria arredondar para inteiro')
コード例 #5
0
 def teste_ator_posicao(self):
     ator = Ator()
     self.assertTupleEqual((0, 0), ator.calcular_posicao(0))
     ator = Ator(0.3, 0.5)
     self.assertTupleEqual((0, 0), ator.calcular_posicao(2.3), 'Deveria arredondar para inteiro')
     ator = Ator(0.6, 2.1)
     self.assertTupleEqual((1, 2), ator.calcular_posicao(3.14), 'Deveria arredondar para inteiro')
コード例 #6
0
 def teste_ator_posicao(self):
     ator = Ator()
     self.assertTupleEqual((0, 0), ator.calcular_posicao(0))
     ator = Ator(0.3, 0.5)
     self.assertTupleEqual((0, 0), ator.calcular_posicao(2.3))
     ator = Ator(0.6, 2.1)
     self.assertTupleEqual((1, 2), ator.calcular_posicao(3.14))
コード例 #7
0
 def teste_colisao_somente_um_ator_destruido(self):
     ator = Ator(2, 2)
     ator.colidir(ator, 0)
     ator2 = Ator(2, 2)
     self.assert_nao_colisao(ator, ator2)
     self.assert_nao_colisao(Ator(2, 3), ator)
     self.assert_nao_colisao(Ator(3, 3), ator)
     self.assert_nao_colisao(Ator(3, 2), ator)
     self.assert_nao_colisao(Ator(3, 1), ator)
     self.assert_nao_colisao(Ator(2, 1), ator)
     self.assert_nao_colisao(Ator(1, 1), ator)
     self.assert_nao_colisao(Ator(1, 2), ator)
     self.assert_nao_colisao(Ator(1, 3), ator)
     self.assert_nao_colisao(ator2, ator)
     self.assert_nao_colisao(Ator(2, 3), ator)
     self.assert_nao_colisao(Ator(3, 3), ator)
     self.assert_nao_colisao(Ator(3, 2), ator)
     self.assert_nao_colisao(Ator(3, 1), ator)
     self.assert_nao_colisao(Ator(2, 1), ator)
     self.assert_nao_colisao(Ator(1, 1), ator)
     self.assert_nao_colisao(Ator(1, 2), ator)
     self.assert_nao_colisao(Ator(1, 3), ator)
コード例 #8
0
 def teste_colisao_somente_um_ator_destruido(self):
     ator = Ator(2, 2)
     ator.colidir(ator, 0)  # colidingo ator com ele mesmo para alterar seu status para destruido
     ator2 = Ator(2, 2)
     self.assert_nao_colisao(ator, ator2)
     self.assert_nao_colisao(Ator(2, 3), ator)
     self.assert_nao_colisao(Ator(3, 3), ator)
     self.assert_nao_colisao(Ator(3, 2), ator)
     self.assert_nao_colisao(Ator(3, 1), ator)
     self.assert_nao_colisao(Ator(2, 1), ator)
     self.assert_nao_colisao(Ator(1, 1), ator)
     self.assert_nao_colisao(Ator(1, 2), ator)
     self.assert_nao_colisao(Ator(1, 3), ator)
     self.assert_nao_colisao(ator2, ator)
     self.assert_nao_colisao(Ator(2, 3), ator)
     self.assert_nao_colisao(Ator(3, 3), ator)
     self.assert_nao_colisao(Ator(3, 2), ator)
     self.assert_nao_colisao(Ator(3, 1), ator)
     self.assert_nao_colisao(Ator(2, 1), ator)
     self.assert_nao_colisao(Ator(1, 1), ator)
     self.assert_nao_colisao(Ator(1, 2), ator)
     self.assert_nao_colisao(Ator(1, 3), ator)
コード例 #9
0
    def teste_ator_posicao(self):
        'Teste que verifica que o ator comum não deve se mover independente do tempo do jogo'
        ator = Ator()
        x, y = ator.calcular_posicao(0)
        self.assertEqual(0, x)
        self.assertEqual(0, y)

        ator = Ator(0.3, 0.5)
        x, y = ator.calcular_posicao(10)
        self.assertEqual(0.3, x)
        self.assertEqual(0.5, y)
コード例 #10
0
    def teste_status(self):
        ator = Ator()
        'Confere status de um ator'
        # Conferencia de caracter de ator ativo
        self.assertEqual(ATIVO, ator.status(0))

        # Colidindo ator com ele mesmo para alterar seu status para destruido
        ator._tempo_de_colisao = 3.2

        self.assertEqual(ATIVO, ator.status(3.1),
                         'Status para tempo 3.1 de jogo deveria mostrar status ativo, já que é menor que o tempo de colisão 3.2')
        self.assertEqual(DESTRUIDO, ator.status(3.2),
                         'Status para tempo 3.2 de jogo deveria mostrar status destruido, já que é igual ao tempo de colisão 3.2')
        self.assertEqual(DESTRUIDO, ator.status(4),
                         'Status para tempo 4 de jogo deveria mostrar status destruido, já que é maior que o tempo de colisão 3.2')
コード例 #11
0
    def teste_status(self):
        ator = Ator()
        'Confere status de um ator'
        # Conferencia de caracter de ator ativo
        self.assertEqual(ATIVO, ator.status(0))

        # Colidindo ator com ele mesmo para alterar seu status para destruido
        ator._tempo_de_colisao = 3.2

        self.assertEqual(
            ATIVO, ator.status(3.1),
            'Status para tempo 3.1 de jogo deveria mostrar status ativo, já que é menor que o tempo de colisão 3.2'
        )
        self.assertEqual(
            DESTRUIDO, ator.status(3.2),
            'Status para tempo 3.2 de jogo deveria mostrar status destruido, já que é igual ao tempo de colisão 3.2'
        )
        self.assertEqual(
            DESTRUIDO, ator.status(4),
            'Status para tempo 4 de jogo deveria mostrar status destruido, já que é maior que o tempo de colisão 3.2'
        )
コード例 #12
0
 def teste_status(self):
     passaro_amarelo = PassaroAmarelo(1, 1)
     self.assertEqual('A', passaro_amarelo.caracter())
     outro_ator_na_mesma_posicao = Ator()
     passaro_amarelo.colidir(outro_ator_na_mesma_posicao)
     self.assertEqual('a', passaro_amarelo.caracter())
コード例 #13
0
 def teste_resetar(self):
     ator = Ator()
     self.assertIsNone(ator._tempo_de_colisao)
     ator._tempo_de_colisao = 1
     ator.resetar()
     self.assertIsNone(ator._tempo_de_colisao)
コード例 #14
0
 def teste_status(self):
     porco = Porco()
     self.assertEqual('@', porco.caracter())
     outro_ator_na_mesma_posicao = Ator()
     porco.colidir(outro_ator_na_mesma_posicao)
     self.assertEqual('+', porco.caracter())
コード例 #15
0
 def teste_status(self):
     obstaculo = Obstaculo()
     self.assertEqual('O', obstaculo.caracter())
     outro_ator_na_mesma_posicao = Ator()
     obstaculo.colidir(outro_ator_na_mesma_posicao)
     self.assertEqual(' ', obstaculo.caracter())
コード例 #16
0
 def teste_nao_colisao_entre_atores_ativos(self):
     self.assert_nao_colisao(Ator(2, 2), Ator(2, 4))
     self.assert_nao_colisao(Ator(2, 2), Ator(3, 4))
     self.assert_nao_colisao(Ator(2, 2), Ator(4, 2))
     self.assert_nao_colisao(Ator(2, 2), Ator(3, 0))
     self.assert_nao_colisao(Ator(2, 2), Ator(2, 0))
     self.assert_nao_colisao(Ator(2, 2), Ator(0, 1))
     self.assert_nao_colisao(Ator(2, 2), Ator(0, 2))
     self.assert_nao_colisao(Ator(2, 2), Ator(0, 4))
コード例 #17
0
 def teste_colisao_entre_atores_ativos(self):
     ator = Ator(2, 2)  # Ator recém criado deve ter status ativo
     ator2 = Ator(2, 2)
     self.assert_colisao_atores_ativos(ator, ator2)
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(2, 3))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(3, 3))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(3, 2))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(3, 1))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(2, 1))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(1, 1))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(1, 2))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(1, 3))
コード例 #18
0
 def test_caracter(self):
     ator = Ator()
     self.assert_ator_caracteres(ator, 'A', ' ')
コード例 #19
0
 def teste_nao_colisao_entre_atores_ativos(self):
     'Teste de que não há colisão entre atores distantes'
     self.assert_nao_colisao(Ator(2, 2), Ator(2, 4))
     self.assert_nao_colisao(Ator(2, 2), Ator(3, 4))
     self.assert_nao_colisao(Ator(2, 2), Ator(4, 2))
     self.assert_nao_colisao(Ator(2, 2), Ator(3, 0))
     self.assert_nao_colisao(Ator(2, 2), Ator(2, 0))
     self.assert_nao_colisao(Ator(2, 2), Ator(0, 1))
     self.assert_nao_colisao(Ator(2, 2), Ator(0, 2))
     self.assert_nao_colisao(Ator(2, 2), Ator(0, 4))
コード例 #20
0
 def teste_resetar(self):
     ator = Ator()
     self.assertIsNone(ator._tempo_de_colisao)
     ator._tempo_de_colisao = 1
     ator.resetar()
     self.assertIsNone(ator._tempo_de_colisao)
コード例 #21
0
 def teste_colisao_entre_atores_ativos(self):
     """
     Teste de colisão entre dois atores
     Incialmente atores possuem status ATIVO. Ao se chocarem, ele muda para Destruído
     A função assert_colisao_atores_ativos testa justamente se dois atore ativos se chocam quando estão em posições
     vizinhas.
     """
     ator = Ator(2, 2)  # Ator recém criado deve ter status ativo
     ator2 = Ator(2, 2)
     self.assert_colisao_atores_ativos(ator, ator2)
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(2, 3))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(3, 3))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(3, 2))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(3, 1))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(2, 1))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(1, 1))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(1, 2))
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(1, 3))
コード例 #22
0
 def teste_status(self):
     passaro_vermelho = PassaroVermelho(1, 1)
     self.assertEqual('V', passaro_vermelho.caracter())
     outro_ator_na_mesma_posicao = Ator()
     passaro_vermelho.colidir(outro_ator_na_mesma_posicao)
     self.assertEqual('v', passaro_vermelho.caracter())
コード例 #23
0
 def teste_colisao_entre_atores_ativos_com_intervalo(self):
     # Com intervalo 2, diferente do padrão 1, essa colisão deveria acontecer
     self.assert_colisao_atores_ativos(Ator(2, 2), Ator(2, 4), 2)
コード例 #24
0
 def teste_colisao_somente_um_ator_destruido(self):
     ator = Ator(2, 2)
     ator.colidir(
         ator, 0
     )  # colidingo ator com ele mesmo para alterar seu status para destruido
     ator2 = Ator(2, 2)
     self.assert_nao_colisao(ator, ator2)
     self.assert_nao_colisao(Ator(2, 3), ator)
     self.assert_nao_colisao(Ator(3, 3), ator)
     self.assert_nao_colisao(Ator(3, 2), ator)
     self.assert_nao_colisao(Ator(3, 1), ator)
     self.assert_nao_colisao(Ator(2, 1), ator)
     self.assert_nao_colisao(Ator(1, 1), ator)
     self.assert_nao_colisao(Ator(1, 2), ator)
     self.assert_nao_colisao(Ator(1, 3), ator)
     self.assert_nao_colisao(ator2, ator)
     self.assert_nao_colisao(Ator(2, 3), ator)
     self.assert_nao_colisao(Ator(3, 3), ator)
     self.assert_nao_colisao(Ator(3, 2), ator)
     self.assert_nao_colisao(Ator(3, 1), ator)
     self.assert_nao_colisao(Ator(2, 1), ator)
     self.assert_nao_colisao(Ator(1, 1), ator)
     self.assert_nao_colisao(Ator(1, 2), ator)
     self.assert_nao_colisao(Ator(1, 3), ator)
コード例 #25
0
 def teste_colisao_somente_um_ator_destruido(self):
     'Teste de que um ator destruído não pode colidir com nenhum outro, mesmo que estejam próximos'
     ator = Ator(2, 2)
     ator.colidir(
         ator, 0
     )  # colidindo ator com ele mesmo para alterar seu status para destruido
     ator2 = Ator(2, 2)
     self.assert_nao_colisao(ator, ator2)
     self.assert_nao_colisao(Ator(2, 3), ator)
     self.assert_nao_colisao(Ator(3, 3), ator)
     self.assert_nao_colisao(Ator(3, 2), ator)
     self.assert_nao_colisao(Ator(3, 1), ator)
     self.assert_nao_colisao(Ator(2, 1), ator)
     self.assert_nao_colisao(Ator(1, 1), ator)
     self.assert_nao_colisao(Ator(1, 2), ator)
     self.assert_nao_colisao(Ator(1, 3), ator)
     self.assert_nao_colisao(ator2, ator)
     self.assert_nao_colisao(Ator(2, 3), ator)
     self.assert_nao_colisao(Ator(3, 3), ator)
     self.assert_nao_colisao(Ator(3, 2), ator)
     self.assert_nao_colisao(Ator(3, 1), ator)
     self.assert_nao_colisao(Ator(2, 1), ator)
     self.assert_nao_colisao(Ator(1, 1), ator)
     self.assert_nao_colisao(Ator(1, 2), ator)
     self.assert_nao_colisao(Ator(1, 3), ator)
コード例 #26
0
 def test_caracter(self):
     'Teste de caracter para ator ATIVO e DESTRUIDO'
     ator = Ator()
     self.assert_ator_caracteres(ator, 'A', ' ')