|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires de la composition de texte en quads sur le calque UI (LOT-52 TACHE-02). More...
#include <gtest/gtest.h>#include "HMI/Graphics/ProceduralFont.h"#include "HMI/Graphics/QuadRecorder.h"#include "HMI/Graphics/TextRenderer.h"Functions | |
| TEST (TextRendererTest, ChaineVideNeProduitAucunQuad) | |
| Une chaîne vide ne produit aucun quad. | |
| TEST (TextRendererTest, ChaineDeuxCaracteresProduitDeuxQuadsAuxPositionsAttendues) | |
| Une chaîne de N caractères (hors espaces) produit N quads, aux positions attendues selon l'avance de chaque glyphe. | |
| TEST (TextRendererTest, EspaceNEmetAucunQuadMaisAvanceLeStylo) | |
| L'espace n'émet aucun quad (aucun pixel visible), mais fait avancer le stylo. | |
| TEST (TextRendererTest, ChaineAccentueeCompteLesPointsDeCode) | |
| Une chaîne accentuée produit un nombre de quads correspondant aux POINTS DE CODE, pas aux octets UTF-8. | |
| TEST (TextRendererTest, AncrageCentreDecaleLaBoiteDeSaMoitie) | |
| L'ancrage centre horizontalement/verticalement décale la boîte du texte de la moitié de ses dimensions mesurées. | |
| TEST (TextRendererTest, AncrageDroiteBasPositionneLaFinDeLaBoite) | |
| L'ancrage à droite/en bas positionne la fin de la boîte du texte sur le point d'ancrage. | |
| TEST (TextRendererTest, PrimitivesSurLeCalqueUi) | |
| Toutes les primitives composées le sont sur le calque UI, jamais un autre. | |
| TEST (TextRendererTest, CaractereAbsentEstSubstitueEtComposeUnQuad) | |
| Un point de code non couvert par la police est substitué par le glyphe de remplacement, jamais ignoré silencieusement. | |
| TEST (TextRendererTest, TexteNestJamaisCulle) | |
| Le texte composé n'est jamais soumis au culling de cadrage : une scène sans cadrage (état par défaut, garanti par le contrat de hmi::composeText) conserve les primitives même à une position écran éloignée de l'origine. | |
Tests unitaires de la composition de texte en quads sur le calque UI (LOT-52 TACHE-02).
Sans GPU : composition pure (hmi::ComposedScene/hmi::QuadRecorder, EX-NFR-004).
| TEST | ( | TextRendererTest | , |
| AncrageCentreDecaleLaBoiteDeSaMoitie | ) |
L'ancrage centre horizontalement/verticalement décale la boîte du texte de la moitié de ses dimensions mesurées.
Cas de test : L'ancrage centré décale la boîte du texte de sa moitié.
Categorie : Unitaire · Text Renderer
Criticite : Majeur
Etapes :
1. Composer « AB » avec un ancrage centré aux deux axes.
2. Capturer la scène.
Resultat attendu : Le premier quad démarre à (-6, -5) : moitié de la largeur (12) et de la hauteur (10).
| TEST | ( | TextRendererTest | , |
| AncrageDroiteBasPositionneLaFinDeLaBoite | ) |
L'ancrage à droite/en bas positionne la fin de la boîte du texte sur le point d'ancrage.
Cas de test : L'ancrage droite/bas positionne la fin de la boîte sur le point d'ancrage.
Categorie : Unitaire · Text Renderer
Criticite : Majeur
Etapes :
1. Composer « AB » avec un ancrage droite/bas à (100, 100).
2. Capturer la scène.
Resultat attendu : Le premier quad démarre à (88, 90) : 100 moins la largeur/hauteur totales (12, 10).
| TEST | ( | TextRendererTest | , |
| CaractereAbsentEstSubstitueEtComposeUnQuad | ) |
Un point de code non couvert par la police est substitué par le glyphe de remplacement, jamais ignoré silencieusement.
Cas de test : Un point de code non couvert est substitué par le glyphe de remplacement.
Categorie : Unitaire · Text Renderer
Criticite : Majeur
Etapes :
1. Composer un caractère absent de testMetrics() ('#').
2. Capturer la scène.
Resultat attendu : Un quad est tout de même composé (substitution), pas un trou silencieux.
| TEST | ( | TextRendererTest | , |
| ChaineAccentueeCompteLesPointsDeCode | ) |
Une chaîne accentuée produit un nombre de quads correspondant aux POINTS DE CODE, pas aux octets UTF-8.
Cas de test : Une chaîne accentuée produit un quad par point de code, pas par octet.
Categorie : Unitaire · Text Renderer
Criticite : Critique
Etapes :
1. Composer « É » (deux octets UTF-8, un point de code).
2. Capturer la scène.
Resultat attendu : Un seul quad est composé.
| TEST | ( | TextRendererTest | , |
| ChaineDeuxCaracteresProduitDeuxQuadsAuxPositionsAttendues | ) |
Une chaîne de N caractères (hors espaces) produit N quads, aux positions attendues selon l'avance de chaque glyphe.
Cas de test : Une chaîne de N caractères produit N quads, aux positions attendues.
Categorie : Unitaire · Text Renderer
Criticite : Critique
Etapes :
1. Composer « AB » en ancrage haut-gauche.
2. Capturer la scène.
Resultat attendu : Deux quads sont composés, aux abscisses 0 et 6 (avance du glyphe 'A').
| TEST | ( | TextRendererTest | , |
| ChaineVideNeProduitAucunQuad | ) |
Une chaîne vide ne produit aucun quad.
Cas de test : Une chaîne vide ne produit aucun quad.
Categorie : Unitaire · Text Renderer
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Aucun quad n'est composé.
| TEST | ( | TextRendererTest | , |
| EspaceNEmetAucunQuadMaisAvanceLeStylo | ) |
L'espace n'émet aucun quad (aucun pixel visible), mais fait avancer le stylo.
Cas de test : L'espace n'émet aucun quad mais fait avancer le stylo.
Categorie : Unitaire · Text Renderer
Criticite : Majeur
Etapes :
1. Composer « A B » (A, espace, B).
2. Capturer la scène.
Resultat attendu : Deux quads seulement (A et B), B décalé de deux avances (espace inclus).
| TEST | ( | TextRendererTest | , |
| PrimitivesSurLeCalqueUi | ) |
Toutes les primitives composées le sont sur le calque UI, jamais un autre.
Cas de test : Toutes les primitives composées le sont sur le calque UI.
Categorie : Unitaire · Text Renderer
Criticite : Critique
Etapes :
1. Composer un texte de plusieurs caractères.
2. Capturer la scène.
Resultat attendu : Toutes les primitives sont sur RenderLayer::UI.
| TEST | ( | TextRendererTest | , |
| TexteNestJamaisCulle | ) |
Le texte composé n'est jamais soumis au culling de cadrage : une scène sans cadrage (état par défaut, garanti par le contrat de hmi::composeText) conserve les primitives même à une position écran éloignée de l'origine.
Cas de test : Le texte n'est jamais soumis au culling par cadrage.
Categorie : Unitaire · Text Renderer
Criticite : Majeur
Etapes :
1. Composer un texte à une position écran éloignée (10000, 10000), sans cadrage actif sur la scène.
2. Vérifier la scène.
Resultat attendu : Le quad est conservé (aucun culling), la scène n'a pas de cadrage actif.