diff --git a/include/etl/bresenham_line.h b/include/etl/bresenham_line.h index b896913b..412b99d2 100644 --- a/include/etl/bresenham_line.h +++ b/include/etl/bresenham_line.h @@ -248,6 +248,22 @@ namespace etl } } + //*************************************************** + /// Equality operator + //*************************************************** + friend bool operator ==(const bresenham_line& lhs, const bresenham_line& rhs) + { + return (lhs.front() == rhs.front()) && (lhs.back() == rhs.back()); + } + + //*************************************************** + /// Inequality operator + //*************************************************** + friend bool operator !=(const bresenham_line& lhs, const bresenham_line& rhs) + { + return !(lhs == rhs); + } + private: //*************************************************** diff --git a/test/test_bresenham_line.cpp b/test/test_bresenham_line.cpp index 0057a984..8ab7906e 100644 --- a/test/test_bresenham_line.cpp +++ b/test/test_bresenham_line.cpp @@ -404,5 +404,23 @@ namespace CHECK_EQUAL(expected.size(), actual.size()); CHECK_ARRAY_EQUAL(expected.data(), actual.data(), (std::max(expected.size(), actual.size()))); } + + //************************************************************************* + TEST(test_equality) + { + BresenhamLine bl1(0, 1, 2, 3); + BresenhamLine bl2(0, 1, 2, 3); + BresenhamLine bl3(0, 1, 2, 4); + BresenhamLine bl4(0, 2, 2, 3); + + CHECK(bl1 == bl2); + CHECK(!(bl1 != bl2)); + + CHECK(bl1 != bl3); + CHECK(!(bl1 == bl3)); + + CHECK(bl1 != bl4); + CHECK(!(bl1 == bl4)); + } }; }