JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
test_top_down_movement.cpp File Reference

Tests unitaires du déplacement libre en 8 directions (EX-EXP-001 à EX-EXP-004, LOT-06). More...

Functions

 TEST (DeplacementTopDownTest, LaDiagonaleNEstPasPlusRapide)
 La diagonale n'est pas plus rapide que la marche cardinale (EX-EXP-001).
 TEST (DeplacementTopDownTest, LesQuatreDirectionsCardinalesSontEquivalentes)
 Marcher vers le haut va aussi vite que marcher vers la droite : aucun axe n'est privilégié, faute de gravité (EX-EXP-001).
 TEST (DeplacementTopDownTest, AucuneTraverseeDeMurAVitesseAbsurde)
 Le personnage ne traverse aucun mur, même lancé à une vitesse absurde : le balayage est continu (EX-EXP-002).
 TEST (DeplacementTopDownTest, GlissementLeLongDUnMurPrisEnBiais)
 Un mur pris en biais laisse glisser le long de sa surface : l'axe libre continue d'avancer (EX-EXP-003).
 TEST (DeplacementTopDownTest, PousserContreUnMurNAccumuleAucunElan)
 Pousser contre un mur n'accumule aucun élan : la vitesse de l'axe bloqué est annulée (EX-EXP-003).
 TEST (DeplacementTopDownTest, OrientationConserveeALArret)
 L'orientation suit la marche et survit à l'arrêt : un personnage immobile regarde là où il allait (EX-EXP-004).
 TEST (DeplacementTopDownTest, IntentionRelacheeArreteNet)
 Intention relâchée : le personnage s'arrête net, sans dérive résiduelle (EX-EXP-001).
 TEST (DeplacementTopDownTest, MemesEntreesMemesPositionsSur600Pas)
 Déterminisme : mêmes entrées, mêmes positions, sur 600 pas (EX-NFR-002).
 TEST (DeplacementTopDownTest, EntiteSansActeurIgnoree)
 Une entité incomplète (sans Actor) est ignorée sans plantage (EX-NFR-040).

Detailed Description

Tests unitaires du déplacement libre en 8 directions (EX-EXP-001 à EX-EXP-004, LOT-06).

Logique pure : ni fenêtre, ni GPU (EX-ARCH-001).

Function Documentation

◆ TEST() [1/9]

TEST ( DeplacementTopDownTest ,
AucuneTraverseeDeMurAVitesseAbsurde  )

Le personnage ne traverse aucun mur, même lancé à une vitesse absurde : le balayage est continu (EX-EXP-002).

Cas de test : Un acteur lance a vitesse absurde ne traverse pas un mur.
Categorie : Unitaire · Deplacement top-down
Criticite : Critique
Etapes :
1. Poser un acteur pres du mur de droite, avec une vitesse de 1000 unites/s.
2. Avancer d'un pas.
Resultat attendu : L'acteur s'arrete contre le mur, du bon cote.

◆ TEST() [2/9]

TEST ( DeplacementTopDownTest ,
EntiteSansActeurIgnoree  )

Une entité incomplète (sans Actor) est ignorée sans plantage (EX-NFR-040).

Cas de test : Une entite sans composant Actor est ignoree sans planter.
Categorie : Unitaire · Deplacement top-down
Criticite : Mineur
Etapes :
1. Creer une entite portant Transform, Velocity et Collider, mais pas Actor.
2. Lui appliquer un pas de deplacement.
Resultat attendu : Sa position n'a pas bouge, et rien n'a plante.

◆ TEST() [3/9]

TEST ( DeplacementTopDownTest ,
GlissementLeLongDUnMurPrisEnBiais  )

Un mur pris en biais laisse glisser le long de sa surface : l'axe libre continue d'avancer (EX-EXP-003).

