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

Tests unitaires de la police bitmap (LOT-52 TACHE-01) : mesure pure, lecture des métriques JSON, repli procédural déterministe. More...

#include <cstdint>
#include <ios>
#include <string>
#include <gtest/gtest.h>
#include "HMI/Graphics/ProceduralFont.h"

Functions

 TEST (BitmapFontTest, MesureChaineVideLargeurNulle)
 La mesure d'une chaîne vide donne une largeur nulle et une hauteur d'une ligne.
 TEST (BitmapFontTest, MesureUnCaractere)
 La mesure d'un seul caractère donne exactement son avance.
 TEST (BitmapFontTest, MesureChaineAccentueeParPointsDeCode)
 Une chaîne accentuée est mesurée par POINTS DE CODE, pas par octets UTF-8.
 TEST (BitmapFontTest, CaractereAbsentEstSubstitue)
 Un caractère absent de la police est substitué par le glyphe de remplacement, jamais un trou silencieux ni un plantage.
 TEST (BitmapFontTest, MetriquesJsonValideEstLue)
 Un fichier de métriques JSON valide se lit correctement (champs et glyphes).
 TEST (BitmapFontTest, JsonInvalideEstUneErreurExploitable)
 Un JSON de métriques malformé est une erreur exploitable, jamais une exception.
 TEST (BitmapFontTest, VersionInconnueEstRefusee)
 Une version de format supérieure à celle gérée est refusée.
 TEST (BitmapFontTest, FichierMetriquesAbsentEstFileNotFound)
 Un fichier de métriques absent est un échec FileNotFound, sans exception.
 TEST (BitmapFontTest, MetriquesCoherentesAvecLePngValidees)
 Des métriques cohérentes avec les dimensions du PNG sont validées.
 TEST (BitmapFontTest, MetriquesIncoherentesAvecLePngRefusees)
 Des métriques dont un glyphe déborde des dimensions du PNG sont refusées.
 TEST (BitmapFontTest, ReplitProceduralCouvreAsciiEtAccentsDeFaconDeterministe)
 Le repli procédural couvre l'ASCII imprimable et les accents français, et est déterministe (deux appels produisent des pixels et métriques identiques).
 TEST (BitmapFontTest, ReplitProceduralEstAutoCoherent)
 Chaque glyphe généré procéduralement désigne une région entièrement contenue dans l'image générée (repli utilisable tel quel, sans plantage au rendu).

Detailed Description

Tests unitaires de la police bitmap (LOT-52 TACHE-01) : mesure pure, lecture des métriques JSON, repli procédural déterministe.

Sans GPU ni Qt.

Function Documentation

◆ TEST() [1/12]

TEST ( BitmapFontTest ,
CaractereAbsentEstSubstitue  )

Un caractère absent de la police est substitué par le glyphe de remplacement, jamais un trou silencieux ni un plantage.

Cas de test : Un caractère absent de la police est substitué par le glyphe de remplacement.
Categorie : Unitaire · Police bitmap
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Le caractère absent est substitué par le glyphe de remplacement.

◆ TEST() [2/12]

TEST ( BitmapFontTest ,
FichierMetriquesAbsentEstFileNotFound  )

Un fichier de métriques absent est un échec FileNotFound, sans exception.

Cas de test : Un fichier de métriques absent est un échec FileNotFound, sans exception.
Categorie : Unitaire · Police bitmap
Criticite : Mineur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La lecture échoue avec le code FileNotFound.

◆ TEST() [3/12]

TEST ( BitmapFontTest ,
JsonInvalideEstUneErreurExploitable  )

Un JSON de métriques malformé est une erreur exploitable, jamais une exception.

Cas de test : Un JSON de métriques malformé est une erreur exploitable, jamais une exception.
Categorie : Unitaire · Police bitmap
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La lecture échoue avec un message d'erreur exploitable, sans exception.

