]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/gil/test/core/image_view/subimage_view.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / gil / test / core / image_view / subimage_view.cpp
1 //
2 // Copyright 2019 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.hpp>
9
10 #define BOOST_TEST_MODULE test_image_view_subimage_view
11 #include "unit_test.hpp"
12 #include "unit_test_utility.hpp"
13 #include "core/image/test_fixture.hpp"
14
15 namespace gil = boost::gil;
16 namespace fixture = boost::gil::test::fixture;
17
18 BOOST_AUTO_TEST_SUITE(subimage_view)
19
20 BOOST_AUTO_TEST_CASE_TEMPLATE(subimage_equals_image, Image, fixture::image_types)
21 {
22 auto i0 = fixture::create_image<Image>(4, 4, 128);
23 auto const v0 = gil::const_view(i0);
24 BOOST_TEST(v0.dimensions().x == 4);
25 BOOST_TEST(v0.dimensions().y == 4);
26
27 // request with 2 x point_t values
28 {
29 auto v1 = gil::subimage_view(gil::view(i0), {0, 0}, i0.dimensions());
30 BOOST_TEST(v0.dimensions() == v1.dimensions());
31 BOOST_TEST(gil::equal_pixels(v0, v1));
32 }
33 // request with 4 x dimension values
34 {
35 auto v1 = gil::subimage_view(gil::view(i0), 0, 0, i0.dimensions().x, i0.dimensions().y);
36 BOOST_TEST(v0.dimensions() == v1.dimensions());
37 BOOST_TEST(gil::equal_pixels(v0, v1));
38 }
39 }
40
41 BOOST_AUTO_TEST_CASE_TEMPLATE(subimage_equals_image_quadrants, Image, fixture::image_types)
42 {
43 auto i0 = fixture::create_image<Image>(4, 4, 0);
44 auto v0 = gil::view(i0);
45 // create test image and set values of pixels in:
46 // quadrant 1
47 auto const i1 = fixture::create_image<Image>(2, 2, 255);
48 v0[2] = v0[3] = v0[6] = v0[7] = gil::const_view(i1)[0];
49 // quadrant 2
50 auto const i2 = fixture::create_image<Image>(2, 2, 128);
51 v0[0] = v0[1] = v0[4] = v0[5] = gil::const_view(i2)[0];
52 // quadrant 3
53 auto const i3 = fixture::create_image<Image>(2, 2, 64);
54 v0[8] = v0[9] = v0[12] = v0[13] = gil::const_view(i3)[0];
55 // quadrant 4
56 auto const i4 = fixture::create_image<Image>(2, 2, 32);
57 v0[10] = v0[11] = v0[14] = v0[15] = gil::const_view(i4)[0];
58
59 auto v1 = gil::subimage_view(gil::view(i0), { 2, 0 }, i0.dimensions() / 2);
60 BOOST_TEST(gil::equal_pixels(v1, gil::const_view(i1)));
61 auto v2 = gil::subimage_view(gil::view(i0), { 0, 0 }, i0.dimensions() / 2);
62 BOOST_TEST(gil::equal_pixels(v2, gil::const_view(i2)));
63 auto v3 = gil::subimage_view(gil::view(i0), { 0, 2 }, i0.dimensions() / 2);
64 BOOST_TEST(gil::equal_pixels(v3, gil::const_view(i3)));
65 auto v4 = gil::subimage_view(gil::view(i0), { 2, 2 }, i0.dimensions() / 2);
66 BOOST_TEST(gil::equal_pixels(v4, gil::const_view(i4)));
67 }
68
69 BOOST_AUTO_TEST_SUITE_END()