summaryrefslogtreecommitdiffstats
path: root/src/boost/libs/gil/test/core/image_view/iterator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/boost/libs/gil/test/core/image_view/iterator.cpp')
-rw-r--r--src/boost/libs/gil/test/core/image_view/iterator.cpp95
1 files changed, 95 insertions, 0 deletions
diff --git a/src/boost/libs/gil/test/core/image_view/iterator.cpp b/src/boost/libs/gil/test/core/image_view/iterator.cpp
new file mode 100644
index 000000000..8b9cecd98
--- /dev/null
+++ b/src/boost/libs/gil/test/core/image_view/iterator.cpp
@@ -0,0 +1,95 @@
+//
+// Copyright 2020 Mateusz Loskot <mateusz at loskot dot net>
+//
+// Distributed under the Boost Software License, Version 1.0
+// See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt
+//
+#include <boost/gil/image.hpp>
+#include <boost/gil/image_view.hpp>
+#include <boost/gil/typedefs.hpp>
+
+#include <boost/core/lightweight_test.hpp>
+
+#include "test_fixture.hpp"
+#include "test_utility_output_stream.hpp"
+
+namespace gil = boost::gil;
+namespace fixture = boost::gil::test::fixture;
+
+void test_begin()
+{
+ {
+ gil::gray8_image_t image = fixture::make_image_gray8();
+ auto view = gil::view(image);
+ BOOST_TEST_EQ(*view.begin(), fixture::gray8_draw_pixel);
+ }
+ {
+ gil::rgb8_image_t image = fixture::make_image_rgb8();
+ auto view = gil::view(image);
+ BOOST_TEST_EQ(*view.begin(), fixture::rgb8_draw_pixel);
+ }
+}
+
+void test_end()
+{
+ {
+ gil::gray8_image_t image;
+ auto view = gil::view(image);
+ BOOST_TEST(view.begin() == view.end());
+ }
+ {
+ gil::rgb8_image_t image;
+ auto view = gil::view(image);
+ BOOST_TEST(view.begin() == view.end());
+ }
+}
+
+void test_at()
+{
+ {
+ gil::gray8_image_t image = fixture::make_image_gray8();
+ auto view = gil::view(image);
+ // begin
+ BOOST_TEST_EQ(*view.at(0), fixture::gray8_draw_pixel);
+ BOOST_TEST_EQ(*view.at(1), fixture::gray8_back_pixel);
+ BOOST_TEST_EQ(*view.at(0, 0), fixture::gray8_draw_pixel);
+ BOOST_TEST_EQ(*view.at(0, 1), fixture::gray8_back_pixel);
+ BOOST_TEST_EQ(*view.at(gil::point_t{0, 0}), fixture::gray8_draw_pixel);
+ BOOST_TEST_EQ(*view.at(gil::point_t{0, 1}), fixture::gray8_back_pixel);
+ // end
+#ifdef NDEBUG // skip assertions
+ BOOST_TEST(view.at(4) == view.end());
+ // convoluted access to end iterator
+ BOOST_TEST(view.at(0, 2) == view.end());
+ BOOST_TEST(view.at(2, 1) == view.end());
+#endif
+ }
+ {
+ gil::rgb8_image_t image = fixture::make_image_rgb8();
+ auto view = gil::view(image);
+ // begin
+ BOOST_TEST_EQ(*view.at(0), fixture::rgb8_draw_pixel);
+ BOOST_TEST_EQ(*view.at(1), fixture::rgb8_back_pixel);
+ BOOST_TEST_EQ(*view.at(0, 0), fixture::rgb8_draw_pixel);
+ BOOST_TEST_EQ(*view.at(0, 1), fixture::rgb8_back_pixel);
+ BOOST_TEST_EQ(*view.at(gil::point_t{0, 0}), fixture::rgb8_draw_pixel);
+ BOOST_TEST_EQ(*view.at(gil::point_t{0, 1}), fixture::rgb8_back_pixel);
+ // end
+#ifdef NDEBUG // skip assertions
+ BOOST_TEST(view.at(4) == view.end());
+ // convoluted access to end iterator
+ BOOST_TEST(view.at(0, 2) == view.end());
+ BOOST_TEST(view.at(2, 1) == view.end());
+#endif
+ }
+}
+
+int main()
+{
+ test_begin();
+ test_end();
+ test_at();
+
+ return boost::report_errors();
+}