VampireTest
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
package personnage;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -39,18 +40,35 @@ class AllieTest {
|
||||
@Test
|
||||
void utiliser_SoinTotal() {
|
||||
|
||||
j1.setStat("HP", 0);
|
||||
j1.setStat(Joueur.PLAYER_HP, 0);
|
||||
j1.getCartePersonnage().utiliser();
|
||||
|
||||
int pvAllie = j1.getCartePersonnage().getPv();
|
||||
|
||||
assertEquals(pvAllie,j1.getStat("HP"));
|
||||
// Le joueur n'est pas révélé, le soin n'a pas eu lieu.
|
||||
assertEquals(j1.getStat(Joueur.PLAYER_HP),0);
|
||||
|
||||
j1.setStat("HP", 0);
|
||||
j1.setRevele(true);
|
||||
j1.getCartePersonnage().utiliser();
|
||||
|
||||
// Le soin n'a fonctionné qu'une seule fois
|
||||
assertEquals(0,j1.getStat("HP"));
|
||||
// Le soin a fonctionné la première fois, il est désormais "utilisé".
|
||||
assertEquals(j1.getStat(Joueur.PLAYER_HP),pvAllie);
|
||||
|
||||
|
||||
j1.setStat(Joueur.PLAYER_HP, 0);
|
||||
j1.getCartePersonnage().utiliser();
|
||||
|
||||
// Le soin a déjà été utilisé
|
||||
assertEquals(0,j1.getStat(Joueur.PLAYER_HP));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
void victoire() {
|
||||
|
||||
j1.setStat(Joueur.PLAYER_HP, 0);
|
||||
p.setStat(Plateau.PARTIE_FINIE, 1);
|
||||
assertTrue(a.victoire());
|
||||
|
||||
}
|
||||
|
||||
|
97
tests/personnage/VampireTest.java
Normal file
97
tests/personnage/VampireTest.java
Normal file
@ -0,0 +1,97 @@
|
||||
package personnage;
|
||||
|
||||
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 VampireTest {
|
||||
|
||||
Joueur j1;
|
||||
Joueur j2;
|
||||
Plateau p;
|
||||
Random rand;
|
||||
Vampire v;
|
||||
Allie a;
|
||||
|
||||
@BeforeEach
|
||||
void init()
|
||||
{
|
||||
rand = new Random();
|
||||
List<Joueur> joueurs = new ArrayList<Joueur>();
|
||||
j1 = new Joueur("Michel");
|
||||
j2 = new Joueur("Saad");
|
||||
|
||||
joueurs.add(j1);
|
||||
joueurs.add(j2);
|
||||
|
||||
p = new Plateau(joueurs);
|
||||
v = new Vampire(j1);
|
||||
a = new Allie(j2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Test
|
||||
void attaquer_Vampirisme() {
|
||||
|
||||
int pvVampireBase = 0;
|
||||
int pvAllieBase = a.getPv();
|
||||
|
||||
int countHP = 0;
|
||||
|
||||
for(int j = 0; j < 100; j++) {
|
||||
|
||||
countHP = 0;
|
||||
|
||||
for(int i = 0; i < 2000; i++) {
|
||||
|
||||
// Le joueur n'est pas révélé
|
||||
j1.setRevele(false);
|
||||
j1.setStat(Joueur.PLAYER_HP, pvVampireBase);
|
||||
j2.setStat(Joueur.PLAYER_HP, pvAllieBase);
|
||||
|
||||
p.attaquer(j1, j2);
|
||||
|
||||
// Vampire n'a pas récupéré de pv's lors de son attaque
|
||||
assertTrue(j1.getStat(Joueur.PLAYER_HP) == 0);
|
||||
|
||||
|
||||
// Joueur se révéle
|
||||
j1.reveal();
|
||||
j2.setStat(Joueur.PLAYER_HP, pvAllieBase);
|
||||
p.attaquer(j1, j2);
|
||||
|
||||
// Il récupère des pv's si la blessure est supérieure à 0
|
||||
// On compte le nombre de fois où il récupère des pv's
|
||||
if(j2.getStat(Joueur.PLAYER_HP) < pvAllieBase && j1.getStat(Joueur.PLAYER_HP) > 0) {
|
||||
countHP++;
|
||||
}
|
||||
}
|
||||
|
||||
// On boost le coverage
|
||||
v.utiliser();
|
||||
|
||||
// On ramène en %
|
||||
countHP /= 20;
|
||||
|
||||
// En moyenne une attaque réussie 80 % du temps, avec une marge d'erreur de 5 %
|
||||
assertTrue(Math.abs(80-countHP) < 5);
|
||||
}}
|
||||
|
||||
@Test
|
||||
void victoire() {
|
||||
|
||||
j1.setStat(Joueur.PLAYER_HP, 0);
|
||||
p.setStat( Plateau.NB_MORTS_NEUTRAL, 5);
|
||||
assertTrue(v.victoire());
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user