package effet.action; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import main.Joueur; import main.Plateau; import personnage.Allie; class ActionAttaquerTest { Joueur j1; Joueur j2; Plateau p; @BeforeEach void init() { List joueurs = new ArrayList(); j1 = new Joueur("Michel"); j2 = new Joueur("Gérard"); Allie allie1 = new Allie(j1); Allie allie2 = new Allie(j2); joueurs.add(j1); joueurs.add(j2); p = new Plateau(joueurs); j1.setPlateau(p); j2.setPlateau(p); } /* * L'attaque du plateau se base sur des tirages aléatoires de dés. * La réussite moyenne d'une attaque est d'environ 80 % * En autorisant une erreur d'environ 2 % * * On vérifie que la différence du nombre d'attaques réussie avec la moyenne * des attaques réussie est bien inférieure à 2 %. */ @Test void attaquer_BaissePV() { int error = 2; ActionAttaquer aa = new ActionAttaquer(); int pvBaseJ2 = 100; for(int j = 0; j< 1000; j++) { int countNb = 0; for(int i = 0; i < 10000; i++) { j2.setStat(Joueur.PLAYER_HP, pvBaseJ2); aa.affecte(j1, j2); if(j2.getStat(Joueur.PLAYER_HP) < pvBaseJ2) countNb++; } countNb /= 100; assertTrue(Math.abs(countNb-80) <= error); } } }