|
JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
|
Tests unitaires des conversions pures vue ↔ image du canevas pixel art (LOT-54 TACHE-03, EX-EDIT-045). More...
#include <gtest/gtest.h>#include "HMI/Editor/PixelCanvasGeometry.h"#include "HMI/Editor/ThumbnailGeometry.h"Functions | |
| TEST (PixelCanvasGeometryTest, ScreenToImagePixelPourDiversesVues) | |
| Pour une combinaison de zoom et de décalage de vue, la position de souris donne le bon pixel image. | |
| TEST (PixelCanvasGeometryTest, ScreenToImagePixelHorsBornesRenvoieAbsence) | |
| Une position hors de l'image produit une absence de pixel, jamais un indice tronqué au bord — y compris pour une position écran négative. | |
| TEST (PixelCanvasGeometryTest, AllerRetourRectangleVersPixel) | |
| Le centre du rectangle écran d'un pixel, reconverti, donne exactement ce même pixel, à plusieurs zooms et décalages de vue. | |
| TEST (PixelCanvasGeometryTest, PixelCanvasRealSizeReutiliseThumbnailPixelSize) | |
| pixelCanvasRealSize réutilise hmi::thumbnailPixelSize sans la redéfinir : elle produit exactement les mêmes valeurs à plusieurs facteurs d'échelle d'affichage. | |
| TEST (PixelCanvasGeometryTest, CommandesDeZoomRestentBorneesEtEntieres) | |
| Les commandes de zoom avant/arrière restent toujours dans les bornes entières admises, sans jamais dépasser le zoom maximal ni descendre sous le minimal. | |
| TEST (PixelCanvasGeometryTest, GrilleVisibleAuSeuilAttendu) | |
| La grille de pixels n'est visible qu'à partir du zoom seuil, pas en-deçà. | |
| TEST (PixelCanvasGeometryTest, AllerRetourExactSousLeUnPourUn) | |
| Zoom rationnel (LOT-69 TACHE-07) : l'aller-retour vue ↔ image reste exact aux dénominateurs 2 et 4, c'est-à-dire sous le 1:1. | |
| TEST (PixelCanvasGeometryTest, PixelsCarresATousLesZooms) | |
| Les pixels restent carrés à tout zoom, dénominateur compris (EX-ARCH-022). | |
| TEST (PixelCanvasGeometryTest, CourseDeZoomRationnelleBornee) | |
| L'échelle descend sous le 1:1 puis y remonte : la course de zoom parcourt les dénominateurs avant les numérateurs, et se borne aux deux extrémités. | |
Tests unitaires des conversions pures vue ↔ image du canevas pixel art (LOT-54 TACHE-03, EX-EDIT-045).
| TEST | ( | PixelCanvasGeometryTest | , |
| AllerRetourExactSousLeUnPourUn | ) |
Zoom rationnel (LOT-69 TACHE-07) : l'aller-retour vue ↔ image reste exact aux dénominateurs 2 et 4, c'est-à-dire sous le 1:1.
L'extension est compatible par construction — le dénominateur vaut 1 par défaut, et tous les cas ci-dessus, écrits avant elle, valent tels quels. Ce test-ci couvre le terrain nouveau. Cas de test : L'aller-retour vue vers image reste exact sous le 1:1.
Categorie : Unitaire · Geometrie du canevas pixel
Criticite : Critique
Etapes :
1. Pour les denominateurs 2 et 4, convertir chaque pixel image en rectangle ecran.
| TEST | ( | PixelCanvasGeometryTest | , |
| AllerRetourRectangleVersPixel | ) |
Le centre du rectangle écran d'un pixel, reconverti, donne exactement ce même pixel, à plusieurs zooms et décalages de vue.
Cas de test : Le centre du rectangle d'un pixel reconverti donne ce meme pixel, a tout zoom.
Categorie : Unitaire · Geometrie du canevas pixel
Criticite : Critique
Etapes :
1. Pour plusieurs zooms et decalages, calculer le rectangle ecran d'un pixel.
| TEST | ( | PixelCanvasGeometryTest | , |
| CommandesDeZoomRestentBorneesEtEntieres | ) |
Les commandes de zoom avant/arrière restent toujours dans les bornes entières admises, sans jamais dépasser le zoom maximal ni descendre sous le minimal.
Cas de test : Les commandes de zoom restent bornees et entieres.
Categorie : Unitaire · Geometrie du canevas pixel
Criticite : Majeur
Etapes :
1. Zoomer avant a repetition au-dela du maximum.
2. Zoomer arriere a repetition en-deca du minimum.
Resultat attendu : Le zoom reste plafonne a PIXEL_CANVAS_MAX_ZOOM, puis revient et se plafonne a PIXEL_CANVAS_MIN_ZOOM.
| TEST | ( | PixelCanvasGeometryTest | , |
| CourseDeZoomRationnelleBornee | ) |
L'échelle descend sous le 1:1 puis y remonte : la course de zoom parcourt les dénominateurs avant les numérateurs, et se borne aux deux extrémités.
Cas de test : La course de zoom descend sous le 1:1 et y remonte.
Categorie : Unitaire · Geometrie du canevas pixel
Criticite : Critique
Etapes :
1. Reduire depuis le 1:1 jusqu'a la borne basse.
2. Agrandir jusqu'a repasser au 1:1.
Resultat attendu : L'echelle atteint 1/8 sans aller plus bas, puis revient exactement a 1.
| TEST | ( | PixelCanvasGeometryTest | , |
| GrilleVisibleAuSeuilAttendu | ) |
La grille de pixels n'est visible qu'à partir du zoom seuil, pas en-deçà.
Cas de test : pixelCanvasGridVisible bascule au seuil attendu.
Categorie : Unitaire · Geometrie du canevas pixel
Criticite : Mineur
Etapes :
1. Evaluer pixelCanvasGridVisible juste en-deca et juste au niveau du seuil.
Resultat attendu : Faux en-deca, vrai au seuil et au-dela.
| TEST | ( | PixelCanvasGeometryTest | , |
| PixelCanvasRealSizeReutiliseThumbnailPixelSize | ) |
pixelCanvasRealSize réutilise hmi::thumbnailPixelSize sans la redéfinir : elle produit exactement les mêmes valeurs à plusieurs facteurs d'échelle d'affichage.
Cas de test : pixelCanvasRealSize reutilise thumbnailPixelSize (LOT-56) sans la redefinir.
Categorie : Unitaire · Geometrie du canevas pixel
Criticite : Majeur
Etapes :
1. Calculer la taille reelle du canevas a plusieurs facteurs d'echelle.
2. Calculer independamment thumbnailPixelSize sur les memes tailles logiques.
Resultat attendu : Les deux resultats sont identiques a chaque facteur.
| TEST | ( | PixelCanvasGeometryTest | , |
| PixelsCarresATousLesZooms | ) |
Les pixels restent carrés à tout zoom, dénominateur compris (EX-ARCH-022).
Cas de test : Les pixels restent carres a tout zoom.
Categorie : Unitaire · Geometrie du canevas pixel
Criticite : Critique
Etapes :
1. Parcourir plusieurs numerateurs et les quatre denominateurs admis.
2. Comparer largeur et hauteur du rectangle ecran d'un pixel.
Resultat attendu : Largeur et hauteur sont egales dans tous les cas.
| TEST | ( | PixelCanvasGeometryTest | , |
| ScreenToImagePixelHorsBornesRenvoieAbsence | ) |
Une position hors de l'image produit une absence de pixel, jamais un indice tronqué au bord — y compris pour une position écran négative.
Cas de test : screenToImagePixel renvoie nullopt hors de l'image, y compris en negatif.
Categorie : Unitaire · Geometrie du canevas pixel
Criticite : Critique
Etapes :
1. Convertir une position ecran negative.
2. Convertir une position au-dela du bord droit/bas de l'image.
Resultat attendu : Les deux conversions renvoient nullopt.
| TEST | ( | PixelCanvasGeometryTest | , |
| ScreenToImagePixelPourDiversesVues | ) |
Pour une combinaison de zoom et de décalage de vue, la position de souris donne le bon pixel image.
La conversion ne dépend jamais de l'échelle d'affichage : Qt livre déjà les positions de souris en pixels logiques, indépendamment du devicePixelRatio. Cas de test : screenToImagePixel donne le bon pixel pour diverses combinaisons de zoom et de decalage.
Categorie : Unitaire · Geometrie du canevas pixel
Criticite : Critique
Etapes :
1. Construire plusieurs vues (zoom, decalage) differentes.
2. Convertir une position ecran connue vers un pixel image.
Resultat attendu : Le pixel obtenu correspond a la case ecran attendue dans chaque cas.