|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires de la caméra de suivi : zone morte, anticipation, lissage, bornage (EX-REN-016, LOT-64 TACHE-02). More...
#include <vector>#include <gtest/gtest.h>#include "Core/Math/Rect.h"#include "Core/Math/Vector2.h"#include "HMI/Graphics/FollowCamera.h"Functions | |
| TEST (FollowCameraTest, PremierAppelDemarreSurLePersonnage) | |
| Le premier appel démarre la caméra directement sur le personnage (borné), sans lissage depuis une position par défaut arbitraire. | |
| TEST (FollowCameraTest, ZoneMorteImmobiliseLaCameraTantQueLePersonnageYReste) | |
| Un déplacement à l'intérieur de la zone morte ne déplace pas la caméra ; en sortir la déplace. | |
| TEST (FollowCameraTest, BornageEmpecheDeMontrerHorsDesLimitesSurLesQuatreBords) | |
| Sur un niveau plus grand que le cadrage, la caméra ne montre jamais au-delà des limites, sur les quatre bords. | |
| TEST (FollowCameraTest, NiveauPlusEtroitQueLeCadrageCentreLaCameraSurCetAxe) | |
| Un niveau plus étroit que le cadrage sur un axe centre la caméra sur cet axe, plutôt que de la coller à un bord. | |
| TEST (FollowCameraTest, AnticipationSInverseProgressivementSansDiscontinuite) | |
| L'anticipation s'inverse progressivement au changement de sens : après un pas dans le nouveau sens, elle n'a pas encore atteint la valeur opposée – pas de discontinuité. | |
| TEST (FollowCameraTest, ArretConserveLaDerniereAnticipation) | |
| À l'arrêt (sens nul), l'anticipation conserve sa dernière valeur plutôt que de revenir à zéro. | |
| TEST (FollowCameraTest, MemesEntreesMemeTrajectoire) | |
| Mêmes entrées, même trajectoire de caméra (déterminisme, EX-NFR-002). | |
| TEST (FollowCameraTest, SuiviIsotropeSurLesDeuxAxes) | |
| Le suivi est isotrope : marcher vers le bas décale la caméra exactement autant que marcher vers la droite (EX-EXP-001, LOT-07). | |
| TEST (FollowCameraTest, AnticipationVerticale) | |
| L'anticipation suit la direction de marche sur les deux axes : marcher vers le haut décale la caméra vers le haut (LOT-07). | |
Tests unitaires de la caméra de suivi : zone morte, anticipation, lissage, bornage (EX-REN-016, LOT-64 TACHE-02).
| TEST | ( | FollowCameraTest | , |
| AnticipationSInverseProgressivementSansDiscontinuite | ) |
L'anticipation s'inverse progressivement au changement de sens : après un pas dans le nouveau sens, elle n'a pas encore atteint la valeur opposée – pas de discontinuité.
Cas de test : L'anticipation s'inverse progressivement, sans discontinuité.
Categorie : Unitaire · Follow Camera
Criticite : Majeur
Etapes :
1. Avancer de nombreux pas vers la droite (anticipation proche de +1).
2. Inverser le sens d'un seul pas.
Resultat attendu : L'anticipation reste strictement positive juste après l'inversion (elle a commencé à revenir, mais n'a pas sauté à -1).
| TEST | ( | FollowCameraTest | , |
| AnticipationVerticale | ) |
L'anticipation suit la direction de marche sur les deux axes : marcher vers le haut décale la caméra vers le haut (LOT-07).
Cas de test : L'anticipation suit la marche verticale, pas seulement l'horizontale.
Categorie : Unitaire · Camera de suivi
Criticite : Majeur
Etapes :
1. Faire marcher le personnage vers le haut, sans bouger, sur 60 pas.
Resultat attendu : L'anticipation verticale s'etablit vers le haut, l'horizontale reste nulle.
| TEST | ( | FollowCameraTest | , |
| ArretConserveLaDerniereAnticipation | ) |
À l'arrêt (sens nul), l'anticipation conserve sa dernière valeur plutôt que de revenir à zéro.
Cas de test : À l'arrêt, l'anticipation conserve sa dernière valeur.
Categorie : Unitaire · Follow Camera
Criticite : Mineur
Etapes :
1. Établir une anticipation vers la droite.
2. Avancer un pas avec un sens nul (personnage immobile).
Resultat attendu : L'anticipation reste inchangée.
| TEST | ( | FollowCameraTest | , |
| BornageEmpecheDeMontrerHorsDesLimitesSurLesQuatreBords | ) |
Sur un niveau plus grand que le cadrage, la caméra ne montre jamais au-delà des limites, sur les quatre bords.
Cas de test : Le bornage empêche de montrer hors des limites du niveau, sur les quatre bords.
Categorie : Unitaire · Follow Camera
Criticite : Critique
Etapes :
1. Amener le personnage successivement dans chaque coin du niveau.
2. Avancer suffisamment de pas pour que la caméra rattrape sa cible.
Resultat attendu : Le centre reste toujours à au moins une demi-largeur/demi-hauteur de cadrage des bords du niveau, sur les quatre côtés.
| TEST | ( | FollowCameraTest | , |
| MemesEntreesMemeTrajectoire | ) |
Mêmes entrées, même trajectoire de caméra (déterminisme, EX-NFR-002).
Cas de test : Mêmes entrées, même trajectoire de caméra.
Categorie : Unitaire · Follow Camera
Criticite : Majeur
Etapes :
1. Rejouer deux fois la même séquence de positions depuis un état vierge.
2. Comparer les états finaux.
Resultat attendu : Les deux trajectoires produisent exactement le même état final.
| TEST | ( | FollowCameraTest | , |
| NiveauPlusEtroitQueLeCadrageCentreLaCameraSurCetAxe | ) |
Un niveau plus étroit que le cadrage sur un axe centre la caméra sur cet axe, plutôt que de la coller à un bord.
Cas de test : Un axe plus étroit que le cadrage centre la caméra, sans la coller à un bord.
Categorie : Unitaire · Follow Camera
Criticite : Majeur
Etapes :
1. Construire un niveau plus étroit que le cadrage sur l'axe horizontal.
2. Amener le personnage tout contre le bord gauche puis avancer suffisamment de pas.
Resultat attendu : Le centre horizontal reste au milieu du niveau, jamais collé au bord.
| TEST | ( | FollowCameraTest | , |
| PremierAppelDemarreSurLePersonnage | ) |
Le premier appel démarre la caméra directement sur le personnage (borné), sans lissage depuis une position par défaut arbitraire.
Cas de test : Le premier appel démarre la caméra sur le personnage.
Categorie : Unitaire · Follow Camera
Criticite : Majeur
Etapes :
1. Avancer un état non initialisé pour un personnage loin des bords.
2. Vérifier le centre résultant.
Resultat attendu : Le centre résultant est exactement la position du personnage.
| TEST | ( | FollowCameraTest | , |
| SuiviIsotropeSurLesDeuxAxes | ) |
Le suivi est isotrope : marcher vers le bas décale la caméra exactement autant que marcher vers la droite (EX-EXP-001, LOT-07).
La zone morte du jeu de plateforme était plus large que haute, et l'anticipation purement horizontale : deux biais qui n'ont plus lieu d'être dès lors qu'aucun axe n'est privilégié. Cas de test : Le suivi est isotrope : haut, bas, gauche et droite se valent.
Categorie : Unitaire · Camera de suivi
Criticite : Majeur
Etapes :
1. Faire marcher le personnage vers la droite sur 60 pas, camera suivie.
2. Recommencer vers le bas.
Resultat attendu : Les deux deplacements de camera ont la meme amplitude.
| TEST | ( | FollowCameraTest | , |
| ZoneMorteImmobiliseLaCameraTantQueLePersonnageYReste | ) |
Un déplacement à l'intérieur de la zone morte ne déplace pas la caméra ; en sortir la déplace.
Cas de test : La zone morte immobilise la caméra tant que le personnage y reste.
Categorie : Unitaire · Follow Camera
Criticite : Critique
Etapes :
1. Initialiser la caméra sur le personnage.
2. Déplacer le personnage d'une distance inférieure à la zone morte.
3. Le déplacer d'une distance qui en sort.
Resultat attendu : Le déplacement interne à la zone morte ne change ni l'ancre ni le centre visé ; sortir de la zone morte déplace l'ancre.