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

Tests unitaires de la partition d'un niveau en salles (RoomGrid, LOT-32). More...

#include <gtest/gtest.h>
#include "Core/Levels/GridPosition.h"
#include "HMI/Graphics/RoomGrid.h"

Functions

 TEST (RoomGridTest, NiveauPlusPetitQuUneSalleProduitUneSeuleSalle)
 Un niveau plus petit qu'une salle produit une seule salle couvrant le niveau entier.
 TEST (RoomGridTest, NiveauMultipleExactNeRogneAucuneSalle)
 Un niveau exactement multiple de la taille de salle ne rogne aucune salle.
 TEST (RoomGridTest, NiveauNonMultipleRogneLaDerniereSalle)
 Un niveau non multiple de la taille de salle rogne la dernière colonne/ligne.
 TEST (RoomGridTest, RoomIndexAtQuatreCoins)
 roomIndexAt renvoie l'indice de salle correct aux quatre coins et au centre.
 TEST (RoomGridTest, PositionHorsBornesEstBornee)
 Une position hors des bornes du niveau est bornée à la salle la plus proche.
 TEST (RoomGridTest, TailleDeSallePersonnaliseePartitionneSelonCetteTaille)
 Construit sans taille explicite, RoomGrid utilise ROOM_WIDTH_TILES/ROOM_HEIGHT_TILES comme valeurs par défaut ; une taille personnalisée (LOT-64) partitionne selon celle-ci, avec la même règle de troncature au bord du niveau.

Detailed Description

Tests unitaires de la partition d'un niveau en salles (RoomGrid, LOT-32).

Function Documentation

◆ TEST() [1/6]

TEST ( RoomGridTest ,
NiveauMultipleExactNeRogneAucuneSalle  )

Un niveau exactement multiple de la taille de salle ne rogne aucune salle.

Cas de test : Un niveau exactement multiple de la taille de salle ne rogne aucune salle.
Categorie : Unitaire · RoomGrid
Criticite : Majeur
Etapes :
1. Construire un RoomGrid pour un niveau dont chaque dimension est un multiple exact de la taille de salle.
2. Vérifier columns()/rows() et le rectangle de chaque salle.
Resultat attendu : Le nombre de salles correspond exactement au ratio ; chaque salle a la taille pleine (aucun rectangle rogné), y compris la dernière colonne/ligne.

◆ TEST() [2/6]

TEST ( RoomGridTest ,
NiveauNonMultipleRogneLaDerniereSalle  )

Un niveau non multiple de la taille de salle rogne la dernière colonne/ligne.

Cas de test : Un niveau non multiple de la taille de salle rogne la dernière colonne/ligne.
Categorie : Unitaire · RoomGrid
Criticite : Majeur
Etapes :
1. Construire un RoomGrid pour un niveau dépassant de quelques cases un multiple de la taille de salle.
2. Vérifier le rectangle de la dernière salle sur chaque axe.
Resultat attendu : La dernière colonne/ligne de salles est rognée à la taille réellement restante, jamais agrandie au-delà des bornes du niveau.

◆ TEST() [3/6]

TEST ( RoomGridTest ,
NiveauPlusPetitQuUneSalleProduitUneSeuleSalle  )

Un niveau plus petit qu'une salle produit une seule salle couvrant le niveau entier.

Cas de test : Un niveau plus petit qu'une salle produit une seule salle couvrant le niveau entier.
Categorie : Unitaire · RoomGrid
Criticite : Majeur
Etapes :
1. Construire un RoomGrid pour un niveau plus petit que la taille de salle sur les deux axes.
2. Vérifier columns()/rows() et le rectangle de l'unique salle.
Resultat attendu : Une seule salle (columns() == rows() == 1), dont le rectangle couvre exactement le niveau entier — condition de non-régression exploitée par le cadrage caméra (LOT-16).

◆ TEST() [4/6]

TEST ( RoomGridTest ,
PositionHorsBornesEstBornee  )

Une position hors des bornes du niveau est bornée à la salle la plus proche.

Cas de test : Une position hors des bornes du niveau est bornée à la salle la plus proche.
Categorie : Unitaire · RoomGrid
Criticite : Mineur
Etapes :
1. Construire un RoomGrid pour un petit niveau.
2. Interroger roomIndexAt avec des coordonnées négatives puis très supérieures aux bornes.
Resultat attendu : Aucun comportement indéfini : l'indice renvoyé reste dans [0, columns()) × [0, rows()), borné au bord correspondant du niveau.

◆ TEST() [5/6]

TEST ( RoomGridTest ,
RoomIndexAtQuatreCoins  )

roomIndexAt renvoie l'indice de salle correct aux quatre coins et au centre.

Cas de test : roomIndexAt renvoie l'indice de salle correct aux quatre coins et au centre.
Categorie : Unitaire · RoomGrid
Criticite : Majeur
Etapes :
1. Construire un RoomGrid de 2x2 salles.
2. Interroger roomIndexAt à des positions choisies dans chacune des quatre salles.
Resultat attendu : Chaque position renvoie l'indice de la salle qui la contient réellement.

◆ TEST() [6/6]

TEST ( RoomGridTest ,
TailleDeSallePersonnaliseePartitionneSelonCetteTaille  )

Construit sans taille explicite, RoomGrid utilise ROOM_WIDTH_TILES/ROOM_HEIGHT_TILES comme valeurs par défaut ; une taille personnalisée (LOT-64) partitionne selon celle-ci, avec la même règle de troncature au bord du niveau.

Cas de test : Une taille de salle personnalisée partitionne selon cette taille.
Categorie : Unitaire · RoomGrid
Criticite : Majeur
Etapes :
1. Construire un RoomGrid sans taille explicite, vérifier roomWidthTiles()/ roomHeightTiles().
2. Construire un RoomGrid avec une taille personnalisée non multiple du niveau.
3. Vérifier le nombre de salles et la troncature de la dernière.
Resultat attendu : Sans taille explicite, la partition utilise ROOM_WIDTH_TILES/ROOM_HEIGHT_TILES ; avec une taille personnalisée, le nombre de salles et leur rognage suivent cette taille, pas la valeur par défaut.