|
1 | 1 | # -*- coding: utf-8 -*- |
| 2 | +from itertools import chain |
2 | 3 |
|
3 | 4 | import os |
4 | 5 | from unittest.case import TestCase |
|
9 | 10 | project_dir = os.path.normpath(project_dir) |
10 | 11 | sys.path.append(project_dir) |
11 | 12 |
|
12 | | -from atores import Obstaculo, Porco, PassaroVermelho, PassaroAmarelo |
| 13 | +from atores import Obstaculo, Porco, PassaroVermelho, PassaroAmarelo, DESTRUIDO, ATIVO |
13 | 14 | from fase import Fase, Ponto |
14 | 15 | import placa_grafica |
15 | 16 |
|
@@ -48,23 +49,23 @@ def teste_adicionar_passaro(self): |
48 | 49 | fase.adicionar_passaro(passaro1, passaro2) |
49 | 50 | self.assertListEqual([passaro, passaro1, passaro2], fase._passaros) |
50 | 51 |
|
| 52 | + |
51 | 53 | def teste_acabou_sem_porcos(self): |
52 | 54 | fase = Fase() |
53 | 55 | self.assertTrue(fase.acabou(0)) |
54 | 56 |
|
55 | 57 | def teste_acabou_com_porcos_e_passaros(self): |
56 | 58 | fase = Fase() |
57 | | - porcos = [Porco(1, 1) for i in range(2)] #criando 2 porcos |
58 | | - passaros = [PassaroAmarelo(1, 1) for i in range(2)] #criando 2 pássaros |
| 59 | + porcos = [Porco(1, 1) for i in range(2)] # criando 2 porcos |
| 60 | + passaros = [PassaroAmarelo(1, 1) for i in range(2)] # criando 2 pássaros |
59 | 61 | fase.adicionar_porco(*porcos) |
60 | 62 | fase.adicionar_passaro(*passaros) |
61 | 63 |
|
62 | | - |
63 | 64 | self.assertFalse(fase.acabou(0)) |
64 | 65 | self.assertFalse(fase.acabou(2.9)) |
65 | 66 | self.assertFalse(fase.acabou(3)) |
66 | 67 |
|
67 | | - #colidingo cada passaro com um porco no tempo 3 |
| 68 | + # colidingo cada passaro com um porco no tempo 3 |
68 | 69 | for passaro, porco in zip(passaros, porcos): |
69 | 70 | passaro.colidir(porco, 3) |
70 | 71 |
|
@@ -155,6 +156,29 @@ def teste_calcular_pontos(self): |
155 | 156 | self.assertFalse(fase_exemplo.acabou(8.3)) |
156 | 157 | self.assertTrue(fase_exemplo.acabou(8.5)) |
157 | 158 |
|
| 159 | + def teste_resetar(self): |
| 160 | + fase_exemplo = criar_fase_exemplo() |
| 161 | + atores = list(chain(fase_exemplo._passaros, fase_exemplo._obstaculos, fase_exemplo._porcos)) |
| 162 | + fase_exemplo.calcular_pontos(0) |
| 163 | + |
| 164 | + fase_exemplo.calcular_pontos(4) |
| 165 | + |
| 166 | + fase_exemplo.calcular_pontos(7) |
| 167 | + fase_exemplo.calcular_pontos(8.5) |
| 168 | + |
| 169 | + self.assertFalse(fase_exemplo.acabou(8.3)) |
| 170 | + self.assertTrue(fase_exemplo.acabou(8.5)) |
| 171 | + # certificando que todos atore foram destruidos |
| 172 | + for a in atores: |
| 173 | + self.assertEqual(DESTRUIDO, a.status(8.5)) |
| 174 | + for p in fase_exemplo._passaros: |
| 175 | + self.assertTrue(p.foi_lancado(), 'Todos pássaros foram lançados') |
| 176 | + fase_exemplo.resetar() |
| 177 | + for a in atores: |
| 178 | + self.assertEqual(ATIVO, a.status(8.5), 'Após resetar atore devem voltar a ficar ativos') |
| 179 | + for p in fase_exemplo._passaros: |
| 180 | + self.assertFalse(p.foi_lancado(), 'Nenhum pássaro foi lançado') |
| 181 | + |
158 | 182 |
|
159 | 183 | def criar_fase_exemplo(): |
160 | 184 | fase_exemplo = Fase() |
|
0 commit comments