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

Tests du cumul des emplacements de sorts multiclasses (LOT-43, EX-RPG-041). More...

#include <array>
#include <filesystem>
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "Core/Data/JsonDocument.h"
#include "Core/Rpg/Multiclassing.h"

Functions

 TEST (MulticlassingTest, ExempleTravailleDuManuelDesJoueurs)
 L'exemple travaille du Manuel des Joueurs est reproduit a l'identique.
 TEST (MulticlassingTest, LArrondiSeFaitParClasse)
 L'arrondi se fait par classe, jamais sur le total.
 TEST (MulticlassingTest, LaMagieDePacteEstCompteeAPart)
 La magie de pacte n'entre pas dans le cumul.
 TEST (MulticlassingTest, ClassesSansIncantationEtBorneSuperieure)
 Les classes sans incantation n'apportent rien, et le total est borne a 20.
 TEST (MulticlassingTest, AllerRetourDesNomsDeProgression)
 Les noms de progression font l'aller-retour, et un nom inconnu est refuse.
 TEST (MulticlassingTest, LesProgressionsDeLaDonneeSontConnuesDuMoteur)
 La progression declaree par la donnee est celle que le moteur connait.

Detailed Description

Tests du cumul des emplacements de sorts multiclasses (LOT-43, EX-RPG-041).

Function Documentation

◆ TEST() [1/6]

TEST ( MulticlassingTest ,
AllerRetourDesNomsDeProgression  )

Les noms de progression font l'aller-retour, et un nom inconnu est refuse.

Cas de test : Les noms de progression de lanceur font l'aller-retour sans perte.
Categorie : Unitaire · Multiclassage
Criticite : Majeur
Etapes :
1. Convertir chaque progression en nom, puis le nom en progression.

  1. Analyser un nom inconnu.
    Resultat attendu : La progression d'origine est retrouvee ; le nom inconnu est refuse sans exception.

◆ TEST() [2/6]

TEST ( MulticlassingTest ,
ClassesSansIncantationEtBorneSuperieure  )

Les classes sans incantation n'apportent rien, et le total est borne a 20.

Cas de test : Une classe sans incantation n'apporte rien au niveau de lanceur, borne a 20.
Categorie : Unitaire · Multiclassage
Criticite : Majeur
Etapes :
1. Calculer le niveau d'un barbare 10 seul, puis d'un magicien 20 / clerc 20.
Resultat attendu : 0 pour le premier ; 20 pour le second, la table ne depassant pas ce niveau.

◆ TEST() [3/6]

TEST ( MulticlassingTest ,
ExempleTravailleDuManuelDesJoueurs  )

L'exemple travaille du Manuel des Joueurs est reproduit a l'identique.

Cas de test : L'exemple de multiclassage du Manuel des Joueurs est reproduit a l'identique.
Categorie : Unitaire · Multiclassage
Criticite : Critique
Etapes :
1. Calculer le niveau de lanceur d'un rodeur 4 / magicien 3.

  1. Lire les emplacements correspondants dans la table livree.
    Resultat attendu : Niveau de lanceur 5, et quatre emplacements de niveau 1, trois de niveau 2, deux de niveau 3 – les valeurs que le livre annonce lui-meme.

◆ TEST() [4/6]

TEST ( MulticlassingTest ,
LaMagieDePacteEstCompteeAPart  )

La magie de pacte n'entre pas dans le cumul.

Cas de test : Les emplacements de magie de pacte n'entrent pas dans le cumul multiclasse.
Categorie : Unitaire · Multiclassage
Criticite : Critique
Etapes :
1. Calculer le niveau de lanceur d'un sorcier 5 / magicien 3.
Resultat attendu : 3, la contribution du seul magicien ; les cinq niveaux de magie de pacte sont comptes a part (EX-RPG-052).

◆ TEST() [5/6]

TEST ( MulticlassingTest ,
LArrondiSeFaitParClasse  )

L'arrondi se fait par classe, jamais sur le total.

Cas de test : L'arrondi du niveau de lanceur se fait par classe, jamais sur le total.
Categorie : Unitaire · Multiclassage
Criticite : Critique
Etapes :
1. Calculer le niveau de lanceur d'un paladin 3 / rodeur 3.

  1. Calculer celui d'un guerrier 5 / roublard 5 sous archetype.
    Resultat attendu : 2 et non 3 pour le premier ; 2 et non 3 pour le second.

◆ TEST() [6/6]

TEST ( MulticlassingTest ,
LesProgressionsDeLaDonneeSontConnuesDuMoteur  )

La progression declaree par la donnee est celle que le moteur connait.

Cas de test : Les progressions de lanceur de la donnee sont toutes connues du moteur.
Categorie : Unitaire · Multiclassage
Criticite : Critique
Etapes :
1. Lire casterProgression de multiclassing.json.

  1. Analyser chaque valeur avec parseCasterProgression.
    Resultat attendu : Les douze classes sont presentes et leurs progressions sont toutes reconnues.