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

Tests unitaires de l'historique nommé annuler/refaire du canevas pixel art (LOT-54 TACHE-02, EX-EDIT-045). More...

#include <cstdint>
#include <filesystem>
#include <string>
#include <vector>
#include <gtest/gtest.h>
#include "HMI/Editor/PixelHistory.h"
#include "HMI/Editor/PixelOperations.h"
#include "HMI/Localization/Localization.h"

Functions

 TEST (PixelHistoryTest, SuiteDOperationsAnnulableEtRetablissable)
 Une suite d'opérations peut être annulée puis rétablie, restituant exactement les mêmes tampons à chaque étape.
 TEST (PixelHistoryTest, NouvelleOperationApresAnnulationVideLeRetablissement)
 Une nouvelle opération après une annulation vide la pile de rétablissement (la branche abandonnée ne redevient jamais valide).
 TEST (PixelHistoryTest, AnnulerAuDelaDuFondDePileSansEffet)
 Annuler au-delà du fond de la pile reste sans effet, plutôt que de corrompre l'état ou de lever une exception.
 TEST (PixelHistoryTest, JumpToEquivautADesAnnulationsSuccessives)
 Sauter directement à l'entrée n donne exactement le même tampon que n annulations successives depuis l'état le plus récent.
 TEST (PixelHistoryTest, JumpToHorsBornesEchoueProprement)
 jumpTo avec un index hors bornes échoue proprement, sans modifier le tampon.
 TEST (PixelHistoryTest, ProfondeurPlafonneeOublieLesEntreesLesPlusAnciennes)
 Au-delà de la profondeur maximale, les entrées les plus anciennes sont oubliées sans corrompre l'état courant du tampon.
 TEST (PixelHistoryTest, AppliedEntriesExposeLaListeOrdonnee)
 appliedEntries() expose la liste ordonnée (chronologique) des opérations en cours, de quoi alimenter le panneau d'historique visuel (TACHE-04).
 TEST (PixelHistoryTest, ClesDeNomDOperationExistentDansLesDeuxCatalogues)
 Chaque type d'opération produit une clé de traduction, et chaque clé existe, traduite, dans les deux catalogues livrés.

Detailed Description

Tests unitaires de l'historique nommé annuler/refaire du canevas pixel art (LOT-54 TACHE-02, EX-EDIT-045).

Function Documentation

◆ TEST() [1/8]

TEST ( PixelHistoryTest ,
AnnulerAuDelaDuFondDePileSansEffet  )

Annuler au-delà du fond de la pile reste sans effet, plutôt que de corrompre l'état ou de lever une exception.

Cas de test : Annuler au-dela du fond de pile est sans effet.
Categorie : Unitaire · Historique pixel
Criticite : Majeur
Etapes :
1. Sur un historique vide, appeler undo().
2. Appliquer une operation, l'annuler, puis annuler une seconde fois.
Resultat attendu : Chaque appel en trop renvoie false, sans modifier le tampon.

◆ TEST() [2/8]

TEST ( PixelHistoryTest ,
AppliedEntriesExposeLaListeOrdonnee  )

appliedEntries() expose la liste ordonnée (chronologique) des opérations en cours, de quoi alimenter le panneau d'historique visuel (TACHE-04).

Cas de test : appliedEntries expose la liste ordonnee des operations.
Categorie : Unitaire · Historique pixel
Criticite : Majeur
Etapes :
1. Appliquer pinceau puis gomme.
2. Lire appliedEntries().
Resultat attendu : La liste contient les deux entrees, dans l'ordre chronologique.

◆ TEST() [3/8]

TEST ( PixelHistoryTest ,
ClesDeNomDOperationExistentDansLesDeuxCatalogues  )

Chaque type d'opération produit une clé de traduction, et chaque clé existe, traduite, dans les deux catalogues livrés.

Cas de test : Chaque cle de nom d'operation existe dans les deux catalogues.
Categorie : Unitaire · Historique pixel
Criticite : Majeur
Etapes :
1. Charger fr.lang puis en.lang.
2. Resoudre la cle de chaque type d'operation.
Resultat attendu : Chaque cle resout vers un texte traduit, distinct de la cle elle-meme.

◆ TEST() [4/8]

TEST ( PixelHistoryTest ,
JumpToEquivautADesAnnulationsSuccessives  )

Sauter directement à l'entrée n donne exactement le même tampon que n annulations successives depuis l'état le plus récent.

Cas de test : jumpTo produit le meme tampon que des annulations successives.
Categorie : Unitaire · Historique pixel
Criticite : Critique
Etapes :
1. Appliquer quatre operations sur deux tampons identiques independants.

  1. Sur le premier, annuler successivement jusqu'a l'entree d'index 1.
    3. Sur le second, appeler jumpTo(1) directement.
    Resultat attendu : Les deux tampons sont strictement identiques.

◆ TEST() [5/8]

TEST ( PixelHistoryTest ,
JumpToHorsBornesEchoueProprement  )

jumpTo avec un index hors bornes échoue proprement, sans modifier le tampon.

Cas de test : jumpTo hors bornes echoue proprement.
Categorie : Unitaire · Historique pixel
Criticite : Mineur
Etapes :
1. Appliquer une operation.
2. Appeler jumpTo avec un index hors bornes.
Resultat attendu : jumpTo renvoie false et le tampon reste inchange.

◆ TEST() [6/8]

TEST ( PixelHistoryTest ,
NouvelleOperationApresAnnulationVideLeRetablissement  )

Une nouvelle opération après une annulation vide la pile de rétablissement (la branche abandonnée ne redevient jamais valide).

Cas de test : Une nouvelle operation apres une annulation vide la pile de retablissement.
Categorie : Unitaire · Historique pixel
Criticite : Critique
Etapes :
1. Appliquer deux operations.
2. Annuler la derniere.
3. Appliquer une operation differente.
Resultat attendu : Refaire n'a plus aucun effet : canRedo() est faux.

◆ TEST() [7/8]

TEST ( PixelHistoryTest ,
ProfondeurPlafonneeOublieLesEntreesLesPlusAnciennes  )

Au-delà de la profondeur maximale, les entrées les plus anciennes sont oubliées sans corrompre l'état courant du tampon.

Cas de test : Au-dela de la profondeur maximale, les entrees les plus anciennes sont oubliees.
Categorie : Unitaire · Historique pixel
Criticite : Majeur
Etapes :
1. Construire un historique de profondeur 2.
2. Appliquer trois operations.
Resultat attendu : Seules deux entrees restent (les deux plus recentes) ; le tampon courant reflete toujours les trois operations appliquees.

◆ TEST() [8/8]

TEST ( PixelHistoryTest ,
SuiteDOperationsAnnulableEtRetablissable  )

Une suite d'opérations peut être annulée puis rétablie, restituant exactement les mêmes tampons à chaque étape.

Cas de test : Une suite d'operations est annulable puis retablissable a l'identique.
Categorie : Unitaire · Historique pixel
Criticite : Critique
Etapes :
1. Appliquer trois operations successives.
2. Annuler deux fois.

  1. Retablir deux fois.
    Resultat attendu : Chaque annulation/retablissement restitue exactement le tampon attendu a cette etape.