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

Tests unitaires de la priorité de résolution surcharge > skin > damier (LOT-45, EX-EDIT-043), de l'affichage isolé sans repli (LOT-51, EX-EDIT-044) et de hmi::textureOverrideAt. More...

#include <optional>
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "Core/Ecs/Components/Sprite.h"
#include "Core/Levels/GridPosition.h"
#include "Core/Levels/Level.h"
#include "Core/Levels/TileType.h"
#include "HMI/Graphics/MissingTexture.h"
#include "HMI/Graphics/RenderMode.h"
#include "HMI/Graphics/SkinCatalog.h"
#include "HMI/Graphics/TextureAtlas.h"
#include "HMI/Graphics/TileAppearance.h"
#include "HMI/Graphics/TileSkinTag.h"
#include "HMI/Graphics/TileVisuals.h"

Functions

 TEST (TextureResolutionTest, SurchargeChargeePrioritaireSurLeSkin)
 Une surcharge chargée est prioritaire sur le skin du type, même si le type a un skin assigné différent.
 TEST (TextureResolutionTest, SurchargeIntrouvableRetombeSurLeDamierPasSurLeSkin)
 Une surcharge dont l'asset n'est pas chargé retombe directement sur le damier, jamais silencieusement sur le skin du type.
 TEST (TextureResolutionTest, SansSurchargeLeSkinSAppliqueNormalement)
 Sans surcharge, la résolution retombe sur le comportement du skin (LOT-42), inchangé.
 TEST (TextureResolutionTest, SurchargeSAppliqueMemeSansSkinDuType)
 Une surcharge sur un type sans skin assigné s'affiche quand même (elle ne dépend pas du catalogue).
 TEST (TextureResolutionTest, SurchargeSAppliqueMemeSansCatalogue)
 Une surcharge sans catalogue de skins chargé s'affiche quand même.
 TEST (TextureResolutionTest, ModePhysiqueIgnoreLesSurcharges)
 Le mode Physique ignore totalement les surcharges, comme les skins.
 TEST (TextureResolutionTest, IndexDObjetInvalideBorne)
 Un index d'objet invalide ne lit jamais hors des bornes.
 TEST (TextureResolutionTest, ObjetsSeulsSurchargeChargeeSAffiche)
 Affichage isolé « objets interactifs seuls » (LOT-51, EX-EDIT-044) : une surcharge chargée s'affiche normalement, l'axe skin n'intervient pas.
 TEST (TextureResolutionTest, ObjetsSeulsSansSurchargeNAfficheRien)
 Affichage isolé « objets interactifs seuls » : une case sans surcharge, même si son type a un skin, n'affiche rien — ni skin, ni damier.
 TEST (TextureResolutionTest, ObjetsSeulsSansSurchargeNiSkinNAfficheRien)
 Affichage isolé « objets interactifs seuls » : une case sans surcharge ni skin n'affiche pas non plus le damier.
 TEST (TextureResolutionTest, SkinSeulTypeSkinneSAfficheNormalement)
 Affichage isolé « skin des tuiles seul » : un type skinné, sans surcharge, s'affiche normalement.
 TEST (TextureResolutionTest, SkinSeulTypeNonSkinneNAfficheRien)
 Affichage isolé « skin des tuiles seul » : un type non skinné n'affiche rien — c'est le diagnostic recherché (quels types manquent encore un skin), pas le damier habituel.
 TEST (TextureResolutionTest, SkinSeulCaseAvecSurchargeNAfficheRien)
 Affichage isolé « skin des tuiles seul » : une case portant une surcharge n'affiche rien non plus — l'axe surcharge est masqué, l'isolement ne retombe jamais sur un autre axe.
 TEST (TextureResolutionTest, DeuxAxesMasquesNAfficheJamaisRien)
 Les deux axes masqués n'affichent jamais rien, quelle que soit la tuile — équivalent à un calque « Tile » entièrement masqué (LOT-51 TACHE-01).
 TEST (TextureResolutionTest, ModeComposeSurchargeIntrouvableRetombeSurLeDamier)
 Le résolveur en mode composé (les deux axes visibles, le défaut) garde exactement le comportement de LOT-45 : une surcharge introuvable retombe sur le damier même quand elle est la seule chose composée pour cette case.
 TEST (TextureResolutionTest, TextureOverrideAtTrouveLaSurchargeDeLaBonneCase)
 textureOverrideAt trouve la surcharge d'une case précise, et distingue les positions voisines.

Detailed Description

Tests unitaires de la priorité de résolution surcharge > skin > damier (LOT-45, EX-EDIT-043), de l'affichage isolé sans repli (LOT-51, EX-EDIT-044) et de hmi::textureOverrideAt.

