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

Tests unitaires des jetons de design de l'IHM (LOT-56 TACHE-01, EX-IHM-050, EX-IHM-051). More...

#include <string>
#include <unordered_map>
#include <gtest/gtest.h>
#include "HMI/Interface/DesignTokens.h"

Functions

 TEST (DesignTokensTest, ConversionHexadecimaleStableEtBienFormee)
 Chaque couleur produit une chaîne hexadécimale stable et valide (six chiffres, préfixe #), sans alpha.
 TEST (DesignTokensTest, ConversionRgbaPorteLesQuatreComposantes)
 La conversion rgba() porte les quatre composantes sur 0-255, y compris une opacité partielle.
 TEST (DesignTokensTest, CouleurViewportSuitLaPorteeDuMode)
 La couleur d'effacement du viewport dérive du même jeton que le fond de la portée correspondante, en mode édition comme en mode jeu : c'est le seul garde-fou contre la réapparition de la couture entre le canevas et les widgets.
 TEST (DesignTokensTest, LesDeuxPorteesPartagentLesMemesEchelles)
 Les deux portées d'habillage (identité invariante, châssis variable) partagent exactement les mêmes échelles d'espacement, de typographie et de tailles — seules les couleurs diffèrent.
 TEST (DesignTokensTest, ChaquePorteeDesigneSaPropreFamille)
 Les deux portées emploient des familles de police distinctes (LOT-68, EX-IHM-070) : identité en police bitmap, châssis d'édition en police de travail.
 TEST (DesignTokensTest, LesRolesDuCadreSontDistinctsDansChaquePortee)
 Les trois rôles du cadre pixel art se distinguent assez pour donner du relief à un trait d'un seul pixel (LOT-68, EX-IHM-070), et ce dans les trois jeux de jetons — y compris le thème clair, où un biseau « clair » plus clair que la surface serait invisible.
 TEST (DesignTokensTest, CouleursDesDeuxPorteesDistinctesEtCoherentes)
 Les deux portées restent visuellement distinctes en couleur (sans quoi le découpage en deux jeux de jetons n'aurait pas de sens), et aucune n'utilise de couleurs dégénérées.
 TEST (DesignTokensTest, AucunDoublonDeLargeurMinimale)
 Les deux widgets de remappage (clavier, manette) doivent exposer la même largeur minimale : c'est la grandeur que TACHE-01 unifie via SizeTokens::controlMinWidth.
 TEST (DesignTokensTest, ChaqueThemeSatisfaitLeSeuilDeContraste)
 Pour chaque thème d'éditeur (sombre, clair), le rapport de contraste entre le texte et son fond, et entre le texte atténué et son fond, dépasse un seuil de lisibilité fixé — garde-fou contre un thème clair livré illisible (LOT-56 TACHE-06), étendu à la portée identité au LOT-68 (sa palette change).
 TEST (DesignTokensTest, ContrasteSymetriqueEtUnitairePourUneMemeCouleur)
 Le rapport de contraste est symétrique et vaut 1 pour deux couleurs identiques (aucun contraste) : garde-fou de la formule elle-même.
 TEST (DesignTokensTest, SeulesLesGrandeursDIdentiteSuiventLeFacteur)
 Les grandeurs de la portee identite sont multipliees par le facteur entier, et celles du chassis d edition ne le sont JAMAIS (LOT-68, EX-IHM-070).

Detailed Description

Tests unitaires des jetons de design de l'IHM (LOT-56 TACHE-01, EX-IHM-050, EX-IHM-051).

Function Documentation

◆ TEST() [1/11]

TEST ( DesignTokensTest ,
AucunDoublonDeLargeurMinimale  )

Les deux widgets de remappage (clavier, manette) doivent exposer la même largeur minimale : c'est la grandeur que TACHE-01 unifie via SizeTokens::controlMinWidth.

Cas de test : Une seule grandeur de largeur minimale existe pour les deux widgets de remappage.
Categorie : Unitaire · Jetons de design
Criticite : Mineur
Etapes :
1. Lire controlMinWidth dans les jetons du chassis d'edition.
Resultat attendu : La valeur est strictement positive (utilisee telle quelle par les deux widgets).

◆ TEST() [2/11]

TEST ( DesignTokensTest ,
ChaquePorteeDesigneSaPropreFamille  )

Les deux portées emploient des familles de police distinctes (LOT-68, EX-IHM-070) : identité en police bitmap, châssis d'édition en police de travail.

C'est ce qui empêche la police pixel de se répandre dans les tables et les arbres denses de l'éditeur, où elle serait illisible. Cas de test : Chaque portee designe sa propre famille de police.
Categorie : Unitaire · Jetons de design
Criticite : Majeur
Etapes :
1. Lire le role de famille des jetons d'identite et des deux themes d'editeur.
Resultat attendu : L'identite designe Identity, les deux themes d'editeur designent Ui.

◆ TEST() [3/11]

TEST ( DesignTokensTest ,
ChaqueThemeSatisfaitLeSeuilDeContraste  )

Pour chaque thème d'éditeur (sombre, clair), le rapport de contraste entre le texte et son fond, et entre le texte atténué et son fond, dépasse un seuil de lisibilité fixé — garde-fou contre un thème clair livré illisible (LOT-56 TACHE-06), étendu à la portée identité au LOT-68 (sa palette change).

Cas de test : Chaque jeu de jetons satisfait un seuil de contraste texte/fond.
Categorie : Unitaire · Jetons de design
Criticite : Critique
Etapes :
1. Calculer le contraste texte/fond et texte-attenue/fond pour les deux themes d'editeur, puis pour l'identite.
Resultat attendu : Le texte principal depasse 4.5:1 et le texte attenue depasse 3:1, dans les trois jeux de jetons.

◆ TEST() [4/11]

TEST ( DesignTokensTest ,
ContrasteSymetriqueEtUnitairePourUneMemeCouleur  )

Le rapport de contraste est symétrique et vaut 1 pour deux couleurs identiques (aucun contraste) : garde-fou de la formule elle-même.

Cas de test : Le rapport de contraste est symetrique et vaut 1 sans difference de couleur.
Categorie : Unitaire · Jetons de design
Criticite : Mineur
Etapes :
1. Calculer le contraste d'une couleur avec elle-meme, puis dans les deux sens entre deux couleurs distinctes.
Resultat attendu : Le premier resultat vaut 1 ; les deux sens du second sont egaux.

◆ TEST() [5/11]

TEST ( DesignTokensTest ,
ConversionHexadecimaleStableEtBienFormee  )

Chaque couleur produit une chaîne hexadécimale stable et valide (six chiffres, préfixe #), sans alpha.

Cas de test : La conversion en couleur CSS hexadecimale est stable et bien formee.
Categorie : Unitaire · Jetons de design
Criticite : Majeur
Etapes :
1. Convertir une couleur connue en chaine hexadecimale.
2. Reconvertir la meme couleur.
Resultat attendu : La chaine fait sept caracteres, commence par '#', et les deux conversions sont identiques (fonction pure).

◆ TEST() [6/11]

TEST ( DesignTokensTest ,
ConversionRgbaPorteLesQuatreComposantes  )

La conversion rgba() porte les quatre composantes sur 0-255, y compris une opacité partielle.

Cas de test : La conversion en couleur CSS rgba() porte les quatre composantes.
Categorie : Unitaire · Jetons de design
Criticite : Mineur
Etapes :
1. Convertir une couleur avec alpha partiel.
Resultat attendu : La chaine produite contient les quatre valeurs entieres attendues.

◆ TEST() [7/11]

TEST ( DesignTokensTest ,
CouleursDesDeuxPorteesDistinctesEtCoherentes  )

Les deux portées restent visuellement distinctes en couleur (sans quoi le découpage en deux jeux de jetons n'aurait pas de sens), et aucune n'utilise de couleurs dégénérées.

Cas de test : Les couleurs des deux portees sont definies et distinctes.
Categorie : Unitaire · Jetons de design
Criticite : Mineur
Etapes :
1. Comparer le fond des deux portees.
2. Verifier que le texte contraste avec le fond dans chaque portee.
Resultat attendu : Les fonds different ; dans chaque portee, le texte n'est pas egal au fond.

◆ TEST() [8/11]

TEST ( DesignTokensTest ,
CouleurViewportSuitLaPorteeDuMode  )

La couleur d'effacement du viewport dérive du même jeton que le fond de la portée correspondante, en mode édition comme en mode jeu : c'est le seul garde-fou contre la réapparition de la couture entre le canevas et les widgets.

Cas de test : La couleur d'effacement du viewport suit le jeton de fond de la bonne portee.
Categorie : Unitaire · Jetons de design
Criticite : Critique
Etapes :
1. Demander la couleur d'effacement en mode edition, puis en mode jeu.
Resultat attendu : En edition elle vaut le fond du chassis variable ; en jeu, le fond de l'identite invariante.

◆ TEST() [9/11]

TEST ( DesignTokensTest ,
LesDeuxPorteesPartagentLesMemesEchelles  )

Les deux portées d'habillage (identité invariante, châssis variable) partagent exactement les mêmes échelles d'espacement, de typographie et de tailles — seules les couleurs diffèrent.

Sans cette symétrie, TACHE-06 découvrirait une divergence trop tard. Cas de test : Les deux portees partagent les memes echelles et tailles.
Categorie : Unitaire · Jetons de design
Criticite : Critique
Etapes :
1. Comparer espacement, niveaux typographiques et tailles des deux portees.
Resultat attendu : Les echelles sont identiques entre les deux portees ; seule la famille de police differe.

◆ TEST() [10/11]

TEST ( DesignTokensTest ,
LesRolesDuCadreSontDistinctsDansChaquePortee  )

Les trois rôles du cadre pixel art se distinguent assez pour donner du relief à un trait d'un seul pixel (LOT-68, EX-IHM-070), et ce dans les trois jeux de jetons — y compris le thème clair, où un biseau « clair » plus clair que la surface serait invisible.

Cas de test : Les trois roles du cadre pixel art sont distincts dans chaque portee.
Categorie : Unitaire · Jetons de design
Criticite : Majeur
Etapes :
1. Pour chaque jeu de jetons, comparer contour, biseau clair et biseau sombre entre eux et a la surface.
Resultat attendu : Les trois roles different deux a deux, le contour est plus sombre que la surface, et le biseau clair est plus clair que le biseau sombre.

◆ TEST() [11/11]

TEST ( DesignTokensTest ,
SeulesLesGrandeursDIdentiteSuiventLeFacteur  )

Les grandeurs de la portee identite sont multipliees par le facteur entier, et celles du chassis d edition ne le sont JAMAIS (LOT-68, EX-IHM-070).

C est toute la regle : les ecrans du jeu sont une image agrandie, l editeur est un outil dont les tailles suivent les reglages du systeme. Cas de test : Seules les grandeurs d identite suivent le facteur d agrandissement.
Categorie : Unitaire · Jetons de design
Criticite : Critique
Etapes :
1. Produire les valeurs de feuille de style aux facteurs 1, 2 et 3.
2. Comparer les marqueurs identity.size.* et tokens.spacing.* entre eux.
Resultat attendu : Les grandeurs d identite valent la base multipliee par le facteur ; celles du chassis sont identiques aux trois facteurs.