Commit f98e7f03 authored by Yann Boucher's avatar Yann Boucher
Browse files

Implemented equality/inequality operators for Coord, fixing #25

parent da469475
Pipeline #76821 passed with stages
in 18 seconds
......@@ -23,4 +23,16 @@ struct Coord
int x, y;
};
//! \brief Teste si deux coordonnées sont égales (même 'x' et 'y')
inline bool operator==(const Coord& lhs, const Coord& rhs)
{
return lhs.x == rhs.x && lhs.y == rhs.y;
}
//! \brief Teste si deux coordonnées sont différentes
inline bool operator!=(const Coord& lhs, const Coord& rhs)
{
return !(lhs == rhs);
}
#endif // COORD_HPP
......@@ -33,7 +33,7 @@ public:
//! \brief Retourne un objet créé à partir de choice
//!
//! Fabrique un objet du type représenté par choice.
//! \param choice Le nom de la classe à fabriqué, tel que présent dans la liste retournée par list_choices().
//! \param choice Le nom de la classe à fabriquer, tel que présent dans la liste retournée par list_choices().
//! \return Un unique_pointer de type Base pointant vers l'objet construit, ou nullptr si choice est invalide.
static std::unique_ptr<Base> make(const std::string& choice)
{
......
......@@ -15,9 +15,10 @@ Cette classe représente le voisinage d'une cellule.
#include <vector>
#include <utility>
#include "coord.hpp"
using namespace std;
class Coord;
class State;
class Neighborhood {
......@@ -27,7 +28,7 @@ class Neighborhood {
//! \brief Fonction vérifiant que la coordonnée d'un voisin que l'on souhaite ajouter dans le vecteur neighborPositions est unique
//! \param Coord : Coordonnée à comparer
//! \return retourne vrai si la coordonnée est unique sinon faux s'il existe un doublon
bool Neighborhood::isUnique(const Coord c) const;
bool isUnique(const Coord c) const;
public:
//! \brief Retourne le nombre de voisin ayant l'état définit en paramètre
//! \param State : Etat des voisins à rechercher
......@@ -48,4 +49,4 @@ public:
};
#endif // NEIGHBOURHOOD_HPP
\ No newline at end of file
#endif // NEIGHBOURHOOD_HPP
......@@ -11,6 +11,7 @@ private slots:
void test_loader_saver_visitor();
void test_structure();
void test_factory();
void test_coord();
};
#endif // CELLULUT_TESTS_HPP
#include <QtTest/QtTest>
#include <algorithm>
#include "cellulut_tests.hpp"
#include "coord.hpp"
void CellulutTests::test_coord()
{
Coord a{1, 2};
Coord b{3, 4};
QCOMPARE(a.x, 1);
QCOMPARE(a.y, 2);
QVERIFY(a == a);
QVERIFY(b == b);
QVERIFY(a != b);
QVERIFY(!(a == b));
}
......@@ -15,6 +15,7 @@ INCLUDEPATH += ../include
SOURCES += \
../src/propertyvisitors.cpp \
coord_tests.cpp \
factory_tests.cpp \
property_test.cpp \
propertyvisitors_test.cpp \
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment