|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires de core::GridDistanceField (amendement LOT-ANNEXE-08, EX-IA-023). More...
#include <gtest/gtest.h>#include "Core/Levels/GridPosition.h"#include "Core/Levels/TileMap.h"#include "Core/Levels/TileType.h"#include "Core/World/GridDistanceField.h"Functions | |
| TEST (GridDistanceFieldTest, DistanceDeLaCibleAElleMemeEstNulle) | |
| La cible a une distance de zéro à elle-même. | |
| TEST (GridDistanceFieldTest, GrilleOuverteEgaleDistanceDeManhattan) | |
| Sur une grille ouverte, la distance vaut la distance de Manhattan (BFS 4-connexe sans obstacle). | |
| TEST (GridDistanceFieldTest, MurSeparateurCompletRendInatteignable) | |
| Un mur entièrement séparateur rend les cases de l'autre côté inatteignables (distance sentinelle), sans planter. | |
| TEST (GridDistanceFieldTest, MurPartielForceUnDetourPlusLongQueLaLigneDirecte) | |
| Un mur partiel force un détour : la distance de grille suit le chemin réel, plus longue que la distance de Manhattan en ligne directe. | |
| TEST (GridDistanceFieldTest, CaseHorsGrilleRenvoieLaSentinelle) | |
| Une case hors-grille renvoie la distance sentinelle sans planter. | |
| TEST (GridDistanceFieldTest, MultiCiblesDistanceALaPlusProche) | |
| Le constructeur multi-cibles renvoie la distance à la plus proche des cibles fournies (amendement LOT-ANNEXE-21). | |
| TEST (GridDistanceFieldTest, MultiCiblesIgnoreUneCibleSolideOuHorsGrille) | |
| Une cible solide ou hors-grille dans la liste multi-cibles est ignorée, sans empêcher les autres cibles valides de produire un champ atteignable. | |
Tests unitaires de core::GridDistanceField (amendement LOT-ANNEXE-08, EX-IA-023).
| TEST | ( | GridDistanceFieldTest | , |
| CaseHorsGrilleRenvoieLaSentinelle | ) |
Une case hors-grille renvoie la distance sentinelle sans planter.
Cas de test : Case hors-grille : distance sentinelle, pas de plantage.
Categorie : Unitaire · AiSolver Env
Criticite : Mineur
Etapes :
1. Grille 5x5, cible valide.
2. Lit la distance d'une case negative et d'une case au-delà des bornes.
Resultat attendu : Les deux renvoient la sentinelle largeur * hauteur (25).
| TEST | ( | GridDistanceFieldTest | , |
| DistanceDeLaCibleAElleMemeEstNulle | ) |
La cible a une distance de zéro à elle-même.
Cas de test : La distance de la cible à elle-même est nulle.
Categorie : Unitaire · AiSolver Env
Criticite : Majeur
Etapes :
1. Grille ouverte, GridDistanceField construit avec une cible.
Resultat attendu : distance(cible) == 0.
| TEST | ( | GridDistanceFieldTest | , |
| GrilleOuverteEgaleDistanceDeManhattan | ) |
Sur une grille ouverte, la distance vaut la distance de Manhattan (BFS 4-connexe sans obstacle).
Cas de test : Grille sans mur : distance de grille égale à la distance de Manhattan.
Categorie : Unitaire · AiSolver Env
Criticite : Bloquant
Etapes :
1. Grille 10x10 vide, cible en (0,0).
2. Lit la distance de plusieurs cases.
Resultat attendu : Chaque distance égale |colonne| + |ligne|.
| TEST | ( | GridDistanceFieldTest | , |
| MultiCiblesDistanceALaPlusProche | ) |
Le constructeur multi-cibles renvoie la distance à la plus proche des cibles fournies (amendement LOT-ANNEXE-21).
Cas de test : Multi-cibles : distance à la plus proche des cibles fournies.
Categorie : Unitaire · AiSolver Env
Criticite : Bloquant
Etapes :
1. Grille ouverte 10x10, deux cibles (0,0) et (9,9).
2. Lit la distance d'une case proche de chaque cible.
Resultat attendu : Chaque case obtient la distance à la cible la plus proche, pas la plus lointaine.
| TEST | ( | GridDistanceFieldTest | , |
| MultiCiblesIgnoreUneCibleSolideOuHorsGrille | ) |
Une cible solide ou hors-grille dans la liste multi-cibles est ignorée, sans empêcher les autres cibles valides de produire un champ atteignable.
Cas de test : Multi-cibles : une cible invalide n'empêche pas les autres de fonctionner.
Categorie : Unitaire · AiSolver Env
Criticite : Bloquant
Etapes :
1. Grille 5x5, case (1,1) solide utilisée comme première cible, (4,4) valide comme seconde.
Resultat attendu : La distance à (4,4) reste correcte malgré la cible solide.
| TEST | ( | GridDistanceFieldTest | , |
| MurPartielForceUnDetourPlusLongQueLaLigneDirecte | ) |
Un mur partiel force un détour : la distance de grille suit le chemin réel, plus longue que la distance de Manhattan en ligne directe.
Cas de test : Mur partiel (détour) : la distance de grille suit le chemin réel, pas la ligne droite.
Categorie : Unitaire · AiSolver Env
Criticite : Bloquant
Etapes :
1. Grille 3x3, case (1,1) solide (mur direct entre (1,2) et la cible (1,0)).
Resultat attendu : La distance de (1,2) à la cible vaut 4 (détour par une colonne latérale), pas 2 (distance de Manhattan sans obstacle).
| TEST | ( | GridDistanceFieldTest | , |
| MurSeparateurCompletRendInatteignable | ) |
Un mur entièrement séparateur rend les cases de l'autre côté inatteignables (distance sentinelle), sans planter.
Cas de test : Mur séparateur complet : cases isolées à la distance sentinelle.
Categorie : Unitaire · AiSolver Env
Criticite : Bloquant
Etapes :
1. Grille 5x5, colonne 2 entièrement solide (mur de bord en bord).
2. Cible en (0,0), lit la distance d'une case de l'autre côté du mur ((4,0)).
Resultat attendu : La distance renvoyée vaut la sentinelle largeur * hauteur (25), pas de plantage.