示例#1
0
def test_genere_voisins():
    """Test standard."""
    entree = Grille([1, 2, "x", "x", "x", "x", 1, 2, 2, "x", "x", 3, "x", 3, 2, "x"])
    attendu = [
        Grille([1, 2, 1, "x", "x", "x", 1, 2, 2, "x", "x", 3, "x", 3, 2, "x"]),
        Grille([1, 2, 2, "x", "x", "x", 1, 2, 2, "x", "x", 3, "x", 3, 2, "x"]),
        Grille([1, 2, 3, "x", "x", "x", 1, 2, 2, "x", "x", 3, "x", 3, 2, "x"]),
        Grille([1, 2, 4, "x", "x", "x", 1, 2, 2, "x", "x", 3, "x", 3, 2, "x"]),
    ]
    sortie = __genere_voisins(entree)
    assert attendu == sortie
示例#2
0
 def test_par_ligne(self):
     """Test le constructeur par table."""
     generee = Grille.par_lignes(
         [
             [1, 2, 3, 4],
             [3, 4, 1, 2],
             [2, 1, 4, 3],
             [4, 3, 2, 1],
         ]
     )
     attendue = Grille([1, 2, 3, 4, 3, 4, 1, 2, 2, 1, 4, 3, 4, 3, 2, 1])
     assert attendue == generee
示例#3
0
    def test_verifie_carres(self):
        essai = Grille.par_str(
            """
12xx
xx12
2xx3
x32x
"""
        )
        assert essai._verifie_carres()
        essai = Grille([1, 2, 3, 4, 2, 1, 4, 3, 3, 4, 1, 2, 4, 3, 2, 1])
        assert not essai._verifie_carres()
示例#4
0
    def test_par_str_x(self):
        """Test le constructeur par str avec cases vides."""
        generee = Grille.par_str(
            """
x234
3x12
21x3
432x
"""
        )
        attendue = Grille(["x", 2, 3, 4, 3, "x", 1, 2, 2, 1, "x", 3, 4, 3, 2, "x"])
        assert attendue == generee
示例#5
0
    def test_par_str(self):
        """Test le constructeur par str."""
        generee = Grille.par_str(
            """
1234
3412
2143
4321
"""
        )
        attendue = Grille([1, 2, 3, 4, 3, 4, 1, 2, 2, 1, 4, 3, 4, 3, 2, 1])
        assert attendue == generee
示例#6
0
 def test_par_ligne_x(self):
     """Test le constructeur par table avec des cases vides."""
     generee = Grille.par_lignes(
         [
             ["x", 2, 3, 4],
             [3, "x", 1, 2],
             [2, 1, "x", 3],
             [4, 3, 2, "x"],
         ]
     )
     attendue = Grille(["x", 2, 3, 4, 3, "x", 1, 2, 2, 1, "x", 3, 4, 3, 2, "x"])
     assert attendue == generee
示例#7
0
def test_recupere_premier_x():
    """Test un cas standard."""
    entree = Grille(
        [
            1,
            2,
            "x",
            "x",
            "x",
            "x",
            1,
            2,
            2,
            "x",
            "x",
            3,
            "x",
            3,
            2,
            "x",
        ]
    )
    sortie = __recupere_premier_x(entree)
    attendu = 2
    assert attendu == sortie
示例#8
0
def test_insere_valeur():
    """Vérifie qu'on a bien une nouvelle grille et la bonne valeur."""
    essai = Grille(
        [
            1,
            2,
            "x",
            "x",
            "x",
            "x",
            1,
            2,
            2,
            "x",
            "x",
            3,
            "x",
            3,
            2,
            "x",
        ]
    )
    identification = id(essai)
    nouvelle = __insere_valeur(grille=essai, indice=0, valeur=4)
    assert identification != id(nouvelle)
    assert nouvelle[0] == 4
示例#9
0
 def test_repr(self):
     """Test de l'affichage repr."""
     essai = Grille(
         [
             1,
             2,
             "x",
             "x",
             "x",
             "x",
             1,
             2,
             2,
             "x",
             "x",
             3,
             "x",
             3,
             2,
             "x",
         ]
     )
     assert (
         repr(essai)
         == "Grille(cases=[1, 2, 'x', 'x', 'x', 'x', 1, 2, 2, 'x', 'x', 3, 'x', 3, 2, 'x'])"
     )
示例#10
0
 def test_getitem(self):
     """Teste l'accès par indice."""
     essai = Grille(
         [
             1,
             2,
             "x",
             "x",
             "x",
             "x",
             1,
             2,
             2,
             "x",
             "x",
             3,
             "x",
             3,
             2,
             "x",
         ]
     )
     assert essai[0] == 1
     assert essai[-1] == "x"
     assert essai[1:5] == [2, "x", "x", "x"]
