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

Tests unitaires de la palette de projet, de l'extraction et de la contrainte de couleur (LOT-54 TACHE-07, EX-REN-042). More...

#include <cstdint>
#include <filesystem>
#include <fstream>
#include <string>
#include <gtest/gtest.h>
#include "HMI/Editor/PixelPalette.h"

Functions

 TEST_F (PixelPaletteFile, AllerRetourJsonRestitueLeContenu)
 Écrire puis relire une palette restitue les mêmes couleurs, les mêmes noms et le même ordre, alpha compris.
 TEST_F (PixelPaletteFile, FichierAbsentProduitUnePaletteVide)
 Un fichier absent produit une palette vide, sans exception : un état de départ légitime, pas une erreur.
 TEST_F (PixelPaletteFile, FichierMalformeProduitUnePaletteVide)
 Un fichier JSON malformé produit une palette vide, sans exception.
 TEST (PixelPaletteTest, DeuxExtractionsProduisentLaMemeListe)
 Deux extractions du même asset produisent la même liste, dans le même ordre, avec des occurrences exactes.
 TEST (PixelPaletteTest, ImageEntierementTransparenteProduitUneExtractionVide)
 Une image entièrement transparente produit une liste d'extraction vide.
 TEST (PixelPaletteTest, CouleurDejaPresenteRenvoyeeTelleQuelle)
 Une couleur déjà présente dans la palette est renvoyée telle quelle.
 TEST (PixelPaletteTest, DepartageADistanceEgaleEstStable)
 À distance égale entre deux couleurs de la palette, le départage retient la première rencontrée : déterministe et stable.
 TEST (PixelPaletteTest, PaletteVideLaisseLaCouleurInchangee)
 Une palette vide laisse la couleur inchangée plutôt que de produire une couleur indéfinie.
 TEST (PixelPaletteTest, ContraintePreserveToujoursLAlpha)
 La contrainte ne transforme jamais un pixel transparent en pixel opaque : l'alpha d'origine est toujours préservé.

Detailed Description

Tests unitaires de la palette de projet, de l'extraction et de la contrainte de couleur (LOT-54 TACHE-07, EX-REN-042).

Function Documentation

◆ TEST() [1/6]

TEST ( PixelPaletteTest ,
ContraintePreserveToujoursLAlpha  )

La contrainte ne transforme jamais un pixel transparent en pixel opaque : l'alpha d'origine est toujours préservé.

Cas de test : La contrainte preserve toujours l'alpha d'origine.
Categorie : Unitaire · Palette pixel art
Criticite : Critique
Etapes :
1. Contraindre un pixel totalement transparent.
2. Contraindre un pixel semi-transparent.
Resultat attendu : Le premier resultat est inchange (alpha nul preserve) ; le second conserve son alpha d'origine tout en adoptant la teinte RVB la plus proche.

◆ TEST() [2/6]

TEST ( PixelPaletteTest ,
CouleurDejaPresenteRenvoyeeTelleQuelle  )

Une couleur déjà présente dans la palette est renvoyée telle quelle.

Cas de test : Une couleur deja presente est renvoyee telle quelle.
Categorie : Unitaire · Palette pixel art
Criticite : Critique
Etapes :
1. Contraindre une couleur presente dans la palette.
Resultat attendu : Le resultat est strictement egal a la couleur d'origine.

◆ TEST() [3/6]

TEST ( PixelPaletteTest ,
DepartageADistanceEgaleEstStable  )

À distance égale entre deux couleurs de la palette, le départage retient la première rencontrée : déterministe et stable.

Cas de test : Le departage a distance egale est stable.
Categorie : Unitaire · Palette pixel art
Criticite : Critique
Etapes :
1. Construire une palette avec deux couleurs equidistantes d'une couleur cible.

  1. Contraindre la couleur cible plusieurs fois.
    Resultat attendu : Le meme resultat (la premiere entree equidistante) est obtenu a chaque appel.

◆ TEST() [4/6]

TEST ( PixelPaletteTest ,
DeuxExtractionsProduisentLaMemeListe  )

Deux extractions du même asset produisent la même liste, dans le même ordre, avec des occurrences exactes.

Cas de test : Deux extractions du meme asset produisent la meme liste.
Categorie : Unitaire · Palette pixel art
Criticite : Critique
Etapes :
1. Construire une image avec des couleurs repetees.
2. L'extraire deux fois.
Resultat attendu : Les deux extractions sont identiques ; les occurrences comptees sont exactes.

◆ TEST() [5/6]

TEST ( PixelPaletteTest ,
ImageEntierementTransparenteProduitUneExtractionVide  )

Une image entièrement transparente produit une liste d'extraction vide.

Cas de test : Une image entierement transparente produit une extraction vide.
Categorie : Unitaire · Palette pixel art
Criticite : Majeur
Etapes :
1. Construire une image entierement transparente.
2. L'extraire.
Resultat attendu : La liste extraite est vide.

◆ TEST() [6/6]

TEST ( PixelPaletteTest ,
PaletteVideLaisseLaCouleurInchangee  )

Une palette vide laisse la couleur inchangée plutôt que de produire une couleur indéfinie.

Cas de test : Une palette vide laisse la couleur inchangee.
Categorie : Unitaire · Palette pixel art
Criticite : Majeur
Etapes :
1. Contraindre une couleur avec une palette vide.
Resultat attendu : Le resultat est strictement egal a la couleur d'origine.

◆ TEST_F() [1/3]

TEST_F ( PixelPaletteFile ,
AllerRetourJsonRestitueLeContenu  )

Écrire puis relire une palette restitue les mêmes couleurs, les mêmes noms et le même ordre, alpha compris.

Cas de test : Ecrire puis relire une palette restitue le meme contenu, alpha compris.
Categorie : Unitaire · Palette pixel art
Criticite : Critique
Etapes :
1. Construire une palette de trois entrees, dont une avec alpha partiel.

  1. L'enregistrer puis la relire.
    Resultat attendu : Les entrees relues sont identiques (nom, couleur, ordre) a l'origine.

◆ TEST_F() [2/3]

TEST_F ( PixelPaletteFile ,
FichierAbsentProduitUnePaletteVide  )

Un fichier absent produit une palette vide, sans exception : un état de départ légitime, pas une erreur.

Cas de test : Un fichier absent produit une palette vide sans exception.
Categorie : Unitaire · Palette pixel art
Criticite : Critique
Etapes :
1. Charger un chemin qui n'existe pas.
Resultat attendu : Aucune exception ; la palette renvoyee est vide.

◆ TEST_F() [3/3]

TEST_F ( PixelPaletteFile ,
FichierMalformeProduitUnePaletteVide  )

Un fichier JSON malformé produit une palette vide, sans exception.

Cas de test : Un fichier malforme produit une palette vide sans exception.
Categorie : Unitaire · Palette pixel art
Criticite : Critique
Etapes :
1. Ecrire un contenu JSON invalide au chemin de test.
2. Le charger.
Resultat attendu : Aucune exception ; la palette renvoyee est vide.