From f8ddfb170018a6dcad4f65d70eec47b03d5d0260 Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Sun, 30 Aug 2020 12:11:26 +0100 Subject: [PATCH] Added equality and inequality operators --- include/etl/bresenham_line.h | 16 ++++++++++++++++ test/test_bresenham_line.cpp | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/include/etl/bresenham_line.h b/include/etl/bresenham_line.h index 0fe200be..d7819274 100644 --- a/include/etl/bresenham_line.h +++ b/include/etl/bresenham_line.h @@ -240,6 +240,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)); + } }; }