|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Test de non-régression du volume de primitives et de l'efficacité du culling (LOT-62 TACHE-01, EX-NFR-005, EX-NFR-004). More...
#include <cstddef>#include <filesystem>#include <optional>#include <string>#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/Levels/CameraFraming.h"#include "Core/Levels/Level.h"#include "Core/Levels/LevelLoader.h"#include "Core/Levels/LevelScene.h"#include "Core/Levels/Plane.h"#include "Core/Levels/TileMap.h"#include "Core/Physics/PlayerSpawn.h"#include "HMI/Editor/PlaneFileNaming.h"#include "HMI/Graphics/BackgroundRenderer.h"#include "HMI/Graphics/Camera2D.h"#include "HMI/Graphics/CameraZones.h"#include "HMI/Graphics/ComposedScene.h"#include "HMI/Graphics/ParticleRenderer.h"#include "HMI/Graphics/PlaneVisuals.h"#include "HMI/Graphics/PlayerSpriteTag.h"#include "HMI/Graphics/QuadRecorder.h"#include "HMI/Graphics/RenderLayer.h"#include "HMI/Graphics/RenderMode.h"#include "HMI/Graphics/RoomGrid.h"#include "HMI/Graphics/ShadowRenderer.h"#include "HMI/Graphics/TileAutotile.h"#include "HMI/Graphics/TileSkinTag.h"#include "HMI/Graphics/TileVisuals.h"Functions | |
| TEST (RenderBudgetTest, UnPlanDePlusSurUnNiveauAuPlafondDepasseLeBudgetDeMemoire) | |
| Un plan supplémentaire à densité native sur un niveau au plafond le fait dépasser : le garde-fou est vérifié dans le sens qui compte — celui du refus. | |
| TEST (RenderBudgetTest, LeCoutDesPlansEstInvariantEnTailleDeNiveau) | |
| Le coût de composition des plans est invariant en taille de niveau : c'est ce qui les distingue des tuiles, et la raison pour laquelle un plafond en primitives ne les verrait pas grossir. | |
| TEST (RenderBudgetTest, ChaquePlanCouteUnePrimitiveEtUnePasseJamaisEcartee) | |
| N plans coûtent exactement +N primitives soumises et +N passes, aucune écartée par le culling : un plan couvre le niveau entier, il est toujours à l'écran. | |
Test de non-régression du volume de primitives et de l'efficacité du culling (LOT-62 TACHE-01, EX-NFR-005, EX-NFR-004).
| TEST | ( | RenderBudgetTest | , |
| ChaquePlanCouteUnePrimitiveEtUnePasseJamaisEcartee | ) |
N plans coûtent exactement +N primitives soumises et +N passes, aucune écartée par le culling : un plan couvre le niveau entier, il est toujours à l'écran.
Cas de test : N plans coutent N primitives soumises, N passes et aucune ecartee.
Categorie : Unitaire · Budget de rendu
Criticite : Majeur
Etapes :
1. Composer quatre plans dans une scene cadree sur une salle du niveau.
Resultat attendu : Quatre primitives examinees, quatre soumises, quatre passes, zero ecartee.
| TEST | ( | RenderBudgetTest | , |
| LeCoutDesPlansEstInvariantEnTailleDeNiveau | ) |
Le coût de composition des plans est invariant en taille de niveau : c'est ce qui les distingue des tuiles, et la raison pour laquelle un plafond en primitives ne les verrait pas grossir.
Cas de test : Le cout en primitives des plans ne depend pas de la taille du niveau.
Categorie : Unitaire · Budget de rendu
Criticite : Critique
Etapes :
1. Composer quatre plans sur un niveau, puis sur un niveau deux fois plus grand sur chaque axe.
Resultat attendu : Memes primitives examinees, soumises et passes ; la memoire, elle, quadruple.
| TEST | ( | RenderBudgetTest | , |
| UnPlanDePlusSurUnNiveauAuPlafondDepasseLeBudgetDeMemoire | ) |
Un plan supplémentaire à densité native sur un niveau au plafond le fait dépasser : le garde-fou est vérifié dans le sens qui compte — celui du refus.
Un plafond qu'on n'a jamais vu refuser quoi que ce soit ne prouve rien. Cas de test : Un plan de plus sur un niveau au plafond fait echouer le budget de memoire.
Categorie : Unitaire · Budget de rendu
Criticite : Critique
Etapes :
1. Construire un niveau de la taille du plus grand niveau livre, charge de plans a densite native jusqu'au plafond.
2. Ajouter un plan de plus, a la meme densite.
Resultat attendu : Le total passe de « sous le plafond » a « au-dessus », sans que le format lui-meme soit atteint (le nombre de plans reste sous core::MAX_PLANES_PER_LEVEL).