M431-ShadowHunterGame/tests/effet/action/ActionAttaquerTest.java

72 lines
1.3 KiB
Java
Raw Normal View History

package effet.action;
import static org.junit.Assert.assertTrue;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import main.Joueur;
import main.Plateau;
class ActionAttaquerTest {
Joueur j1;
Joueur j2;
Plateau p;
@BeforeEach
void init()
{
List<Joueur> joueurs = new ArrayList<Joueur>();
j1 = new Joueur("Michel");
j2 = new Joueur("Gérard");
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);
}
}
}