Imported Upstream version 1.71.0
[platform/upstream/boost.git] / libs / gil / test / color / concepts.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 #ifndef BOOST_GIL_USE_CONCEPT_CHECK
9 #error Compile with BOOST_GIL_USE_CONCEPT_CHECK defined
10 #endif
11 #include <boost/gil/concepts.hpp>
12 #include <boost/gil/device_n.hpp>
13 #include <boost/gil/gray.hpp>
14 #include <boost/gil/rgb.hpp>
15 #include <boost/gil/rgba.hpp>
16 #include <boost/gil/cmyk.hpp>
17
18 #include <boost/concept_check.hpp>
19
20 namespace gil = boost::gil;
21 using boost::function_requires;
22
23 int main()
24 {
25     // TODO: Most constraints() for color concepts are no-op as not implemented.
26     //       Once implemented, this test should help to catch any issues early.
27
28     function_requires<gil::ColorSpaceConcept<gil::devicen_t<2>>>();
29     function_requires<gil::ColorSpaceConcept<gil::devicen_t<3>>>();
30     function_requires<gil::ColorSpaceConcept<gil::devicen_t<4>>>();
31     function_requires<gil::ColorSpaceConcept<gil::devicen_t<5>>>();
32     function_requires<gil::ColorSpaceConcept<gil::gray_t>>();
33     function_requires<gil::ColorSpaceConcept<gil::cmyk_t>>();
34     function_requires<gil::ColorSpaceConcept<gil::rgb_t>>();
35     function_requires<gil::ColorSpaceConcept<gil::rgba_t>>();
36
37     function_requires<gil::ColorSpacesCompatibleConcept<gil::gray_t, gil::gray_t>>();
38     function_requires<gil::ColorSpacesCompatibleConcept<gil::cmyk_t, gil::cmyk_t>>();
39     function_requires<gil::ColorSpacesCompatibleConcept<gil::rgb_t, gil::rgb_t>>();
40     function_requires<gil::ColorSpacesCompatibleConcept<gil::rgba_t, gil::rgba_t>>();
41     function_requires<gil::ColorSpacesCompatibleConcept
42         <
43             gil::devicen_t<2>,
44             gil::devicen_t<2>
45         >>();
46 }