|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires de la composition des plans picturaux (EX-REN-049, EX-DEC-040 à EX-DEC-042, LOT-69 TACHE-05). More...
#include <cstdint>#include <vector>#include <gtest/gtest.h>#include "Core/Levels/Plane.h"#include "HMI/Graphics/ComposedScene.h"#include "HMI/Graphics/PlaneVisibility.h"#include "HMI/Graphics/PlaneVisuals.h"#include "HMI/Graphics/QuadRecorder.h"#include "HMI/Graphics/RenderMode.h"Functions | |
| TEST (PlaneRenderTest, QuatrePlansRessortentDansLOrdreDuNiveau) | |
| Le point dur de la tâche : quatre plans composés ressortent, après tri, dans l'ordre du niveau — et non dans un ordre dicté par le regroupement par texture. | |
| TEST (PlaneRenderTest, ProfondeurChoisitLeCalque) | |
| La profondeur déclarée choisit le calque : derrière les tuiles, ou devant le personnage. | |
| TEST (PlaneRenderTest, QuadCouvreLeNiveauQuelleQueSoitLaDensite) | |
| Un plan couvre exactement les bornes du niveau, avec des UV pleines — et sa densité n'y change rien. | |
| TEST (PlaneRenderTest, OpaciteDevientAlphaDuQuad) | |
| L'opacité déclarée devient l'alpha du quad, borné à [0, 1]. | |
| TEST (PlaneRenderTest, RienNEstComposeEnModePhysique) | |
| Rien n'est composé en mode Physique : la lecture des collisions reste sans distraction. | |
| TEST (PlaneRenderTest, PlanMasqueOuIsoleNEmetRien) | |
| Un plan masqué n'émet rien ; isoler un plan masque tous les autres, quels que soient leurs masquages individuels. | |
| TEST (PlaneRenderTest, PlanSansTextureNEmetRien) | |
| Un plan dont l'image n'a pas pu être résolue n'émet rien plutôt que de composer un quad sans texture — le repli en damier, lui, est décidé à la résolution, pas ici. | |
| TEST (PlaneRenderTest, CoutConstantEnTailleDeNiveau) | |
| Le coût d'un plan est constant en taille de niveau : un quad et une passe, que le niveau double ou non — propriété qui distingue les plans des tuiles. | |
Tests unitaires de la composition des plans picturaux (EX-REN-049, EX-DEC-040 à EX-DEC-042, LOT-69 TACHE-05).
| TEST | ( | PlaneRenderTest | , |
| CoutConstantEnTailleDeNiveau | ) |
Le coût d'un plan est constant en taille de niveau : un quad et une passe, que le niveau double ou non — propriété qui distingue les plans des tuiles.
Cas de test : Le cout d'un plan ne depend pas de la taille du niveau.
Categorie : Unitaire · Plans picturaux
Criticite : Majeur
Etapes :
1. Composer quatre plans sur un niveau, puis sur un niveau deux fois plus grand.
Resultat attendu : Meme nombre de primitives et meme nombre de passes dans les deux cas.
| TEST | ( | PlaneRenderTest | , |
| OpaciteDevientAlphaDuQuad | ) |
L'opacité déclarée devient l'alpha du quad, borné à [0, 1].
Cas de test : L'opacite d'un plan devient l'alpha de son quad.
Categorie : Unitaire · Plans picturaux
Criticite : Majeur
Etapes :
1. Composer un plan a opacite 0,5 et un plan a opacite hors bornes.
Resultat attendu : L'alpha vaut 0,5 pour le premier, et reste borne a 1 pour le second.
| TEST | ( | PlaneRenderTest | , |
| PlanMasqueOuIsoleNEmetRien | ) |
Un plan masqué n'émet rien ; isoler un plan masque tous les autres, quels que soient leurs masquages individuels.
Cas de test : Masquage et isolement d'un plan.
Categorie : Unitaire · Plans picturaux
Criticite : Critique
Etapes :
1. Masquer un plan sur trois et composer.
2. Isoler un plan et composer.
3. Tout reafficher et composer.
Resultat attendu : Deux quads, puis un seul (celui isole), puis les trois.
| TEST | ( | PlaneRenderTest | , |
| PlanSansTextureNEmetRien | ) |
Un plan dont l'image n'a pas pu être résolue n'émet rien plutôt que de composer un quad sans texture — le repli en damier, lui, est décidé à la résolution, pas ici.
Cas de test : Un plan sans texture resolue n'emet aucun quad.
Categorie : Unitaire · Plans picturaux
Criticite : Majeur
Etapes :
1. Composer trois plans dont celui du milieu sans texture.
Resultat attendu : Deux quads, dans l'ordre des plans restants.
| TEST | ( | PlaneRenderTest | , |
| ProfondeurChoisitLeCalque | ) |
La profondeur déclarée choisit le calque : derrière les tuiles, ou devant le personnage.
Cas de test : La profondeur d'un plan choisit son calque de rendu.
Categorie : Unitaire · Plans picturaux
Criticite : Critique
Etapes :
1. Projeter les deux profondeurs sur leur calque.
2. Composer un plan de chaque profondeur.
Resultat attendu : Behind donne le calque Plane, Front le calque Foreground, et le plan de devant est dessine apres le personnage.
| TEST | ( | PlaneRenderTest | , |
| QuadCouvreLeNiveauQuelleQueSoitLaDensite | ) |
Un plan couvre exactement les bornes du niveau, avec des UV pleines — et sa densité n'y change rien.
C'est le sens du réglage (EX-DEC-041) : la densité est un compromis de mémoire, pas de cadrage. Un plan à 8 px/unité montre la même surface qu'un plan natif, en plus grossier. Cas de test : Un plan couvre les bornes du niveau, densite comprise.
Categorie : Unitaire · Plans picturaux
Criticite : Critique
Etapes :
1. Composer un plan a densite native, puis le meme a densite 8.
2. Comparer les deux quads.
Resultat attendu : Meme rectangle (0,0)-(largeur,hauteur) et memes UV pleines dans les deux cas.
| TEST | ( | PlaneRenderTest | , |
| QuatrePlansRessortentDansLOrdreDuNiveau | ) |
Le point dur de la tâche : quatre plans composés ressortent, après tri, dans l'ordre du niveau — et non dans un ordre dicté par le regroupement par texture.
hmi::ComposedScene::sort() intercale le rang de première apparition de texture entre le calque et le sortOrder. Chaque plan portant sa propre image, ce sont donc les rangs de texture qui les ordonnent, et cela ne coïncide avec l'ordre déclaré que parce que les plans sont composés en premier et dans l'ordre. La propriété est invisible à la lecture : sans ce test, elle se casserait silencieusement au premier réordonnancement d'appels. Cas de test : Quatre plans ressortent dans l'ordre du niveau apres tri.
Categorie : Unitaire · Plans picturaux
Criticite : Critique
Etapes :
1. Composer quatre plans d'un meme calque, chacun avec sa propre texture.
2. Trier la scene, puis lire l'ordre des textures liees.
Resultat attendu : Les quatre quads sortent dans l'ordre declare des plans.
| TEST | ( | PlaneRenderTest | , |
| RienNEstComposeEnModePhysique | ) |
Rien n'est composé en mode Physique : la lecture des collisions reste sans distraction.
Cas de test : Aucun plan n'est compose en mode Physique.
Categorie : Unitaire · Plans picturaux
Criticite : Critique
Etapes :
1. Composer trois plans en mode Physique.
Resultat attendu : La scene reste vide.