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

Tests unitaires du vocabulaire de terrain du RPG (EX-EXP-005, LOT-08) : franchissabilité, aller-retour de format, et chaîne complète jusqu'aux libellés livrés. More...

#include <algorithm>
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "Core/Levels/LevelLoader.h"
#include "Core/Levels/LevelWriter.h"
#include "Core/Levels/TileType.h"
#include "Core/Levels/TileTypeName.h"

Functions

 TEST (TerrainRpgTest, AllerRetourSurChaqueTypeDeTerrain)
 Chaque type de terrain survit à l'aller-retour chargement → écriture → rechargement (EX-LVL-003).
 TEST (TerrainRpgTest, FranchissabiliteDeChaqueTerrain)
 Ce qui se marche se marche, ce qui arrête arrête : la franchissabilité de chaque type de terrain est celle que son nom promet.
 TEST (TerrainRpgTest, LaRiveDistingueLesDeuxEaux)
 Une rive existe : l'eau peu profonde se traverse, l'eau profonde non — c'est la seule distinction qui rende une côte jouable.
 TEST (TerrainRpgTest, BorneDeLEnumerationDerivee)
 La borne de l'énumération reste dérivée du dernier type : aucune valeur recopiée à la main ne peut se désynchroniser.

Detailed Description

Tests unitaires du vocabulaire de terrain du RPG (EX-EXP-005, LOT-08) : franchissabilité, aller-retour de format, et chaîne complète jusqu'aux libellés livrés.

Function Documentation

◆ TEST() [1/4]

TEST ( TerrainRpgTest ,
AllerRetourSurChaqueTypeDeTerrain  )

Chaque type de terrain survit à l'aller-retour chargement → écriture → rechargement (EX-LVL-003).

Cas de test : Chaque type de terrain survit a l'aller-retour de format.
Categorie : Unitaire · Terrain RPG
Criticite : Critique
Etapes :
1. Pour chacun des neuf types, charger une carte qui le porte.
2. La reserialiser puis la recharger.
Resultat attendu : La case porte toujours le meme type.

◆ TEST() [2/4]

TEST ( TerrainRpgTest ,
BorneDeLEnumerationDerivee  )

La borne de l'énumération reste dérivée du dernier type : aucune valeur recopiée à la main ne peut se désynchroniser.

Cas de test : La borne de l'enumeration reste derivee du dernier type.
Categorie : Unitaire · Terrain RPG
Criticite : Majeur
Etapes :
1. Comparer TILE_TYPE_COUNT au dernier enumerateur.
2. Verifier que chaque valeur jusqu'a cette borne porte un nom.
Resultat attendu : La borne vaut le dernier type plus un, et les vingt noms sont non vides et uniques.

◆ TEST() [3/4]

TEST ( TerrainRpgTest ,
FranchissabiliteDeChaqueTerrain  )

Ce qui se marche se marche, ce qui arrête arrête : la franchissabilité de chaque type de terrain est celle que son nom promet.

L'eau profonde bloque alors qu'elle n'est pas de la matière : rien ne permet encore de la franchir, et core::isSolid est le seul endroit d'où la règle de nage la sortira le jour venu. Cas de test : La franchissabilite de chaque terrain est celle que son nom promet.
Categorie : Unitaire · Terrain RPG
Criticite : Critique
Etapes :
1. Interroger isSolid sur les neuf types.
Resultat attendu : Mur, falaise et eau profonde bloquent ; herbe, terre, sable, eau, pont et escalier laissent passer.

◆ TEST() [4/4]

TEST ( TerrainRpgTest ,
LaRiveDistingueLesDeuxEaux  )

Une rive existe : l'eau peu profonde se traverse, l'eau profonde non — c'est la seule distinction qui rende une côte jouable.

Cas de test : L'eau peu profonde se traverse, l'eau profonde non.
Categorie : Unitaire · Terrain RPG
Criticite : Majeur
Etapes :
1. Comparer la franchissabilite de Water et DeepWater.
Resultat attendu : Les deux different.