def main():
    jdv = JogoDaVida()
    jdv.preenche_celulas_modular(modulo=3, espaco=5)
    jdv.show_board_game()

    for i in range(0, N_STEPS):
        jdv.execute_one_step()
        os.system('clear')
        jdv.show_board_game()
        time.sleep(.1)
示例#2
0
def main():
    jdv = JogoDaVida()

    # Preenchimento das celulas pelo metodo modular: sao preenchidas
    # modulo celulas e entao sao deixadas espaco celulas em branco, repetindo o
    # padrao ate o fim do campo
    jdv.preenche_celulas_modular(modulo=3, espaco=5)

    # Impressao que mostra a matriz inicial do jogo
    jdv.mostra_matriz_jogo()

    for i in range(0, QUANTIDADE_DE_PASSOS):
        jdv.executa_passo_jogo()
        jdv.mostra_matriz_jogo()
 def setUp(self):
     self.jdv = JogoDaVida(nlins=8, ncols=10, pop_baixa=2, pop_alta=3)
class TestJogoDaVida(unittest.TestCase):
    def setUp(self):
        self.jdv = JogoDaVida(nlins=8, ncols=10, pop_baixa=2, pop_alta=3)

    def test_property_nlins(self):
        self.assertEqual(self.jdv.nlins, 8)

    def test_property_ncols(self):
        self.assertEqual(self.jdv.ncols, 10)

    def test_property_pop_baixa(self):
        self.assertEqual(self.jdv.pop_baixa, 2)

    def test_property_pop_alta(self):
        self.assertEqual(self.jdv.pop_alta, 3)

    def test_property_matriz(self):
        elementos_matriz = len(self.jdv.matriz_jogo)
        self.assertEqual(elementos_matriz, 80)

    def test_levanta_excecao_ncols_invalido(self):
        with self.assertRaises(ValorEstruturalInvalido) as vl:
            jogodavida = JogoDaVida(ncols=-1)

        errormsg = vl.exception.value
        self.assertEqual(errormsg, "Numero de colunas menor que zero!")

    def test_levanta_excecao_nlins_invalido(self):
        with self.assertRaises(ValorEstruturalInvalido) as vl:
            jogodavida = JogoDaVida(nlins=-1)

        errormsg = vl.exception.value
        self.assertEqual(errormsg, "Numero de linhas menor que zero!")

    def test_nlins_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.nlins = 7

    def test_ncols_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.ncols = 7

    def test_pop_alta_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.pop_alta = 7

    def test_pop_baixa_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.pop_baixa = 7

    def test_matriz_jogo_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.matriz_jogo = 7

    def test_conversao_par_coordenada_para_unidim(self):
        conv_zero = self.jdv._par_coord_para_unidim(0, 0)
        self.assertEqual(conv_zero, 0)
        conv_limit = self.jdv._par_coord_para_unidim(7, 9)
        self.assertEqual(conv_limit, 79)

    def test_conversao_unidim_par_coordenada(self):
        conv_zero = self.jdv._unidim_para_par_coord(0)
        self.assertEqual(conv_zero, (0, 0))
        conv_limit = self.jdv._unidim_para_par_coord(79)
        self.assertEqual(conv_limit, (7, 9))

    def test_levanta_excecao_modulo_invalido(self):
        with self.assertRaises(ValorEstruturalInvalido) as vl:
            self.jdv.preenche_celulas_modular(modulo=-1, espaco=3)

        errormsg = vl.exception.value
        self.assertEqual(
            errormsg,
            "Valor de Modulo invalido. Deve ser maior do que zero.")

    def test_levanta_excecao_espaco_invalido(self):
        with self.assertRaises(ValorEstruturalInvalido) as vl:
            self.jdv.preenche_celulas_modular(modulo=3, espaco=-1)

        errormsg = vl.exception.value
        self.assertEqual(
            errormsg,
            "Valor de Espaco invalido. Deve ser maior do que zero.")

    def test_pos_dentro_dos_limites(self):
        dentro_limites_um = self.jdv._dentro_dos_limites(0, 0)
        dentro_limites_dois = self.jdv._dentro_dos_limites(7, 9)

        self.assertTrue(dentro_limites_um)
        self.assertTrue(dentro_limites_dois)

        abaixo_limites_um = self.jdv._dentro_dos_limites(0, -1)
        abaixo_limites_dois = self.jdv._dentro_dos_limites(-1, 0)
        self.assertFalse(abaixo_limites_um)
        self.assertFalse(abaixo_limites_dois)

        acima_limites_um = self.jdv._dentro_dos_limites(7, 10)
        acima_limites_dois = self.jdv._dentro_dos_limites(8, 9)
        self.assertFalse(acima_limites_um)
        self.assertFalse(acima_limites_dois)

    def test_conta_vizinhos_vazio(self):
        vizinhos = self.jdv._conta_vizinhos(0)
        self.assertEqual(vizinhos, 0)

    def test_conta_vizinhos_preenchido(self):
        self.jdv.preenche_celulas_modular(modulo=3, espaco=5)
        vizinhos = self.jdv._conta_vizinhos(7)
        self.assertEqual(vizinhos, 4)