◆ TEST() [4/12]

TEST ( BitmapFontTest ,
MesureChaineAccentueeParPointsDeCode  )

Une chaîne accentuée est mesurée par POINTS DE CODE, pas par octets UTF-8.

Cas de test : Une chaîne accentuée est mesurée par points de code, pas par octets UTF-8.
Categorie : Unitaire · Police bitmap
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La largeur mesurée correspond au nombre de points de code, pas au nombre d'octets.

◆ TEST() [5/12]

TEST ( BitmapFontTest ,
MesureChaineVideLargeurNulle  )

La mesure d'une chaîne vide donne une largeur nulle et une hauteur d'une ligne.

Cas de test : La mesure d'une chaîne vide donne une largeur nulle et une hauteur d'une ligne.
Categorie : Unitaire · Police bitmap
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La mesure d'une chaîne vide donne une largeur nulle et une hauteur d'une ligne.

◆ TEST() [6/12]

TEST ( BitmapFontTest ,
MesureUnCaractere  )

La mesure d'un seul caractère donne exactement son avance.

Cas de test : La mesure d'un seul caractère donne exactement son avance.
Categorie : Unitaire · Police bitmap
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La mesure d'un seul caractère donne exactement son avance.

◆ TEST() [7/12]

TEST ( BitmapFontTest ,
MetriquesCoherentesAvecLePngValidees  )

Des métriques cohérentes avec les dimensions du PNG sont validées.

Cas de test : Des métriques cohérentes avec les dimensions du PNG sont validées.
Categorie : Unitaire · Police bitmap
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La validation réussit (aucun message d'erreur).

◆ TEST() [8/12]

TEST ( BitmapFontTest ,
MetriquesIncoherentesAvecLePngRefusees  )

Des métriques dont un glyphe déborde des dimensions du PNG sont refusées.

Cas de test : Des métriques dont un glyphe déborde des dimensions du PNG sont refusées.
Categorie : Unitaire · Police bitmap
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La validation échoue avec un message nommant le fichier.

◆ TEST() [9/12]

TEST ( BitmapFontTest ,
MetriquesJsonValideEstLue  )

Un fichier de métriques JSON valide se lit correctement (champs et glyphes).

Cas de test : Un fichier de métriques JSON valide se lit correctement (champs et glyphes).
Categorie : Unitaire · Police bitmap
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Les métriques et les glyphes déclarés sont lus fidèlement.

◆ TEST() [10/12]

TEST ( BitmapFontTest ,
ReplitProceduralCouvreAsciiEtAccentsDeFaconDeterministe  )

Le repli procédural couvre l'ASCII imprimable et les accents français, et est déterministe (deux appels produisent des pixels et métriques identiques).

Cas de test : Le repli procédural couvre l'ASCII imprimable et les accents français, de façon déterministe.
Categorie : Unitaire · Police bitmap
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Tous les caractères ASCII imprimables et accentués (é è à ç ù ê î ô û) sont couverts ; deux générations produisent le même résultat.

◆ TEST() [11/12]

TEST ( BitmapFontTest ,
ReplitProceduralEstAutoCoherent  )

Chaque glyphe généré procéduralement désigne une région entièrement contenue dans l'image générée (repli utilisable tel quel, sans plantage au rendu).

Cas de test : Chaque glyphe procédural désigne une région entièrement contenue dans l'image générée.
Categorie : Unitaire · Police bitmap
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : Toutes les régions de glyphes sont contenues dans l'image, et les métriques sont cohérentes avec elle.

◆ TEST() [12/12]

TEST ( BitmapFontTest ,
VersionInconnueEstRefusee  )

Une version de format supérieure à celle gérée est refusée.

Cas de test : Une version de format supérieure à celle gérée est refusée.
Categorie : Unitaire · Police bitmap
Criticite : Mineur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.
Resultat attendu : La lecture échoue avec le code UnsupportedVersion.