示例#11
0
 def test_eq(self):
     """Vérifie qu'on teste l'égalité et pas l'identité."""
     cases = [
         1,
         2,
         "x",
         "x",
         "x",
         "x",
         1,
         2,
         2,
         "x",
         "x",
         3,
         "x",
         3,
         2,
         "x",
     ]
     assert Grille(cases) == Grille(cases)
示例#12
0
 def test_iter(self):
     """Vérifie qu'on itère bien sur les cases."""
     essai = Grille(
         [
             1,
             2,
             "x",
             "x",
             "x",
             "x",
             1,
             2,
             2,
             "x",
             "x",
             3,
             "x",
             3,
             2,
             "x",
         ]
     )
     assert list(essai) == [
         1,
         2,
         "x",
         "x",
         "x",
         "x",
         1,
         2,
         2,
         "x",
         "x",
         3,
         "x",
         3,
         2,
         "x",
     ]
示例#13
0
 def test_init(self):
     """Test l'instanciation normale."""
     creation = Grille(
         [
             1,
             2,
             "x",
             "x",
             "x",
             "x",
             1,
             2,
             2,
             "x",
             "x",
             3,
             "x",
             3,
             2,
             "x",
         ]
     )
     assert isinstance(creation, Grille)
示例#14
0
 def test_setitem(self):
     """Teste l'insertion par indice."""
     essai = Grille(
         [
             1,
             2,
             "x",
             "x",
             "x",
             "x",
             1,
             2,
             2,
             "x",
             "x",
             3,
             "x",
             3,
             2,
             "x",
         ]
     )
     essai[0] = "x"
     assert essai[0] == "x"
示例#15
0
    def test_str(self):
        """Test de l'affichage str."""
        essai = Grille(
            [
                1,
                2,
                "x",
                "x",
                "x",
                "x",
                1,
                2,
                2,
                "x",
                "x",
                3,
                "x",
                3,
                2,
                "x",
            ]
        )
        assert (
            str(essai)
            == """
-----------------
| 1 | 2 | x | x |
-----------------
| x | x | 1 | 2 |
-----------------
| 2 | x | x | 3 |
-----------------
| x | 3 | 2 | x |
-----------------
"""
        )
示例#16
0
 def test_verifie_colonnes(self):
     essai = Grille(
         [
             1,
             2,
             "x",
             "x",
             "x",
             "x",
             1,
             2,
             2,
             "x",
             "x",
             3,
             "x",
             3,
             2,
             "x",
         ]
     )
     assert essai._verifie_colonnes()
     essai = Grille(
         [
             1,
             2,
             "x",
             "x",
             1,
             "x",
             1,
             2,
             2,
             "x",
             "x",
             3,
             "x",
             3,
             2,
             "x",
         ]
     )
     assert not essai._verifie_lignes()
示例#17
0
 def test_est_valide(self):
     essai = Grille([1, 2, 3, 4, 2, 1, 4, 3, 3, 4, 1, 2, 4, 3, 2, 1])
     assert not essai.est_valide()
     essai = Grille([1, 2, 3, 4, 3, 4, 1, 2, 2, 1, 4, 3, 4, 3, 2, 1])
     assert essai.est_valide()
示例#18
0
 def test_init_mauvaise_taille(self):
     """Test la détection du mauvais nombre de cases."""
     with pytest.raises(ValueError):
         creation = Grille([1, 2, 3, 4])
示例#19
0
def test_genere_solutions():
    """Regarde les solutions."""
    essai = Grille([1, 2, 3, 4, 3, 4, 1, 2, 2, 1, 4, 3, 4, 3, 2, "x"])
    assert list(genere_solutions(essai)) == [
        Grille([1, 2, 3, 4, 3, 4, 1, 2, 2, 1, 4, 3, 4, 3, 2, 1])
    ]
示例#20
0
def test_genere_voisins_vide():
    """Teste une grille complète."""
    entree = Grille([1, 2, 3, 4, 3, 4, 1, 2, 2, 1, 4, 3, 4, 3, 2, 1])
    sortie = __genere_voisins(entree)
    attendu = list()
    assert sortie == attendu
示例#21
0
 def test_init_mauvaise_valeur(self):
     """Test la détection d'une mauvaise valeur en entrée."""
     with pytest.raises(ValueError):
         creation = Grille(cases=[i for i in range(16)])
示例#22
0
def test_recupere_premier_x_vide():
    """Test génération exception avec absence de x."""
    entree = Grille([1, 2, 3, 4, 3, 4, 1, 2, 2, 1, 4, 3, 4, 3, 2, 1])
    with pytest.raises(ValueError):
        _ = __recupere_premier_x(entree)