2 // Copyright 2019 Mateusz Loskot <mateusz at loskot dot net>
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
8 #include <boost/gil/bit_aligned_pixel_reference.hpp>
9 #include <boost/gil/packed_pixel.hpp>
10 #include <boost/gil/pixel.hpp>
11 #include <boost/gil/rgb.hpp>
12 #include <boost/gil/typedefs.hpp>
13 #include <boost/gil/concepts/pixel.hpp>
15 #include <boost/mp11.hpp>
17 #include "test_fixture.hpp"
19 namespace gil = boost::gil;
20 using namespace boost::mp11;
24 static_assert(std::is_same
26 mp_all_of<gil::test::fixture::pixel_typedefs, gil::is_pixel>,
29 "is_pixel does not yield true for all core pixel types");
31 static_assert(std::is_same
37 gil::test::fixture::nested_pixel_type,
38 gil::test::fixture::representative_pixel_types
44 "is_pixel does not yield true for representative pixel types");
46 static_assert(std::is_same
48 mp_all_of<gil::test::fixture::non_pixels, gil::is_pixel>,
51 "is_pixel yields true for non-pixel type");
53 static_assert(std::is_same
55 mp_none_of<gil::test::fixture::non_pixels, gil::is_pixel>,
58 "is_pixel yields true for non-pixel type");
60 using bgr121_ref_t = gil::bit_aligned_pixel_reference
62 std::uint8_t, mp_list_c<int, 1, 2, 1>, gil::bgr_layout_t, true
64 static_assert(gil::is_pixel<bgr121_ref_t>::value,
65 "is_pixel does not yield true for bit_aligned_pixel_reference");
67 using rgb121_ref_t = gil::bit_aligned_pixel_reference
69 std::uint8_t, mp_list_c<int, 1, 2, 1>, gil::rgb_layout_t, true
71 static_assert(gil::is_pixel<bgr121_ref_t>::value,
72 "is_pixel does not yield true for bit_aligned_pixel_reference");
74 using rgb121_packed_pixel_t = rgb121_ref_t::value_type;
75 static_assert(gil::is_pixel<rgb121_packed_pixel_t>::value,
76 "is_pixel does not yield true for packed_pixel");