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_changerJoueurCourant(self): for noms in self.liste_noms: liste_joueurs=listeJoueurs.ListeJoueurs(noms) taille=len(noms) for i in range(6): jca=joueur.Joueur(noms[i%taille]) jc=listeJoueurs.getJoueurCourant(liste_joueurs) self.assertEqual(joueur.getNom(jc),noms[i%taille],"Le joueur courant de la liste joueur créée à partir de "+str(noms)+" au bout de "+str(i)+ " tour(s) devrait être "+str(noms[i%taille])+" mais la fonction getJoueurCourant retourne "+str(joueur.getNom(jc))+ "\nCela peut provenir des fonctions ListeJoueurs, getJoueurCourant ou changerJoueurCourant") listeJoueurs.changerJoueurCourant(liste_joueurs)
def test_Joueur(self): for noms in self.liste_noms: liste_joueurs=listeJoueurs.ListeJoueurs(noms) jo=joueur.Joueur(noms[0]) nbj=listeJoueurs.getNbJoueurs(liste_joueurs) self.assertEqual(nbj,len(noms),"La liste de joueur crée à partir de "+str(noms)+" devrait contenir "+ str(len(noms))+" joueurs mais la fonction getNbJoueurs retourne "+str(nbj)+ "\nCela peut provenir des fonctions ListeJoueurs ou getNbJoueurs") jc=listeJoueurs.getJoueurCourant(liste_joueurs) self.assertEqual(joueur.getNom(jc),noms[0],"La liste de joueur crée à partir de "+str(noms)+" devrait avoir pour joueur courant "+ str(noms[0])+" mais la fonction getJoueurCourant retourne "+str(joueur.getNom(jc))+ "\nCela peut provenir des fonctions ListeJoueurs ou getJoueurCourant")