|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires du balayage AABB continu (sweepAabb) contre une grille de tuiles. More...
#include <gtest/gtest.h>#include "Core/Levels/TileMap.h"#include "Core/Levels/TileType.h"#include "Core/Math/Vector2.h"#include "Core/Physics/Aabb.h"#include "Core/Physics/SweptCollision.h"Functions | |
| TEST (SweptCollisionTest, TrajetLibre) | |
| Sans obstacle, la boîte parcourt tout son déplacement, sans contact. | |
| TEST (SweptCollisionTest, ButeeHorizontale) | |
| Un mur à droite stoppe le mouvement horizontal, la boîte s'arrête au ras du mur. | |
| TEST (SweptCollisionTest, ButeeVerticale) | |
| Un sol stoppe la chute : la boîte se pose dessus, normale vers le haut (appui au sol). | |
| TEST (SweptCollisionTest, NonTunneling) | |
| Cœur de la décision de cadrage : un pas plus grand qu'une tuile ne traverse pas le mur. | |
| TEST (SweptCollisionTest, GlissementLeLongDuMur) | |
| Glissement : en butant contre un mur vertical, la boîte continue de descendre le long du mur. | |
| TEST (SweptCollisionTest, ButeeGauche) | |
| Un mur à gauche stoppe le déplacement vers la gauche, bord gauche collé au mur. | |
| TEST (SweptCollisionTest, ButeePlafond) | |
| Un plafond stoppe la montée, bord haut collé sous le plafond. | |
| TEST (SweptCollisionTest, MarcheSurLeSolSansBlocageHorizontal) | |
| En marchant le long d'un sol, la boîte n'est pas bloquée horizontalement par ce sol (peau). | |
Tests unitaires du balayage AABB continu (sweepAabb) contre une grille de tuiles.
| TEST | ( | SweptCollisionTest | , |
| ButeeGauche | ) |
Un mur à gauche stoppe le déplacement vers la gauche, bord gauche collé au mur.
Cas de test : Balayage : butée horizontale (mur à gauche)
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Majeur
Etapes :
1. Mur solide à gauche.
2. Balayer la boîte vers la gauche.
Resultat attendu : La boîte s'arrête au ras du mur (bord gauche = bord droit du mur) ; normale opposée.
| TEST | ( | SweptCollisionTest | , |
| ButeeHorizontale | ) |
Un mur à droite stoppe le mouvement horizontal, la boîte s'arrête au ras du mur.
Cas de test : Balayage : butée horizontale (mur à droite)
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Bloquant
Etapes :
1. Placer un mur solide à droite.
2. Balayer la boîte vers la droite.
Resultat attendu : La boîte s'arrête au ras du mur (bord droit = bord du mur) ; normale horizontale.
| TEST | ( | SweptCollisionTest | , |
| ButeePlafond | ) |
Un plafond stoppe la montée, bord haut collé sous le plafond.
Cas de test : Balayage : butée verticale (plafond)
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Majeur
Etapes :
1. Plafond solide au-dessus.
2. Balayer la boîte vers le haut.
Resultat attendu : La boîte s'arrête sous le plafond (bord haut = bas du plafond) ; normale vers le bas.
| TEST | ( | SweptCollisionTest | , |
| ButeeVerticale | ) |
Un sol stoppe la chute : la boîte se pose dessus, normale vers le haut (appui au sol).
Cas de test : Balayage : butée verticale (sol)
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Bloquant
Etapes :
1. Placer un sol solide en dessous.
2. Balayer la boîte vers le bas.
Resultat attendu : La boîte se pose sur le sol (bord bas = haut du sol) ; normale vers le haut.
| TEST | ( | SweptCollisionTest | , |
| GlissementLeLongDuMur | ) |
Glissement : en butant contre un mur vertical, la boîte continue de descendre le long du mur.
Cas de test : Balayage : glissement le long d'un mur
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Bloquant
Etapes :
1. Mur vertical à droite.
2. Balayer d'un déplacement diagonal (droite + bas).
Resultat attendu : Bloquée en X (au ras du mur), mais la descente complète en Y a lieu (glissement).
| TEST | ( | SweptCollisionTest | , |
| MarcheSurLeSolSansBlocageHorizontal | ) |
En marchant le long d'un sol, la boîte n'est pas bloquée horizontalement par ce sol (peau).
Cas de test : Balayage : marcher sur un sol sans blocage horizontal
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Majeur
Etapes :
1. Sol continu ; boîte posée dessus.
2. Balayer horizontalement le long du sol.
Resultat attendu : Aucun blocage : la « peau » perpendiculaire évite de confondre marcher sur / buter contre.
| TEST | ( | SweptCollisionTest | , |
| NonTunneling | ) |
Cœur de la décision de cadrage : un pas plus grand qu'une tuile ne traverse pas le mur.
Cas de test : Balayage : non-tunneling à vitesse élevée
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Bloquant
Etapes :
1. Mur à 5 tuiles.
2. Balayer d'un déplacement de 10 (≫ une tuile) vers le mur.
Resultat attendu : La boîte s'arrête au ras du mur ; elle ne le traverse pas (garantie continue).
| TEST | ( | SweptCollisionTest | , |
| TrajetLibre | ) |
Sans obstacle, la boîte parcourt tout son déplacement, sans contact.
Cas de test : Balayage : trajet libre
Categorie : Unitaire · Physique · Balayage AABB
Criticite : Majeur
Etapes :
1. Grille sans tuile solide.
2. Balayer une boîte 1×1 d'un déplacement (3, 2).
Resultat attendu : Aucun contact ; la boîte atteint exactement la position visée.