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

Tests unitaires du modèle de clip d'animation (core::AnimationClip/core::ClipSet, LOT-46 TACHE-01) : données pures, sans GPU ni fichier. More...

#include <gtest/gtest.h>
#include "Core/Ecs/AnimationClip.h"

Functions

 TEST (AnimationClipTest, ClipExistantResoluParNom)
 Un clip ajouté au jeu se retrouve par son nom : indexOf rend un index valide et clipAt rend bien ce clip.
 TEST (AnimationClipTest, ClipInexistantRepliDeterministe)
 Un nom inconnu rend -1, et un index hors bornes retombe déterministement sur le premier clip au lieu de planter (EX-NFR-040) : les noms de clips viennent de fichiers de données éditables, une faute de frappe doit dégrader l'animation, jamais l'exécution.
 TEST (AnimationClipTest, JeuVideRepliSurUnClipParDefaut)
 Un jeu de clips vide rend un clip par défaut non dégénéré : il porte au moins une image, donc l'animation reste affichable.
 TEST (AnimationClipTest, ClipAUneSeuleImage)
 Un clip à une seule image est un clip valide : c'est la forme que prend tout état statique (porte ouverte, interrupteur au repos), qui n'a pas à être traité à part.
 TEST (AnimationClipTest, DureesInegalesEntreClips)
 La durée d'image est propre à chaque clip : un repos lent et une course rapide coexistent dans le même jeu sans qu'une cadence globale ne les uniformise.
 TEST (AnimationClipTest, ClipJoueUneFoisAvecClipSuivant)
 Un clip joué une seule fois peut désigner le clip qui prend le relais, et ce nom se résout bien dans le même jeu : c'est le mécanisme d'une transition (ouverture d'une porte) qui s'arrête sur un état stable au lieu de boucler.
 TEST (AnimationClipTest, AjouterUnClipDeMemeNomLeRemplace)
 Ajouter un clip portant un nom déjà pris remplace l'existant à son index, sans en créer un second : les index déjà distribués restent valides, et un catalogue rechargé à chaud ne se met pas à enfler de doublons à chaque relecture.

Detailed Description

Tests unitaires du modèle de clip d'animation (core::AnimationClip/core::ClipSet, LOT-46 TACHE-01) : données pures, sans GPU ni fichier.

Function Documentation

◆ TEST() [1/7]

TEST ( AnimationClipTest ,
AjouterUnClipDeMemeNomLeRemplace  )

Ajouter un clip portant un nom déjà pris remplace l'existant à son index, sans en créer un second : les index déjà distribués restent valides, et un catalogue rechargé à chaud ne se met pas à enfler de doublons à chaque relecture.

Cas de test : Ajouter un clip de même nom remplace l'existant, à index constant.
Categorie : Unitaire · Clip d'animation
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [2/7]

TEST ( AnimationClipTest ,
ClipAUneSeuleImage  )

Un clip à une seule image est un clip valide : c'est la forme que prend tout état statique (porte ouverte, interrupteur au repos), qui n'a pas à être traité à part.

Cas de test : Un clip d'une seule image est un clip valide.
Categorie : Unitaire · Clip d'animation
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [3/7]

TEST ( AnimationClipTest ,
ClipExistantResoluParNom  )

Un clip ajouté au jeu se retrouve par son nom : indexOf rend un index valide et clipAt rend bien ce clip.

Le nom est la seule clé que manipulent les données d'animation, un jeu qui ne saurait pas le résoudre ne servirait à rien. Cas de test : Un clip existant est résolu par son nom.
Categorie : Unitaire · Clip d'animation
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [4/7]

TEST ( AnimationClipTest ,
ClipInexistantRepliDeterministe  )

Un nom inconnu rend -1, et un index hors bornes retombe déterministement sur le premier clip au lieu de planter (EX-NFR-040) : les noms de clips viennent de fichiers de données éditables, une faute de frappe doit dégrader l'animation, jamais l'exécution.

Cas de test : Un nom inconnu ou un index hors bornes retombe sur le premier clip, sans plantage.
Categorie : Unitaire · Clip d'animation
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [5/7]

TEST ( AnimationClipTest ,
ClipJoueUneFoisAvecClipSuivant  )

Un clip joué une seule fois peut désigner le clip qui prend le relais, et ce nom se résout bien dans le même jeu : c'est le mécanisme d'une transition (ouverture d'une porte) qui s'arrête sur un état stable au lieu de boucler.

Cas de test : Un clip joué une fois désigne un clip suivant, résolu dans le même jeu.
Categorie : Unitaire · Clip d'animation
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [6/7]

TEST ( AnimationClipTest ,
DureesInegalesEntreClips  )

La durée d'image est propre à chaque clip : un repos lent et une course rapide coexistent dans le même jeu sans qu'une cadence globale ne les uniformise.

Cas de test : Chaque clip garde sa propre durée d'image.
Categorie : Unitaire · Clip d'animation
Criticite : Majeur
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.

◆ TEST() [7/7]

TEST ( AnimationClipTest ,
JeuVideRepliSurUnClipParDefaut  )

Un jeu de clips vide rend un clip par défaut non dégénéré : il porte au moins une image, donc l'animation reste affichable.

clipAt ne doit jamais renvoyer une référence invalide, même quand aucun clip n'a été chargé. Cas de test : Un jeu de clips vide se replie sur un clip par défaut portant au moins une image.
Categorie : Unitaire · Clip d'animation
Criticite : Critique
Etapes :
1. Mettre en place le contexte du test (arrangement).
2. Executer le scenario et verifier les assertions.