]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
1 | // |
2 | // Copyright 2020 Mateusz Loskot <mateusz at loskot dot net> | |
3 | // | |
4 | // Distributed under the Boost Software License, Version 1.0 | |
5 | // See accompanying file LICENSE_1_0.txt or copy at | |
6 | // http://www.boost.org/LICENSE_1_0.txt | |
7 | // | |
8 | #include <boost/gil/image.hpp> | |
9 | #include <boost/gil/image_view.hpp> | |
10 | #include <boost/gil/typedefs.hpp> | |
11 | ||
12 | #include <boost/core/ignore_unused.hpp> | |
13 | #include <boost/core/lightweight_test.hpp> | |
14 | ||
15 | #include "test_fixture.hpp" | |
16 | #include "test_utility_output_stream.hpp" | |
17 | ||
18 | namespace gil = boost::gil; | |
19 | namespace fixture = boost::gil::test::fixture; | |
20 | ||
21 | void test_x_at() | |
22 | { | |
23 | { | |
24 | gil::gray8_image_t image = fixture::make_image_gray8(); | |
25 | auto view = gil::view(image); | |
26 | BOOST_TEST_EQ(*view.x_at(0, 0), fixture::gray8_draw_pixel); | |
27 | BOOST_TEST_EQ(*view.x_at(1, 0), fixture::gray8_back_pixel); | |
28 | BOOST_TEST_EQ(*view.x_at(1, 1), fixture::gray8_draw_pixel); | |
29 | BOOST_TEST_EQ(*view.x_at(gil::point_t{0, 0}), fixture::gray8_draw_pixel); | |
30 | BOOST_TEST_EQ(*view.x_at(gil::point_t{0, 1}), fixture::gray8_back_pixel); | |
31 | BOOST_TEST_EQ(*view.x_at(gil::point_t{1, 1}), fixture::gray8_draw_pixel); | |
32 | BOOST_TEST_EQ(view.x_at(0, 0), view.row_begin(0)); | |
33 | BOOST_TEST_EQ(view.x_at(0, 1), view.row_begin(1)); | |
34 | BOOST_TEST_EQ(view.x_at(2, 0), view.row_end(0)); | |
35 | BOOST_TEST_EQ(view.x_at(2, 1), view.row_end(1)); | |
36 | } | |
37 | { | |
38 | gil::rgb8_image_t image = fixture::make_image_rgb8(); | |
39 | auto view = gil::view(image); | |
40 | BOOST_TEST_EQ(*view.x_at(0, 0), fixture::rgb8_draw_pixel); | |
41 | BOOST_TEST_EQ(*view.x_at(1, 0), fixture::rgb8_back_pixel); | |
42 | BOOST_TEST_EQ(*view.x_at(1, 1), fixture::rgb8_draw_pixel); | |
43 | BOOST_TEST_EQ(*view.x_at(gil::point_t{0, 0}), fixture::rgb8_draw_pixel); | |
44 | BOOST_TEST_EQ(*view.x_at(gil::point_t{0, 1}), fixture::rgb8_back_pixel); | |
45 | BOOST_TEST_EQ(*view.x_at(gil::point_t{1, 1}), fixture::rgb8_draw_pixel); | |
46 | BOOST_TEST_EQ(view.x_at(0, 0), view.row_begin(0)); | |
47 | BOOST_TEST_EQ(view.x_at(0, 1), view.row_begin(1)); | |
48 | BOOST_TEST_EQ(view.x_at(2, 0), view.row_end(0)); | |
49 | BOOST_TEST_EQ(view.x_at(2, 1), view.row_end(1)); | |
50 | } | |
51 | } | |
52 | ||
53 | void test_row_begin() | |
54 | { | |
55 | { | |
56 | gil::gray8_image_t image = fixture::make_image_gray8(); | |
57 | auto view = gil::view(image); | |
58 | BOOST_TEST_EQ(*view.row_begin(0), fixture::gray8_draw_pixel); | |
59 | BOOST_TEST_EQ(*view.row_begin(1), fixture::gray8_back_pixel); | |
60 | } | |
61 | { | |
62 | gil::rgb8_image_t image = fixture::make_image_rgb8(); | |
63 | auto view = gil::view(image); | |
64 | BOOST_TEST_EQ(*view.row_begin(0), fixture::rgb8_draw_pixel); | |
65 | BOOST_TEST_EQ(*view.row_begin(1), fixture::rgb8_back_pixel); | |
66 | } | |
67 | } | |
68 | ||
69 | void test_row_end() | |
70 | { | |
71 | { | |
72 | gil::gray8_image_t image; | |
73 | auto view = gil::view(image); | |
74 | #ifdef NDEBUG // skip assertion on y < height(), see TODO comment in image_view.hpp | |
75 | BOOST_TEST_EQ(view.row_begin(0), view.row_end(0)); | |
76 | #else | |
77 | boost::ignore_unused(view); | |
78 | #endif | |
79 | } | |
80 | { | |
81 | gil::rgb8_image_t image; | |
82 | auto view = gil::view(image); | |
83 | #ifdef NDEBUG // skip assertion on y < height(), see TODO comment in image_view.hpp | |
84 | BOOST_TEST_EQ(view.row_begin(0), view.row_end(0)); | |
85 | #else | |
86 | boost::ignore_unused(view); | |
87 | #endif | |
88 | } | |
89 | } | |
90 | ||
91 | int main() | |
92 | { | |
93 | test_x_at(); | |
94 | test_row_begin(); | |
95 | test_row_end(); | |
96 | ||
97 | return boost::report_errors(); | |
98 | } |