@@ -41,5 +41,33 @@ def teste_adicionar_passaro(self):
4141 self .assertListEqual ([passaro , passaro1 , passaro2 ], fase ._passaros )
4242
4343 def teste_acabou_sem_porcos (self ):
44- fase = Fase ()
45- self .assertTrue (fase .acabou (0 ))
44+ fase = Fase ()
45+ self .assertTrue (fase .acabou (0 ))
46+
47+ def teste_acabou_com_porcos_e_passaros (self ):
48+ fase = Fase ()
49+ porcos = [Porco (1 , 1 ) for i in range (2 )]
50+ passaros = [PassaroAmarelo (1 , 1 ) for i in range (2 )]
51+ fase .adicionar_porco (* porcos )
52+ fase .adicionar_passaro (* passaros )
53+ self .assertFalse (fase .acabou (0 ))
54+ self .assertFalse (fase .acabou (2.9 ))
55+ self .assertFalse (fase .acabou (3 ))
56+
57+ for passaro , porco in zip (passaros , porcos ):
58+ passaro .colidir (porco , 3 )
59+
60+ self .assertFalse (fase .acabou (0 ))
61+ self .assertFalse (fase .acabou (2.9 ))
62+ self .assertTrue (fase .acabou (3 ))
63+
64+ fase .adicionar_obstaculo (Obstaculo ())
65+ self .assertTrue (fase .acabou (3 ), 'Obstáculo não interfere no fim do jogo' )
66+
67+ fase .adicionar_porco (Porco ())
68+ self .assertTrue (fase .acabou (3 ), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar' )
69+
70+ fase .adicionar_porco (PassaroAmarelo ())
71+ self .assertTrue (fase .acabou (3 ), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar' )
72+
73+
0 commit comments