Cas de test : Un mur pris en biais laisse glisser le long de sa surface.
Categorie : Unitaire · Deplacement top-down
Criticite : Critique
Etapes :
1. Placer un acteur contre le mur du haut.
2. Marcher en diagonale haut-droite pendant 60 pas.
Resultat attendu : L'acteur n'a pas traverse le mur, mais a bien avance vers la droite.

◆ TEST() [4/9]

TEST ( DeplacementTopDownTest ,
IntentionRelacheeArreteNet  )

Intention relâchée : le personnage s'arrête net, sans dérive résiduelle (EX-EXP-001).

Cas de test : Intention relachee, l'acteur s'arrete net.
Categorie : Unitaire · Deplacement top-down
Criticite : Majeur
Etapes :
1. Lancer un acteur a pleine vitesse.
2. Relacher l'intention pendant 60 pas.
Resultat attendu : Sa vitesse est exactement nulle, et sa position ne bouge plus.

◆ TEST() [5/9]

TEST ( DeplacementTopDownTest ,
LaDiagonaleNEstPasPlusRapide  )

La diagonale n'est pas plus rapide que la marche cardinale (EX-EXP-001).

Sans normalisation de l'intention, aller en diagonale donnerait √2 ≈ 1,41 fois la vitesse cardinale : le défaut le plus courant du genre, et le plus visible en jeu. Cas de test : La diagonale n'est pas plus rapide que la marche cardinale.
Categorie : Unitaire · Deplacement top-down
Criticite : Critique
Etapes :
1. Faire marcher un acteur vers la droite pendant 60 pas.
2. Faire marcher un second acteur en diagonale bas-droite pendant 60 pas.
Resultat attendu : Les deux distances parcourues sont egales.

◆ TEST() [6/9]

TEST ( DeplacementTopDownTest ,
LesQuatreDirectionsCardinalesSontEquivalentes  )

Marcher vers le haut va aussi vite que marcher vers la droite : aucun axe n'est privilégié, faute de gravité (EX-EXP-001).

Cas de test : Aucun axe n'est privilegie : la marche est isotrope.
Categorie : Unitaire · Deplacement top-down
Criticite : Majeur
Etapes :
1. Faire marcher un acteur vers chacune des quatre directions cardinales, 30 pas.
Resultat attendu : Les quatre distances parcourues sont egales.

◆ TEST() [7/9]

TEST ( DeplacementTopDownTest ,
MemesEntreesMemesPositionsSur600Pas  )

Déterminisme : mêmes entrées, mêmes positions, sur 600 pas (EX-NFR-002).

Cas de test : Memes entrees, memes positions sur 600 pas.
Categorie : Unitaire · Deplacement top-down
Criticite : Critique
Etapes :
1. Rejouer deux fois la meme sequence de 600 intentions variables.
2. Comparer les trajectoires pas a pas.
Resultat attendu : Les deux trajectoires coincident exactement, au bit pres.

◆ TEST() [8/9]

TEST ( DeplacementTopDownTest ,
OrientationConserveeALArret  )

L'orientation suit la marche et survit à l'arrêt : un personnage immobile regarde là où il allait (EX-EXP-004).

Cas de test : L'orientation suit la marche et survit a l'arret.
Categorie : Unitaire · Deplacement top-down
Criticite : Majeur
Etapes :
1. Marcher vers le bas, puis relacher l'intention pendant 60 pas.
Resultat attendu : L'orientation vaut toujours (0, 1) apres l'arret.

◆ TEST() [9/9]

TEST ( DeplacementTopDownTest ,
PousserContreUnMurNAccumuleAucunElan  )

Pousser contre un mur n'accumule aucun élan : la vitesse de l'axe bloqué est annulée (EX-EXP-003).

Cas de test : Pousser contre un mur n'accumule aucun elan.
Categorie : Unitaire · Deplacement top-down
Criticite : Majeur
Etapes :
1. Pousser un acteur contre le mur de droite pendant 120 pas.
Resultat attendu : Sa vitesse horizontale est nulle, et sa position n'a pas depasse le mur.