Function Documentation

◆ TEST() [1/16]

TEST ( TextureResolutionTest ,
DeuxAxesMasquesNAfficheJamaisRien  )

Les deux axes masqués n'affichent jamais rien, quelle que soit la tuile — équivalent à un calque « Tile » entièrement masqué (LOT-51 TACHE-01).

Cas de test : Les deux axes masques n'affichent jamais rien.
Categorie : Unitaire · Résolution de texture
Criticite : Majeur
Etapes :
1. Résoudre une tuile Solid skinnée avec surcharge, les deux axes masqués.
Resultat attendu : Aucune apparence n'est renvoyée.

◆ TEST() [2/16]

TEST ( TextureResolutionTest ,
IndexDObjetInvalideBorne  )

Un index d'objet invalide ne lit jamais hors des bornes.

Cas de test : Un index d'objet invalide retombe sur le damier sans lecture hors bornes.
Categorie : Unitaire · Résolution de texture
Criticite : Majeur
Etapes :
1. Interroger les textures avec une apparence Override portant un index hors bornes.
Resultat attendu : La texture et les dimensions rendues sont celles du damier.

◆ TEST() [3/16]

TEST ( TextureResolutionTest ,
ModeComposeSurchargeIntrouvableRetombeSurLeDamier  )

Le résolveur en mode composé (les deux axes visibles, le défaut) garde exactement le comportement de LOT-45 : une surcharge introuvable retombe sur le damier même quand elle est la seule chose composée pour cette case.

Cas de test : Mode compose : une surcharge introuvable retombe toujours sur le damier.
Categorie : Unitaire · Résolution de texture
Criticite : Critique
Etapes :
1. Résoudre une tuile Solid skinnée portant une surcharge introuvable, les deux axes visibles (valeurs par défaut).
Resultat attendu : La source est le damier, comme avant LOT-51.

◆ TEST() [4/16]

TEST ( TextureResolutionTest ,
ModePhysiqueIgnoreLesSurcharges  )

Le mode Physique ignore totalement les surcharges, comme les skins.

Cas de test : Le mode Physique ignore les surcharges.
Categorie : Unitaire · Résolution de texture
Criticite : Critique
Etapes :
1. Résoudre une tuile portant une surcharge, en mode Physique.
Resultat attendu : La source est l'atlas, la région physique passée en entrée.

◆ TEST() [5/16]

TEST ( TextureResolutionTest ,
ObjetsSeulsSansSurchargeNAfficheRien  )

Affichage isolé « objets interactifs seuls » : une case sans surcharge, même si son type a un skin, n'affiche rien — ni skin, ni damier.

Cas de test : Objets interactifs seuls : une case sans surcharge n'affiche rien.
Categorie : Unitaire · Résolution de texture
Criticite : Critique
Etapes :
1. Résoudre une tuile Solid skinnée sans surcharge, axe skin masqué.
Resultat attendu : Aucune apparence n'est renvoyée (pas de repli sur le skin ni le damier).

◆ TEST() [6/16]

TEST ( TextureResolutionTest ,
ObjetsSeulsSansSurchargeNiSkinNAfficheRien  )

Affichage isolé « objets interactifs seuls » : une case sans surcharge ni skin n'affiche pas non plus le damier.

Cas de test : Objets interactifs seuls : une case sans surcharge ni skin n'affiche pas le damier.
Categorie : Unitaire · Résolution de texture
Criticite : Majeur
Etapes :
1. Résoudre une tuile Danger (non skinnée) sans surcharge, axe skin masqué.
Resultat attendu : Aucune apparence n'est renvoyée.

◆ TEST() [7/16]

TEST ( TextureResolutionTest ,
ObjetsSeulsSurchargeChargeeSAffiche  )

Affichage isolé « objets interactifs seuls » (LOT-51, EX-EDIT-044) : une surcharge chargée s'affiche normalement, l'axe skin n'intervient pas.

Cas de test : Objets interactifs seuls : une surcharge chargee s'affiche normalement.
Categorie : Unitaire · Résolution de texture
Criticite : Critique
Etapes :
1. Résoudre une tuile Solid skinnée portant une surcharge chargée, axe skin masqué.
Resultat attendu : La source est la surcharge, comme en mode composé.

◆ TEST() [8/16]

TEST ( TextureResolutionTest ,
SansSurchargeLeSkinSAppliqueNormalement  )

Sans surcharge, la résolution retombe sur le comportement du skin (LOT-42), inchangé.

Cas de test : Sans surcharge, le skin du type s'applique normalement.
Categorie : Unitaire · Résolution de texture
Criticite : Majeur
Etapes :
1. Résoudre une tuile Solid skinnée, sans surcharge.
Resultat attendu : La source est le skin du type.

