Imported Upstream version 1.71.0
[platform/upstream/boost.git] / libs / gil / test / core / channel / channel_traits.cpp
1 //
2 // Copyright 2018 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/channel.hpp>
9 #include <boost/gil/typedefs.hpp>
10 #include <cstdint>
11 #include <limits>
12
13 #define BOOST_TEST_MODULE test_channel_traits
14 #include "unit_test.hpp"
15
16 namespace gil = boost::gil;
17
18 template <typename T>
19 void test_channel_minmax()
20 {
21     BOOST_TEST(gil::channel_traits<T>::min_value() ==
22                std::numeric_limits<T>::min());
23
24     BOOST_TEST(gil::channel_traits<T>::max_value() ==
25                std::numeric_limits<T>::max());
26 }
27
28 BOOST_AUTO_TEST_CASE(channel_minmax_uint8_t)
29 {
30     test_channel_minmax<std::uint8_t>();
31 }
32
33 BOOST_AUTO_TEST_CASE(channel_minmax_int8_t)
34 {
35     test_channel_minmax<std::int8_t>();
36 }
37
38 BOOST_AUTO_TEST_CASE(channel_minmax_uint16_t)
39 {
40     test_channel_minmax<std::uint16_t>();
41 }
42
43 BOOST_AUTO_TEST_CASE(channel_minmax_int16_t)
44 {
45     test_channel_minmax<std::int16_t>();
46 }
47
48 BOOST_AUTO_TEST_CASE(channel_minmax_uint32_t)
49 {
50     test_channel_minmax<std::uint32_t>();
51 }
52
53 BOOST_AUTO_TEST_CASE(channel_minmax_int32_t)
54 {
55     test_channel_minmax<std::int32_t>();
56 }