test_Grid.cpp - JulianKerignard/ProjetJeuDeLaVie_POO GitHub Wiki
test_Grid.cpp
Fichier Description
Ce fichier contient des tests unitaires pour la classe Grid
en utilisant GoogleTest. Les tests vérifient les fonctionnalités de base de la classe Grid
, y compris la construction, la gestion des cellules, l'ajout d'obstacles et de motifs, et la mise à jour des cellules.
Tests
1. GridTest, Constructor
Test pour vérifier le constructeur de Grid
.
TEST(GridTest, Constructor) {
Grid grid(10, 10);
EXPECT_EQ(grid.getWidth(), 10);
EXPECT_EQ(grid.getHeight(), 10);
EXPECT_FALSE(grid.getToroidal());
}
- Objectif : Vérifier que le constructeur initialise correctement un objet
Grid
avec les dimensions spécifiées. - Assertions :
EXPECT_EQ(grid.getWidth(), 10)
: Vérifie que la largeur de la grille est10
.EXPECT_EQ(grid.getHeight(), 10)
: Vérifie que la hauteur de la grille est10
.EXPECT_FALSE(grid.getToroidal())
: Vérifie que le mode torique est désactivé par défaut.
2. GridTest, SetAndGetCell
Test pour vérifier la modification et l'obtention de l'état des cellules.
TEST(GridTest, SetAndGetCell) {
Grid grid(10, 10);
grid.setCellAt(1, 1, CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(1, 1).getCurrentState(), CellState::ALIVE);
grid.setCellAt(1, 1, CellState::DEAD);
EXPECT_EQ(grid.getCellAt(1, 1).getCurrentState(), CellState::DEAD);
}
- Objectif : Vérifier que l'état des cellules peut être modifié et obtenu correctement.
- Assertions :
EXPECT_EQ(grid.getCellAt(1, 1).getCurrentState(), CellState::ALIVE)
: Vérifie que l'état de la cellule estALIVE
.EXPECT_EQ(grid.getCellAt(1, 1).getCurrentState(), CellState::DEAD)
: Vérifie que l'état de la cellule estDEAD
.
3. GridTest, ToroidalBehavior
Test pour vérifier le comportement torique de la grille. (Commenté car peut-être non implémenté ou problématique)
/*
TEST(GridTest, ToroidalBehavior) {
Grid grid(10, 10);
grid.setToroidal(true);
grid.setCellAt(0, 0, CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(9, 9).getCurrentState(), CellState::ALIVE); // Wrap around to the opposite corner
EXPECT_EQ(grid.getCellAt(0, 0).getCurrentState(), CellState::ALIVE); // Original position
}
*/
- Objectif : Vérifier que le comportement torique est correct, c'est-à-dire que les cellules se connectent correctement aux bords opposés. (Commenté pour l'instant)
4. GridTest, AddObstacle
Test pour vérifier l'ajout d'un obstacle à la grille.
TEST(GridTest, AddObstacle) {
Grid grid(10, 10);
grid.addObstacle(2, 2);
EXPECT_TRUE(grid.getCellAt(2, 2).isObstacleCell());
}
- Objectif : Vérifier que l'ajout d'un obstacle à la grille fonctionne correctement.
- Assertions :
EXPECT_TRUE(grid.getCellAt(2, 2).isObstacleCell())
: Vérifie que la cellule aux coordonnées(2, 2)
est un obstacle.
5. GridTest, AddPattern
Test pour vérifier l'ajout d'un motif à la grille.
TEST(GridTest, AddPattern) {
Grid grid(10, 10);
grid.addPattern(Pattern::GLIDER, 1, 1);
EXPECT_EQ(grid.getCellAt(2, 1).getCurrentState(), CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(3, 2).getCurrentState(), CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(1, 3).getCurrentState(), CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(2, 3).getCurrentState(), CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(3, 3).getCurrentState(), CellState::ALIVE);
}
- Objectif : Vérifier que l'ajout d'un motif à la grille fonctionne correctement.
- Assertions :
- Vérifie que les cellules du motif de planeur sont dans l'état
ALIVE
aux positions correctes après l'ajout.
- Vérifie que les cellules du motif de planeur sont dans l'état
6. GridTest, UpdateCells
Test pour vérifier la mise à jour des cellules de la grille. (Commenté car peut-être non implémenté ou problématique)
/*
TEST(GridTest, UpdateCells) {
Grid grid(5, 5);
grid.setCellAt(1, 0, CellState::ALIVE);
grid.setCellAt(2, 1, CellState::ALIVE);
grid.setCellAt(0, 2, CellState::ALIVE);
grid.setCellAt(1, 2, CellState::ALIVE);
grid.setCellAt(2, 2, CellState::ALIVE);
grid.updateCells();
EXPECT_EQ(grid.getCellAt(1, 1).getCurrentState(), CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(2, 2).getCurrentState(), CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(1, 2).getCurrentState(), CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(2, 1).getCurrentState(), CellState::ALIVE);
EXPECT_EQ(grid.getCellAt(0, 1).getCurrentState(), CellState::ALIVE);
}
*/
- Objectif : Vérifier que la mise à jour des cellules de la grille fonctionne correctement. (Commenté pour l'instant)
Conclusion
☝️🤓Ces tests unitaires garantissent que la classe Grid
fonctionne comme prévu en termes de construction, de gestion des cellules, d'ajout d'obstacles et de motifs, et de mise à jour des cellules. En utilisant GoogleTest, ces tests fournissent une validation automatique et fiable des fonctionnalités de la classe.☝️🤓