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

Tests du bestiaire de base (LOT-33) : les 94 profils chargent, et dix sont rejoues contre des valeurs RECOPIEES A LA MAIN d'Animaux.pdf. More...

#include <algorithm>
#include <array>
#include <cstddef>
#include <filesystem>
#include <optional>
#include <set>
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "Core/Rpg/Bestiary.h"
#include "Core/Rpg/Dice.h"
#include "Core/Rpg/RpgEnumNames.h"

Functions

 TEST (BestiaryTest, LesQuatreVingtQuatorzeProfilsChargent)
 Les 94 profils du SRD chargent sans une erreur.
 TEST (BestiaryTest, DixProfilsConcordentAvecLeLivre)
 Dix profils sont rejoues contre les valeurs du PDF, recopiees a la main.
 TEST (BestiaryTest, ChaqueProfilEstComplet)
 Toute creature porte les six caracteristiques et une vitesse de marche.
 TEST (BestiaryTest, UneVitesseNulleSignifieUnAutreDeplacement)
 Les creatures a vitesse de marche nulle nagent ou volent.
 TEST (BestiaryTest, LesMecanismesExigesSontAnnonces)
 Les mecanismes exiges par les donnees sont listes au chargement (EX-CNT-031).
 TEST (BestiaryTest, UnDossierAbsentEstSignale)
 Un dossier absent est signale, jamais confondu avec un bestiaire vide.

Detailed Description

Tests du bestiaire de base (LOT-33) : les 94 profils chargent, et dix sont rejoues contre des valeurs RECOPIEES A LA MAIN d'Animaux.pdf.

Le second point est l'acceptation du lot, et il n'est pas negociable dans sa forme : les valeurs ci-dessous ont ete lues sur le PDF, pas copiees depuis le JSON produit. Un test qui comparerait la sortie de la generation a elle-meme passerait quelle que soit la faute d'extraction – c'est exactement la panne qu'il doit exclure.

Function Documentation

◆ TEST() [1/6]

TEST ( BestiaryTest ,
ChaqueProfilEstComplet  )

Toute creature porte les six caracteristiques et une vitesse de marche.

Cas de test : Aucun profil du bestiaire n'a de caracteristique ni de vitesse manquante.
Categorie : Unitaire · Bestiaire
Criticite : Critique
Etapes :
1. Pour chaque creature, verifier que les six caracteristiques sont dans [1, 30].

  1. Verifier que la vitesse de marche est renseignee, meme nulle.
    Resultat attendu : Les 94 profils passent ; une extraction incomplete echoue ici.

◆ TEST() [2/6]

TEST ( BestiaryTest ,
DixProfilsConcordentAvecLeLivre  )

Dix profils sont rejoues contre les valeurs du PDF, recopiees a la main.

Cas de test : Dix blocs de statistiques du bestiaire concordent avec le livre.
Categorie : Unitaire · Bestiaire
Criticite : Critique
Etapes :
1. Pour douze creatures, comparer classe d'armure, points de vie, vitesse de marche, facteur de puissance et degats de l'attaque principale aux valeurs lues sur Animaux.pdf.
Resultat attendu : Les cinq valeurs coincident pour chacune ; une extraction decalee d'une ligne fait echouer ce test.

◆ TEST() [3/6]

TEST ( BestiaryTest ,
LesMecanismesExigesSontAnnonces  )

Les mecanismes exiges par les donnees sont listes au chargement (EX-CNT-031).

Cas de test : Le bestiaire annonce les mecanismes que les creatures exigent du moteur.
Categorie : Unitaire · Bestiaire
Criticite : Majeur
Etapes :
1. Collecter les mecanismesRequis de toutes les creatures chargees.
Resultat attendu : La liste porte la resistance conditionnelle et la langue comprise sans etre parlee, les deux nuances que les champs types ne peuvent pas exprimer.

◆ TEST() [4/6]

TEST ( BestiaryTest ,
LesQuatreVingtQuatorzeProfilsChargent  )

Les 94 profils du SRD chargent sans une erreur.

Cas de test : Les 94 creatures du bestiaire de base se chargent toutes.
Categorie : Unitaire · Bestiaire
Criticite : Critique
Etapes :
1. Charger Source/Elements/Rpg/creatures.

  1. Compter les creatures chargees et les erreurs rapportees.
    Resultat attendu : 94 creatures, aucune erreur ; chaque identifiant est unique.

◆ TEST() [5/6]

TEST ( BestiaryTest ,
UnDossierAbsentEstSignale  )

Un dossier absent est signale, jamais confondu avec un bestiaire vide.

Cas de test : Charger un dossier de creatures inexistant produit une erreur nommee.
Categorie : Unitaire · Bestiaire
Criticite : Majeur
Etapes :
1. Charger un chemin qui n'existe pas.
Resultat attendu : Aucune creature, une erreur qui nomme le chemin, et aucune exception.

◆ TEST() [6/6]

TEST ( BestiaryTest ,
UneVitesseNulleSignifieUnAutreDeplacement  )

Les creatures a vitesse de marche nulle nagent ou volent.

Cas de test : Une creature sans vitesse de marche possede un autre mode de deplacement.
Categorie : Unitaire · Bestiaire
Criticite : Majeur
Etapes :
1. Relever les creatures dont walk vaut 0.
Resultat attendu : Chacune porte une vitesse de nage, de vol, d'escalade ou de creusement.