◆ TEST() [9/16]

TEST ( TextureResolutionTest ,
SkinSeulCaseAvecSurchargeNAfficheRien  )

Affichage isolé « skin des tuiles seul » : une case portant une surcharge n'affiche rien non plus — l'axe surcharge est masqué, l'isolement ne retombe jamais sur un autre axe.

Cas de test : Skin des tuiles seul : une case avec surcharge n'affiche rien.
Categorie : Unitaire · Résolution de texture
Criticite : Majeur
Etapes :
1. Résoudre une tuile Solid portant une surcharge chargée, axe surcharge masqué.
Resultat attendu : Aucune apparence n'est renvoyée.

◆ TEST() [10/16]

TEST ( TextureResolutionTest ,
SkinSeulTypeNonSkinneNAfficheRien  )

Affichage isolé « skin des tuiles seul » : un type non skinné n'affiche rien — c'est le diagnostic recherché (quels types manquent encore un skin), pas le damier habituel.

Cas de test : Skin des tuiles seul : un type non skinne n'affiche rien.
Categorie : Unitaire · Résolution de texture
Criticite : Critique
Etapes :
1. Résoudre une tuile Danger (non skinnée) sans surcharge, axe surcharge masqué.
Resultat attendu : Aucune apparence n'est renvoyée (pas de damier).

◆ TEST() [11/16]

TEST ( TextureResolutionTest ,
SkinSeulTypeSkinneSAfficheNormalement  )

Affichage isolé « skin des tuiles seul » : un type skinné, sans surcharge, s'affiche normalement.

Cas de test : Skin des tuiles seul : un type skinne s'affiche normalement.
Categorie : Unitaire · Résolution de texture
Criticite : Critique
Etapes :
1. Résoudre une tuile Solid skinnée sans surcharge, axe surcharge masqué.
Resultat attendu : La source est le skin du type, comme en mode composé.

◆ TEST() [12/16]

TEST ( TextureResolutionTest ,
SurchargeChargeePrioritaireSurLeSkin  )

Une surcharge chargée est prioritaire sur le skin du type, même si le type a un skin assigné différent.

Cas de test : Une surcharge chargée est prioritaire sur le skin du type.
Categorie : Unitaire · Résolution de texture
Criticite : Critique
Etapes :
1. Résoudre une tuile Solid (skinnée) portant une surcharge chargée, en mode Texture.
Resultat attendu : La source est la surcharge, pas le skin du type.

◆ TEST() [13/16]

TEST ( TextureResolutionTest ,
SurchargeIntrouvableRetombeSurLeDamierPasSurLeSkin  )

Une surcharge dont l'asset n'est pas chargé retombe directement sur le damier, jamais silencieusement sur le skin du type.

Cas de test : Une surcharge introuvable retombe sur le damier, pas sur le skin.
Categorie : Unitaire · Résolution de texture
Criticite : Critique
Etapes :
1. Résoudre une tuile Solid skinnée portant une surcharge dont l'asset n'est pas chargé.
Resultat attendu : La source est le damier.

◆ TEST() [14/16]

TEST ( TextureResolutionTest ,
SurchargeSAppliqueMemeSansCatalogue  )

Une surcharge sans catalogue de skins chargé s'affiche quand même.

Cas de test : Une surcharge s'affiche même sans catalogue de skins.
Categorie : Unitaire · Résolution de texture
Criticite : Majeur
Etapes :
1. Résoudre une tuile portant une surcharge, catalogue absent.
Resultat attendu : La source est la surcharge, sans déréférencement de pointeur nul.

◆ TEST() [15/16]

TEST ( TextureResolutionTest ,
SurchargeSAppliqueMemeSansSkinDuType  )

Une surcharge sur un type sans skin assigné s'affiche quand même (elle ne dépend pas du catalogue).

Cas de test : Une surcharge s'affiche même sur un type sans skin.
Categorie : Unitaire · Résolution de texture
Criticite : Majeur
Etapes :
1. Résoudre une tuile Danger (non skinnée) portant une surcharge chargée.
Resultat attendu : La source est la surcharge.

◆ TEST() [16/16]

TEST ( TextureResolutionTest ,
TextureOverrideAtTrouveLaSurchargeDeLaBonneCase  )

textureOverrideAt trouve la surcharge d'une case précise, et distingue les positions voisines.

Cas de test : textureOverrideAt trouve la surcharge d'une case precise.
Categorie : Unitaire · Résolution de texture
Criticite : Majeur
Etapes :
1. Chercher une position avec et sans surcharge dans une liste de surcharges.
Resultat attendu : Le nom d'asset est trouvé pour la position exacte, absent ailleurs.