def test_joueurCourantTrouveTresor(self): for noms in self.liste_noms: liste_joueurs = listeJoueurs.ListeJoueurs(noms) listeJoueurs.distribuerTresors(liste_joueurs, 16, 4) cpt = 4 for i in range(4): cpt -= 1 for j in range(len(noms)): jo = copy.deepcopy( listeJoueurs.getJoueurCourant(liste_joueurs)) joueur.tresorTrouve(jo) listeJoueurs.joueurCourantTrouveTresor(liste_joueurs) jo_res = listeJoueurs.getJoueurCourant(liste_joueurs) nbt = joueur.getNbTresorsRestants(jo_res) self.assertEqual( nbt, cpt, "Un joueur qui a trouvé " + str(i + 1) + " trésor(s) sur 4 devrait en avoir " + str(cpt) + " à trouver mais la fonction getNbTresorsRestants retourne " + str(nbt) + "\nCela peut provenir des fonctions ListeJoueurs, changerJoueurCourant, distribuerTresors ou joueurCourantTrouveTresor" ) self.assertEqual( jo, jo_res, "Il y a une incohérence entre les fonctions tresorTrouve et joueurCourantTrouveTresor" ) listeJoueurs.changerJoueurCourant(liste_joueurs)
def test_distribuerTresors(self): def recolter_tresor(jo): j=copy.deepcopy(jo) res=[] while joueur.getNbTresorsRestants(j)!=0: res.append(joueur.prochainTresor(j)) joueur.tresorTrouve(j) return res for noms in self.liste_noms: liste_joueurs=listeJoueurs.ListeJoueurs(noms) listeJoueurs.distribuerTresors(liste_joueurs,12,3) recolte=[] for i in range(len(noms)): tresors=recolter_tresor(listeJoueurs.getJoueurCourant(liste_joueurs)) self.assertEqual(len(tresors),3,"La distribution de 3 trésors compris entre 1 et 12 pour une liste de joueur créée à partir "+ str(noms)+" devrait donner 3 trésors à chaque joueur or votre fonction a donné "+str(len(tresors))+ " au joueur "+str(i+1)+ "\nCela peut provenir des fonctions ListeJoueurs, distribuerTresors ou getJoueurCourant") recolte.extend(tresors) listeJoueurs.changerJoueurCourant(liste_joueurs) recolte.sort() for i in range(len(recolte)-1): self.assertIn(recolte[i],list(range(1,13)),"La distribution de 3 trésors compris entre 1 et 12 pour une liste de joueur créée à partir "+ str(noms)+" a distribué un trésor inconnu "+str(recolte[i])) self.assertTrue(recolte[i]!=recolte[i+1],"La distribution de 3 trésors compris entre 1 et 12 pour une liste de joueur créée à partir "+ str(noms)+" a distribué deux fois le même trésor "+str(recolte[i])) self.assertIn(recolte[len(recolte)-1],list(range(1,13)),"La distribution de 3 trésors compris entre 1 et 12 pour une liste de joueur créée à partir "+ str(noms)+" a distribué un trésor inconnu "+str(recolte[len(recolte)-1]))
def test_nbTresorsRestantsJoueur(self): for noms in self.liste_noms: liste_joueurs=listeJoueurs.ListeJoueurs(noms) listeJoueurs.distribuerTresors(liste_joueurs,16,4) for i in range(1,len(noms)+1): nbt=listeJoueurs.nbTresorsRestantsJoueur(liste_joueurs,i) self.assertEqual(nbt,4,"Après avoir distribué 4 trésor à chaque joueur,"+ " nbTresorsRestantsJoueur devrait retourner 4 mais elle retourne "+ str(nbt)+ " le joueur "+str(i)+ "\nCela peut provenir des fonctions ListeJoueurs, distribuerTresors ou nbTresorsRestantsJoueur")
def test_joueurCourantAFini(self): for noms in self.liste_noms: liste_joueurs=listeJoueurs.ListeJoueurs(noms) for i in range(1,len(noms)+1): self.assertTrue(listeJoueurs.joueurCourantAFini(liste_joueurs),"Le joueur courant de la liste "+ str(liste_joueurs)+ " n'a aucun trésor la fonction joueurCourantAFini devrait retourner True"+ "\nCela peut provenir des fonctions ListeJoueurs ou joueurCourantAFini") listeJoueurs.changerJoueurCourant(liste_joueurs) listeJoueurs.distribuerTresors(liste_joueurs,16,4) for i in range(1,len(noms)+1): self.assertFalse(listeJoueurs.joueurCourantAFini(liste_joueurs),"Le joueur courant de la liste "+ str(liste_joueurs)+ " a 4 trésors la fonction joueurCourantAFini devrait retourner True"+ "\nCela peut provenir des fonctions distribuerTresors ou joueurCourantAFini") listeJoueurs.changerJoueurCourant(liste_joueurs)