示例#5
0
    def test_levanta_excecao_nlins_invalido(self):
        with self.assertRaises(ValorEstruturalInvalido) as vl:
            jogodavida = JogoDaVida(nlins=-1)

        errormsg = vl.exception.value
        self.assertEqual(errormsg, "Numero de linhas menor que zero!")
示例#6
0
 def setUp(self):
     self.jdv = JogoDaVida(nlins=8, ncols=10, pop_baixa=2, pop_alta=3)
示例#7
0
class TestJogoDaVida(unittest.TestCase):
    def setUp(self):
        self.jdv = JogoDaVida(nlins=8, ncols=10, pop_baixa=2, pop_alta=3)

    def test_property_nlins(self):
        self.assertEqual(self.jdv.nlins, 8)

    def test_property_ncols(self):
        self.assertEqual(self.jdv.ncols, 10)

    def test_property_pop_baixa(self):
        self.assertEqual(self.jdv.pop_baixa, 2)

    def test_property_pop_alta(self):
        self.assertEqual(self.jdv.pop_alta, 3)

    def test_property_matriz(self):
        elementos_matriz = len(self.jdv.matriz_jogo)
        self.assertEqual(elementos_matriz, 80)

    def test_levanta_excecao_ncols_invalido(self):
        with self.assertRaises(ValorEstruturalInvalido) as vl:
            jogodavida = JogoDaVida(ncols=-1)

        errormsg = vl.exception.value
        self.assertEqual(errormsg, "Numero de colunas menor que zero!")

    def test_levanta_excecao_nlins_invalido(self):
        with self.assertRaises(ValorEstruturalInvalido) as vl:
            jogodavida = JogoDaVida(nlins=-1)

        errormsg = vl.exception.value
        self.assertEqual(errormsg, "Numero de linhas menor que zero!")

    def test_nlins_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.nlins = 7

    def test_ncols_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.ncols = 7

    def test_pop_alta_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.pop_alta = 7

    def test_pop_baixa_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.pop_baixa = 7

    def test_matriz_jogo_somente_leitura(self):
        with self.assertRaises(AttributeError):
            self.jdv.matriz_jogo = 7

    def test_conversao_par_coordenada_para_unidim(self):
        conv_zero = self.jdv._par_coord_para_unidim(0, 0)
        self.assertEqual(conv_zero, 0)
        conv_limit = self.jdv._par_coord_para_unidim(7, 9)
        self.assertEqual(conv_limit, 79)

    def test_conversao_unidim_par_coordenada(self):
        conv_zero = self.jdv._unidim_para_par_coord(0)
        self.assertEqual(conv_zero, (0, 0))
        conv_limit = self.jdv._unidim_para_par_coord(79)
        self.assertEqual(conv_limit, (7, 9))

    def test_levanta_excecao_modulo_invalido(self):
        with self.assertRaises(ValorEstruturalInvalido) as vl:
            self.jdv.preenche_celulas_modular(modulo=-1, espaco=3)

        errormsg = vl.exception.value
        self.assertEqual(
            errormsg, "Valor de Modulo invalido. Deve ser maior do que zero.")

    def test_levanta_excecao_espaco_invalido(self):
        with self.assertRaises(ValorEstruturalInvalido) as vl:
            self.jdv.preenche_celulas_modular(modulo=3, espaco=-1)

        errormsg = vl.exception.value
        self.assertEqual(
            errormsg, "Valor de Espaco invalido. Deve ser maior do que zero.")

    def test_pos_dentro_dos_limites(self):
        dentro_limites_um = self.jdv._dentro_dos_limites(0, 0)
        dentro_limites_dois = self.jdv._dentro_dos_limites(7, 9)

        self.assertTrue(dentro_limites_um)
        self.assertTrue(dentro_limites_dois)

        abaixo_limites_um = self.jdv._dentro_dos_limites(0, -1)
        abaixo_limites_dois = self.jdv._dentro_dos_limites(-1, 0)
        self.assertFalse(abaixo_limites_um)
        self.assertFalse(abaixo_limites_dois)

        acima_limites_um = self.jdv._dentro_dos_limites(7, 10)
        acima_limites_dois = self.jdv._dentro_dos_limites(8, 9)
        self.assertFalse(acima_limites_um)
        self.assertFalse(acima_limites_dois)

    def test_conta_vizinhos_vazio(self):
        vizinhos = self.jdv._conta_vizinhos(0)
        self.assertEqual(vizinhos, 0)

    def test_conta_vizinhos_preenchido(self):
        self.jdv.preenche_celulas_modular(modulo=3, espaco=5)
        vizinhos = self.jdv._conta_vizinhos(7)
        self.assertEqual(vizinhos, 4)