|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires des raccords automatiques (LOT-42, EX-EDIT-025). More...
#include <array>#include <cstdint>#include <set>#include <string_view>#include <gtest/gtest.h>#include "Core/Levels/TileMap.h"#include "Core/Levels/TileType.h"#include "HMI/Graphics/TileAutotile.h"Functions | |
| TEST (TileAutotileTest, SeizeConfigurationsSeizeCasesDistinctes) | |
| Les seize configurations donnent seize cases distinctes de la planche. | |
| TEST (TileAutotileTest, TableDeCorrespondanceExhaustive) | |
| Chaque masque designe la case attendue de la planche. | |
| TEST (TileAutotileTest, ExterieurDeLaGrilleCompteSolide) | |
| L'exterieur de la grille compte comme solide. | |
| TEST (TileAutotileTest, TuileIsoleeAuCentre) | |
| Une tuile entouree de vide au centre de la grille est isolee. | |
| TEST (TileAutotileTest, DessusDePlateformeDistinctDeLInterieur) | |
| Le dessus d'une plateforme differe de son interieur. | |
| TEST (TileAutotileTest, RaccordEntreTypesSolidesDifferents) | |
| Les blocs poussables se raccordent aux murs. | |
| TEST (TileAutotileTest, CaseRepresentativeEstLInterieurPlein) | |
| La case representative est l'interieur plein. | |
| TEST (TileAutotileTest, BitsParasitesIgnores) | |
| Les bits hors des quatre voisins sont ignores. | |
| TEST (TileAutotileTest, SeizeMasquesProduisentSeizeClesDeLibelleDistinctes) | |
| Chacun des seize masques produit une clé de libellé distincte (atelier pixel art, LOT-54 TACHE-08) : aucune case de la planche ne partage le libellé d'une autre. | |
| TEST (TileAutotileTest, LibelleIgnoreLesBitsParasites) | |
| Les bits parasites d'un masque de libellé sont ignorés, comme pour autotileCell. | |
| TEST (TileAutotileTest, AssemblageTroisParTroisPlaceLInterieurPleinAuCentre) | |
| L'assemblage 3×3 démonstratif place l'intérieur plein (les quatre voisins internes solides) au centre, et couvre coins/bords/intérieur — un panorama représentatif des seize configurations, pas seulement un sous-ensemble. | |
| TEST (TileAutotileTest, AssemblageResoutDesCasesValidesViaLaTableCanonique) | |
| Chaque masque de l'assemblage 3×3 résout, via la table canonique, une case valide de la planche 4×4 — jamais une seconde table qui pourrait diverger. | |
Tests unitaires des raccords automatiques (LOT-42, EX-EDIT-025).
| TEST | ( | TileAutotileTest | , |
| AssemblageResoutDesCasesValidesViaLaTableCanonique | ) |
Chaque masque de l'assemblage 3×3 résout, via la table canonique, une case valide de la planche 4×4 — jamais une seconde table qui pourrait diverger.
Cas de test : Chaque masque de l'assemblage resout une case valide de la planche.
Categorie : Unitaire · Raccords automatiques
Criticite : Majeur
Etapes :
1. Resoudre la case de chacun des neuf masques via autotileCell.
Resultat attendu : Chaque case tient dans la planche 4x4 (colonne et ligne entre 0 et 3).
| TEST | ( | TileAutotileTest | , |
| AssemblageTroisParTroisPlaceLInterieurPleinAuCentre | ) |
L'assemblage 3×3 démonstratif place l'intérieur plein (les quatre voisins internes solides) au centre, et couvre coins/bords/intérieur — un panorama représentatif des seize configurations, pas seulement un sous-ensemble.
Cas de test : L'assemblage 3x3 place l'interieur plein au centre.
Categorie : Unitaire · Raccords automatiques
Criticite : Majeur
Etapes :
1. Produire les neuf masques de l'assemblage.
2. Verifier la case centrale et la diversite des masques.
Resultat attendu : Le masque central vaut le masque plein (quatre voisins) ; les neuf masques ne sont pas tous identiques.
| TEST | ( | TileAutotileTest | , |
| BitsParasitesIgnores | ) |
Les bits hors des quatre voisins sont ignores.
Cas de test : Un masque portant des bits parasites reste dans la planche.
Categorie : Unitaire · Raccords automatiques
Criticite : Mineur
Etapes :
1. Demander la case d'un masque dont les bits de poids fort sont a 1.
Resultat attendu : La case est celle des quatre bits de poids faible, sans depassement de table.
| TEST | ( | TileAutotileTest | , |
| CaseRepresentativeEstLInterieurPlein | ) |
La case representative est l'interieur plein.
Cas de test : La case representative d'une planche est son interieur plein.
Categorie : Unitaire · Raccords automatiques
Criticite : Mineur
Etapes :
1. Demander la case representative de la planche.
Resultat attendu : Elle est celle du masque a quatre voisins, et non la case zero.
| TEST | ( | TileAutotileTest | , |
| DessusDePlateformeDistinctDeLInterieur | ) |
Le dessus d'une plateforme differe de son interieur.
Cas de test : Le dessus d'une plateforme pleine differe de son interieur.
Categorie : Unitaire · Raccords automatiques
Criticite : Critique
Etapes :
1. Remplir de solide les lignes 2 a 4 d'une grille vide.
| TEST | ( | TileAutotileTest | , |
| ExterieurDeLaGrilleCompteSolide | ) |
L'exterieur de la grille compte comme solide.
Cas de test : L'exterieur de la grille compte comme solide.
Categorie : Unitaire · Raccords automatiques
Criticite : Critique
Etapes :
1. Placer un solide isole dans le coin haut-gauche d'une grille vide.
Resultat attendu : Ses voisins haut et gauche, hors grille, sont comptes solides ; bas et droite non.
| TEST | ( | TileAutotileTest | , |
| LibelleIgnoreLesBitsParasites | ) |
Les bits parasites d'un masque de libellé sont ignorés, comme pour autotileCell.
Cas de test : Un masque de libelle portant des bits parasites reste dans la table.
Categorie : Unitaire · Raccords automatiques
Criticite : Mineur
Etapes :
1. Demander le libelle d'un masque dont les bits de poids fort sont a 1.
Resultat attendu : Le libelle est celui des quatre bits de poids faible.
| TEST | ( | TileAutotileTest | , |
| RaccordEntreTypesSolidesDifferents | ) |
Les blocs poussables se raccordent aux murs.
Cas de test : Le voisinage est celui de la solidite, pas du type de tuile.
Categorie : Unitaire · Raccords automatiques
Criticite : Majeur
Etapes :
1. Placer un solide et, a sa droite, un bloc poussable.
Resultat attendu : Le solide compte le bloc comme voisin solide.
| TEST | ( | TileAutotileTest | , |
| SeizeConfigurationsSeizeCasesDistinctes | ) |
Les seize configurations donnent seize cases distinctes de la planche.
Cas de test : Les seize configurations de voisinage donnent seize cases distinctes.
Categorie : Unitaire · Raccords automatiques
Criticite : Critique
Etapes :
1. Calculer la case de chacun des seize masques possibles.
Resultat attendu : Les seize cases sont deux a deux differentes et tiennent dans la planche 4x4.
| TEST | ( | TileAutotileTest | , |
| SeizeMasquesProduisentSeizeClesDeLibelleDistinctes | ) |
Chacun des seize masques produit une clé de libellé distincte (atelier pixel art, LOT-54 TACHE-08) : aucune case de la planche ne partage le libellé d'une autre.
Cas de test : Les seize masques produisent seize cles de libelle distinctes.
Categorie : Unitaire · Raccords automatiques
Criticite : Majeur
Etapes :
1. Produire la cle de libelle de chacun des seize masques.
Resultat attendu : Les seize cles sont deux a deux differentes.
| TEST | ( | TileAutotileTest | , |
| TableDeCorrespondanceExhaustive | ) |
Chaque masque designe la case attendue de la planche.
Cas de test : Chaque masque de voisinage designe la case attendue de la planche.
Categorie : Unitaire · Raccords automatiques
Criticite : Critique
Etapes :
1. Verifier la case des seize masques, un a un.
Resultat attendu : Chaque masque rend la case documentee dans la table de correspondance.
| TEST | ( | TileAutotileTest | , |
| TuileIsoleeAuCentre | ) |
Une tuile entouree de vide au centre de la grille est isolee.
Cas de test : Une tuile solide entouree de vide donne la configuration isolee.
Categorie : Unitaire · Raccords automatiques
Criticite : Majeur
Etapes :
1. Placer un solide au centre d'une grille vide, loin des bords.
Resultat attendu : Son masque est nul et sa case est celle de la tuile isolee.