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

Tests unitaires des repères du mode création : pelure d'oignon, aplatissement et rééchantillonnage (EX-EDIT-046, LOT-69 TACHE-07). More...

#include <cstdint>
#include <cstdlib>
#include <vector>
#include <gtest/gtest.h>
#include "Core/Levels/LevelDraft.h"
#include "Core/Levels/TileType.h"
#include "HMI/Editor/PlaneReference.h"

Functions

 TEST (PlaneReferenceTest, ReechantillonnageSeizeVersHuitEstExact)
 Le rééchantillonnage 16 → 8 garde un pixel sur deux, sans jamais moyenner.
 TEST (PlaneReferenceTest, ReechantillonnageHuitVersSeizeDuplique)
 Le rééchantillonnage 8 → 16 duplique chaque pixel : aucun demi-ton n'apparaît.
 TEST (PlaneReferenceTest, RapportNonEntierRefuse)
 Un rapport de densités non entier est refusé plutôt qu'interpolé.
 TEST (PlaneReferenceTest, AlphaOverEstAssociatif)
 L'alpha-over est associatif : aplatir trois couches d'un coup donne le même résultat que deux fois deux — sans quoi l'ordre d'aplatissement changerait l'image.
 TEST (PlaneReferenceTest, AplatissementIgnoreUneCoucheMasquee)
 L'aplatissement ignore une couche masquée, exactement comme si elle n'existait pas.
 TEST (PlaneReferenceTest, AplatissementRameneChaqueCoucheALaDensiteCible)
 Une couche de densité plus faible est ramenée à la densité cible avant d'être composée : l'aplatissement n'exige pas que tous les plans partagent une densité.
 TEST (PlaneReferenceTest, PelureDOignonDeterministe)
 La pelure d'oignon est déterministe : une couleur plate par type de tuile, cases vides transparentes, aux dimensions du plan.
 TEST (PlaneReferenceTest, DensiteInvalideNeProduitAucunePelure)
 Une densité invalide ne produit pas de repère : le format n'accepte que 4, 8 et 16.

Detailed Description

Tests unitaires des repères du mode création : pelure d'oignon, aplatissement et rééchantillonnage (EX-EDIT-046, LOT-69 TACHE-07).

Function Documentation

◆ TEST() [1/8]

TEST ( PlaneReferenceTest ,
AlphaOverEstAssociatif  )

L'alpha-over est associatif : aplatir trois couches d'un coup donne le même résultat que deux fois deux — sans quoi l'ordre d'aplatissement changerait l'image.

Cas de test : L'alpha-over est associatif.
Categorie : Unitaire · Reference de plan
Criticite : Critique
Etapes :
1. Composer trois pixels semi-transparents en groupant a gauche, puis a droite.
Resultat attendu : Les deux resultats coincident.

◆ TEST() [2/8]

TEST ( PlaneReferenceTest ,
AplatissementIgnoreUneCoucheMasquee  )

L'aplatissement ignore une couche masquée, exactement comme si elle n'existait pas.

Cas de test : L'aplatissement ignore une couche masquee.
Categorie : Unitaire · Reference de plan
Criticite : Critique
Etapes :
1. Aplatir deux couches opaques dont la seconde est masquee.
2. Recommencer sans la seconde couche.
Resultat attendu : Les deux images aplaties sont identiques.

◆ TEST() [3/8]

TEST ( PlaneReferenceTest ,
AplatissementRameneChaqueCoucheALaDensiteCible  )

Une couche de densité plus faible est ramenée à la densité cible avant d'être composée : l'aplatissement n'exige pas que tous les plans partagent une densité.

Cas de test : L'aplatissement ramene chaque couche a la densite cible.
Categorie : Unitaire · Reference de plan
Criticite : Majeur
Etapes :
1. Aplatir une couche de densite 8 sur une cible de densite 16.
Resultat attendu : L'image aplatie fait la taille de la cible et porte la couleur de la couche.

◆ TEST() [4/8]

TEST ( PlaneReferenceTest ,
DensiteInvalideNeProduitAucunePelure  )

Une densité invalide ne produit pas de repère : le format n'accepte que 4, 8 et 16.

Cas de test : Une densite invalide ne produit aucune pelure d'oignon.
Categorie : Unitaire · Reference de plan
Criticite : Majeur
Etapes :
1. Construire la pelure a une densite hors format.
Resultat attendu : L'image renvoyee est vide.

◆ TEST() [5/8]

TEST ( PlaneReferenceTest ,
PelureDOignonDeterministe  )

La pelure d'oignon est déterministe : une couleur plate par type de tuile, cases vides transparentes, aux dimensions du plan.

Cas de test : La pelure d'oignon est deterministe et aux dimensions du plan.
Categorie : Unitaire · Reference de plan
Criticite : Critique
Etapes :
1. Construire la pelure d'un brouillon a deux tuiles, en densite 8.
2. La reconstruire a l'identique.
Resultat attendu : Memes dimensions et memes pixels ; la case vide reste transparente, la case solide est opaque et uniforme.

◆ TEST() [6/8]

TEST ( PlaneReferenceTest ,
RapportNonEntierRefuse  )

Un rapport de densités non entier est refusé plutôt qu'interpolé.

Cas de test : Un rapport de densites non entier est refuse.
Categorie : Unitaire · Reference de plan
Criticite : Majeur
Etapes :
1. Reechantillonner de la densite 16 vers une densite qui n'en est pas un diviseur.
Resultat attendu : L'image renvoyee est vide.

◆ TEST() [7/8]

TEST ( PlaneReferenceTest ,
ReechantillonnageHuitVersSeizeDuplique  )

Le rééchantillonnage 8 → 16 duplique chaque pixel : aucun demi-ton n'apparaît.

Cas de test : Le reechantillonnage 8 vers 16 duplique chaque pixel.
Categorie : Unitaire · Reference de plan
Criticite : Majeur
Etapes :
1. Reechantillonner une image 2x2 de la densite 8 vers la densite 16.
Resultat attendu : Chaque pixel source occupe un carre 2x2, a l'identique.

◆ TEST() [8/8]

TEST ( PlaneReferenceTest ,
ReechantillonnageSeizeVersHuitEstExact  )

Le rééchantillonnage 16 → 8 garde un pixel sur deux, sans jamais moyenner.

Cas de test : Le reechantillonnage 16 vers 8 est exact, sans interpolation.
Categorie : Unitaire · Reference de plan
Criticite : Critique
Etapes :
1. Reechantillonner un damier 4x4 de la densite 16 vers la densite 8.
Resultat attendu : L'image fait 2x2 et chaque pixel vaut exactement un pixel source, jamais une moyenne.