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

Tests unitaires de l'encodage/enregistrement d'image, symétrique du décodage (LOT-54 TACHE-01, EX-EDIT-045). More...

#include <cstdint>
#include <filesystem>
#include <string>
#include <system_error>
#include <gtest/gtest.h>
#include "HMI/Graphics/TextureLoader.h"

Functions

 TEST_F (ImageEncode, AllerRetourExactAlphaCompris)
 Encoder puis décoder restitue exactement les mêmes pixels, canal alpha compris (opaque, transparent et partiellement transparent).
 TEST_F (ImageEncode, DossierInexistantEchoueProprement)
 Un dossier de destination inexistant est une erreur récupérable : aucune exception, résultat exploitable.
 TEST_F (ImageEncode, DimensionsIncoherentesEchouentProprement)
 Une image invalide (dimensions non conformes au tampon fourni) est refusée sans exception plutôt que d'écrire un fichier corrompu.
 TEST_F (ImageEncode, AucunFichierTemporaireApresSucces)
 L'écriture est atomique : aucun fichier temporaire ne subsiste après un encodage réussi.
 TEST_F (ImageEncode, EcrasementAtomiqueSansResidu)
 L'écriture est atomique : un enregistrement par-dessus un asset existant préserve l'ancien fichier tant que le nouveau n'est pas complet, et ne laisse rien de résiduel après coup.

Detailed Description

Tests unitaires de l'encodage/enregistrement d'image, symétrique du décodage (LOT-54 TACHE-01, EX-EDIT-045).

Function Documentation

◆ TEST_F() [1/5]

TEST_F ( ImageEncode ,
AllerRetourExactAlphaCompris  )

Encoder puis décoder restitue exactement les mêmes pixels, canal alpha compris (opaque, transparent et partiellement transparent).

Cas de test : Encoder puis decoder une image restitue exactement les memes pixels, alpha compris.
Categorie : Unitaire · Encodage image
Criticite : Critique
Etapes :
1. Encoder une image 2x2 couvrant plusieurs niveaux d'alpha vers un fichier PNG.

  1. Decoder ce fichier.
    Resultat attendu : Les dimensions et tous les pixels decodes sont identiques a l'image d'origine.

◆ TEST_F() [2/5]

TEST_F ( ImageEncode ,
AucunFichierTemporaireApresSucces  )

L'écriture est atomique : aucun fichier temporaire ne subsiste après un encodage réussi.

Cas de test : Aucun fichier temporaire ne subsiste apres un encodage reussi.
Categorie : Unitaire · Encodage image
Criticite : Majeur
Etapes :
1. Encoder une image vers un fichier.
2. Lister le dossier de destination.
Resultat attendu : Seul le fichier final est present, aucun fichier .tmp.

◆ TEST_F() [3/5]

TEST_F ( ImageEncode ,
DimensionsIncoherentesEchouentProprement  )

Une image invalide (dimensions non conformes au tampon fourni) est refusée sans exception plutôt que d'écrire un fichier corrompu.

Cas de test : Encoder une image aux dimensions incoherentes echoue proprement.
Categorie : Unitaire · Encodage image
Criticite : Majeur
Etapes :
1. Construire une image dont le nombre de pixels ne correspond pas a largeur*hauteur.
2. Tenter de l'encoder.
Resultat attendu : La fonction renvoie false, sans lever d'exception, et n'ecrit aucun fichier.

◆ TEST_F() [4/5]

TEST_F ( ImageEncode ,
DossierInexistantEchoueProprement  )

Un dossier de destination inexistant est une erreur récupérable : aucune exception, résultat exploitable.

Cas de test : Encoder vers un dossier inexistant echoue proprement, sans exception.
Categorie : Unitaire · Encodage image
Criticite : Majeur
Etapes :
1. Tenter d'encoder une image vers un chemin dont le dossier parent n'existe pas.
Resultat attendu : La fonction renvoie false, sans lever d'exception.

◆ TEST_F() [5/5]

TEST_F ( ImageEncode ,
EcrasementAtomiqueSansResidu  )

L'écriture est atomique : un enregistrement par-dessus un asset existant préserve l'ancien fichier tant que le nouveau n'est pas complet, et ne laisse rien de résiduel après coup.

Cas de test : Enregistrer par-dessus un asset existant remplace son contenu sans residu.
Categorie : Unitaire · Encodage image
Criticite : Majeur
Etapes :
1. Encoder une premiere image vers un fichier.
2. Encoder une seconde image differente vers le meme fichier.
3. Decoder le fichier et lister le dossier.
Resultat attendu : Le fichier contient la seconde image, et aucun fichier temporaire ne subsiste.