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

Tests unitaires de la moyenne glissante de cadence et du choix de contenu du compteur de diagnostic (LOT-62 TACHE-02, EX-NFR-001, EX-NFR-005). More...

#include <filesystem>
#include <gtest/gtest.h>
#include "HMI/Game/DiagnosticsHud.h"
#include "HMI/Localization/Localization.h"

Functions

 TEST (FrameRateAverageTest, SansEchantillonLaCadenceVautZero)
 Sans aucun échantillon, la moyenne glissante vaut zéro : pas de division par zéro.
 TEST (FrameRateAverageTest, CadenceStableConvergeVersLInverseDeLaDureeDImage)
 Une cadence stable (durée d'image constante) converge vers l'inverse de cette durée.
 TEST (FrameRateAverageTest, MoyenneExacteSurUneSuiteDeDureesConnues)
 La moyenne glissante est exacte sur une courte suite de durées connues.
 TEST (FrameRateAverageTest, RafaleAncienneSortDeLaFenetre)
 Une rafale d'images lentes sortie de la fenêtre n'influence plus la cadence une fois que des images rapides et nombreuses l'ont remplacée.
 TEST (FrameRateAverageTest, ResetOublieTousLesEchantillons)
 reset() oublie tous les échantillons accumulés : la cadence retombe à zéro.
 TEST (FrameRateAverageTest, DureeNulleOuNegativeEstIgnoree)
 Une durée nulle ou négative est ignorée (robustesse) : elle ne fait pas dériver la cadence.
 TEST (DiagnosticsHudTest, MesuresConnuesProduisentLesQuatreLignesAttendues)
 Des valeurs mesurées produisent les quatre lignes attendues, dans l'ordre documenté.
 TEST (DiagnosticsHudTest, AucuneImageMesureeProduitDesLignesValides)
 Le cas limite « aucune image mesurée » (démarrage, avant la première image) produit des lignes valides, sans plantage.
 TEST (DiagnosticsHudTest, ClesDeTraductionExistentDansLesDeuxCatalogues)
 Chaque clé de traduction utilisée par le compteur de diagnostic existe, traduite, dans les deux catalogues livrés (français et anglais).

Detailed Description

Tests unitaires de la moyenne glissante de cadence et du choix de contenu du compteur de diagnostic (LOT-62 TACHE-02, EX-NFR-001, EX-NFR-005).

Logique pure, sans GPU.

Function Documentation

◆ TEST() [1/9]

TEST ( DiagnosticsHudTest ,
AucuneImageMesureeProduitDesLignesValides  )

Le cas limite « aucune image mesurée » (démarrage, avant la première image) produit des lignes valides, sans plantage.

Cas de test : Aucune image mesuree produit des lignes valides.
Categorie : Unitaire · Compteur de diagnostic
Criticite : Majeur
Etapes :
1. Composer les lignes a partir de mesures toutes nulles (etat de depart).
Resultat attendu : Les quatre lignes sont produites, avec des valeurs nulles bien formees.

◆ TEST() [2/9]

TEST ( DiagnosticsHudTest ,
ClesDeTraductionExistentDansLesDeuxCatalogues  )

Chaque clé de traduction utilisée par le compteur de diagnostic existe, traduite, dans les deux catalogues livrés (français et anglais).

Cas de test : Les cles de traduction du compteur existent dans les deux catalogues livres.
Categorie : Unitaire · Compteur de diagnostic
Criticite : Majeur
Etapes :
1. Charger fr.lang puis en.lang depuis les catalogues livres.
2. Resoudre les cles du compteur de diagnostic.
Resultat attendu : Les quatre cles resolvent vers un texte traduit, distinct de la cle elle-meme.

◆ TEST() [3/9]

TEST ( DiagnosticsHudTest ,
MesuresConnuesProduisentLesQuatreLignesAttendues  )

Des valeurs mesurées produisent les quatre lignes attendues, dans l'ordre documenté.

Cas de test : Des valeurs mesurees produisent les quatre lignes attendues.
Categorie : Unitaire · Compteur de diagnostic
Criticite : Critique
Etapes :
1. Composer les lignes a partir de mesures connues.
Resultat attendu : Cadence, primitives, passes et pas de simulation apparaissent, dans cet ordre, avec les valeurs attendues.

◆ TEST() [4/9]

TEST ( FrameRateAverageTest ,
CadenceStableConvergeVersLInverseDeLaDureeDImage  )

Une cadence stable (durée d'image constante) converge vers l'inverse de cette durée.

Cas de test : Une cadence stable converge vers l'inverse de la duree d'image.
Categorie : Unitaire · Compteur de diagnostic
Criticite : Critique
Etapes :
1. Ajouter de nombreux echantillons de 1/60 seconde.
2. Lire la cadence moyenne.
Resultat attendu : La cadence moyenne vaut environ 60 images par seconde.

◆ TEST() [5/9]

TEST ( FrameRateAverageTest ,
DureeNulleOuNegativeEstIgnoree  )

Une durée nulle ou négative est ignorée (robustesse) : elle ne fait pas dériver la cadence.

Cas de test : Une duree nulle ou negative est ignoree.
Categorie : Unitaire · Compteur de diagnostic
Criticite : Mineur
Etapes :
1. Ajouter un echantillon negatif puis nul sur une moyenne neuve.
Resultat attendu : La cadence reste a 0 (aucun echantillon valide accepte).

◆ TEST() [6/9]

TEST ( FrameRateAverageTest ,
MoyenneExacteSurUneSuiteDeDureesConnues  )

La moyenne glissante est exacte sur une courte suite de durées connues.

Cas de test : La moyenne glissante est exacte sur une suite de durees connues.
Categorie : Unitaire · Compteur de diagnostic
Criticite : Majeur
Etapes :
1. Ajouter trois echantillons de 0,1 seconde (0,3s < fenetre).
2. Lire la cadence.
Resultat attendu : La cadence vaut exactement 3 images / 0,3 seconde = 10 images par seconde.

◆ TEST() [7/9]

TEST ( FrameRateAverageTest ,
RafaleAncienneSortDeLaFenetre  )

Une rafale d'images lentes sortie de la fenêtre n'influence plus la cadence une fois que des images rapides et nombreuses l'ont remplacée.

Cas de test : Une rafale ancienne sort de la fenetre et n'influence plus la moyenne.
Categorie : Unitaire · Compteur de diagnostic
Criticite : Majeur
Etapes :
1. Ajouter une image tres lente (1 seconde).
2. Ajouter ensuite de nombreuses images rapides (1/120 seconde) jusqu'a largement depasser la fenetre.
Resultat attendu : La cadence finale reflete les images rapides recentes, pas la rafale lente initiale.

◆ TEST() [8/9]

TEST ( FrameRateAverageTest ,
ResetOublieTousLesEchantillons  )

reset() oublie tous les échantillons accumulés : la cadence retombe à zéro.

Cas de test : reset oublie tous les echantillons accumules.
Categorie : Unitaire · Compteur de diagnostic
Criticite : Majeur
Etapes :
1. Ajouter des echantillons.
2. Appeler reset.
3. Lire la cadence.
Resultat attendu : La cadence vaut de nouveau 0.

◆ TEST() [9/9]

TEST ( FrameRateAverageTest ,
SansEchantillonLaCadenceVautZero  )

Sans aucun échantillon, la moyenne glissante vaut zéro : pas de division par zéro.

Cas de test : Sans echantillon, la cadence moyenne vaut zero.
Categorie : Unitaire · Compteur de diagnostic
Criticite : Critique
Etapes :
1. Construire une moyenne glissante neuve.
2. Lire la cadence.
Resultat attendu : La cadence vaut 0, sans plantage.