|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires du tri par profondeur en vue de dessus (EX-REN-018, LOT-07). More...
#include <vector>#include <gtest/gtest.h>#include "Core/Ecs/Components/Sprite.h"#include "Core/Ecs/Components/Transform.h"#include "Core/Ecs/World.h"#include "Core/Math/Vector2.h"#include "HMI/Graphics/ComposedScene.h"#include "HMI/Graphics/MissingTexture.h"#include "HMI/Graphics/QuadRecorder.h"#include "HMI/Graphics/RenderLayer.h"Functions | |
| TEST (TriParProfondeurTest, TroisPrimitivesSortentParPiedCroissant) | |
| Trois primitives de la bande de profondeur, à Y croissants, sortent dans l'ordre de leur pied — même quand leurs textures diffèrent (EX-REN-018). | |
| TEST (TriParProfondeurTest, PersonnageEntreDeuxObjets) | |
| Le personnage passe derrière un objet plus bas et devant un objet plus haut : le rang de calque ne tranche plus à l'intérieur de la bande (EX-REN-018). | |
| TEST (TriParProfondeurTest, PiedEgalConserveLOrdreDeComposition) | |
| À pied égal, l'ordre reste celui de la composition : deux sprites ne peuvent pas scintiller d'une image à l'autre (EX-REN-018). | |
| TEST (TriParProfondeurTest, QuantificationAuPixel) | |
| Un écart de moins d'un pixel ne départage pas deux profondeurs : la quantification au pixel évite qu'un arrondi flottant fasse permuter deux sprites (EX-REN-018). | |
| TEST (TriParProfondeurTest, LaProfondeurNeDebordePasDeSaBande) | |
| Les bandes restent hiérarchisées : la profondeur ne fait jamais passer un objet devant un plan de premier plan, ni sous les tuiles (EX-REN-014). | |
| TEST (TriParProfondeurTest, CompositionAlimenteLaProfondeurDepuisLePied) | |
| La composition depuis l'ECS alimente elle-même l'ordre de profondeur, depuis le pied du quad : deux sprites de hauteurs différentes posés sur la même case s'ordonnent pareil (EX-REN-018). | |
| TEST (TriParProfondeurTest, HorsBandeLeTriFinResteCeluiDeLaCouche) | |
| Hors de la bande de profondeur, core::Sprite::layer conserve son rôle de tri fin : le rang de couche du LOT-04 continue d'ordonner sol et décor entre eux (EX-LVL-016). | |
Tests unitaires du tri par profondeur en vue de dessus (EX-REN-018, LOT-07).
Composition pure, sans GPU (EX-NFR-004).
| TEST | ( | TriParProfondeurTest | , |
| CompositionAlimenteLaProfondeurDepuisLePied | ) |
La composition depuis l'ECS alimente elle-même l'ordre de profondeur, depuis le pied du quad : deux sprites de hauteurs différentes posés sur la même case s'ordonnent pareil (EX-REN-018).
Cas de test : La composition alimente l'ordre de profondeur depuis le pied du quad.
Categorie : Unitaire · Tri par profondeur
Criticite : Critique
Etapes :
1. Peupler un monde d'un objet haut et d'un personnage bas, poses sur la meme ligne.
2. Composer depuis l'ECS et trier.
Resultat attendu : Les deux portent le meme ordre de profondeur, celui de leur pied commun.
| TEST | ( | TriParProfondeurTest | , |
| HorsBandeLeTriFinResteCeluiDeLaCouche | ) |
Hors de la bande de profondeur, core::Sprite::layer conserve son rôle de tri fin : le rang de couche du LOT-04 continue d'ordonner sol et décor entre eux (EX-LVL-016).
Cas de test : Hors bande de profondeur, le tri fin reste celui de Sprite::layer.
Categorie : Unitaire · Tri par profondeur
Criticite : Majeur
Etapes :
1. Peupler un monde de deux tuiles de rangs de couche differents, la seconde plus basse.
2. Composer et trier.
Resultat attendu : L'ordre suit le rang de couche, pas la position.
| TEST | ( | TriParProfondeurTest | , |
| LaProfondeurNeDebordePasDeSaBande | ) |
Les bandes restent hiérarchisées : la profondeur ne fait jamais passer un objet devant un plan de premier plan, ni sous les tuiles (EX-REN-014).
Cas de test : La profondeur ne deborde pas de sa bande.
Categorie : Unitaire · Tri par profondeur
Criticite : Critique
Etapes :
1. Composer une tuile, un objet tres bas, un plan de premier plan tres haut.
2. Trier.
Resultat attendu : La tuile sort en premier, l'objet ensuite, le premier plan en dernier.
| TEST | ( | TriParProfondeurTest | , |
| PersonnageEntreDeuxObjets | ) |
Le personnage passe derrière un objet plus bas et devant un objet plus haut : le rang de calque ne tranche plus à l'intérieur de la bande (EX-REN-018).
Cas de test : Le personnage passe derriere un objet plus bas et devant un objet plus haut.
Categorie : Unitaire · Tri par profondeur
Criticite : Critique
Etapes :
1. Composer un arbre au-dessus du personnage, le personnage, puis un arbre en dessous.
2. Trier.
Resultat attendu : L'arbre du haut sort avant le personnage, celui du bas apres.
| TEST | ( | TriParProfondeurTest | , |
| PiedEgalConserveLOrdreDeComposition | ) |
À pied égal, l'ordre reste celui de la composition : deux sprites ne peuvent pas scintiller d'une image à l'autre (EX-REN-018).
Cas de test : A pied egal, l'ordre de composition est preserve : aucun scintillement.
Categorie : Unitaire · Tri par profondeur
Criticite : Critique
Etapes :
1. Composer trois primitives de meme pied, a des positions differentes.
2. Trier.
3. Recomposer et retrier a l'identique.
Resultat attendu : Les deux tris rendent exactement le meme ordre.
| TEST | ( | TriParProfondeurTest | , |
| QuantificationAuPixel | ) |
Un écart de moins d'un pixel ne départage pas deux profondeurs : la quantification au pixel évite qu'un arrondi flottant fasse permuter deux sprites (EX-REN-018).
Cas de test : Un ecart inferieur au pixel ne departage pas deux profondeurs.
Categorie : Unitaire · Tri par profondeur
Criticite : Majeur
Etapes :
1. Calculer l'ordre de deux pieds distants d'un centieme d'unite.
2. Le comparer a celui de deux pieds distants d'une demi-unite.
Resultat attendu : Le premier couple partage le meme ordre, le second non.
| TEST | ( | TriParProfondeurTest | , |
| TroisPrimitivesSortentParPiedCroissant | ) |
Trois primitives de la bande de profondeur, à Y croissants, sortent dans l'ordre de leur pied — même quand leurs textures diffèrent (EX-REN-018).
C'est le cœur du lot : avant lui, le regroupement par texture tranchait avant le tri fin, et l'ordre de profondeur ne survivait pas à deux textures. Cas de test : Trois primitives a Y croissants sortent dans l'ordre de leur pied.
Categorie : Unitaire · Tri par profondeur
Criticite : Critique
Etapes :
1. Composer trois primitives de la bande de profondeur, dans le desordre, avec deux textures differentes.
2. Trier la scene.
Resultat attendu : Les trois sortent par pied croissant, quelle que soit leur texture.