]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/gil/test/core/channel/test_fixture.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / gil / test / core / channel / test_fixture.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 <limits>
9
10 #define BOOST_TEST_MODULE test_channel_test_fixture
11 #include "unit_test.hpp"
12 #include "test_fixture.hpp"
13
14 namespace fixture = boost::gil::test::fixture;
15
16 BOOST_AUTO_TEST_CASE_TEMPLATE(channel_minmax_value_integral, Channel, fixture::channel_integer_types)
17 {
18 fixture::channel_minmax_value<Channel> fix;
19 fixture::channel_minmax_value<Channel> exp;
20 BOOST_TEST(fix.min_v_ == exp.min_v_);
21 BOOST_TEST(fix.max_v_ == exp.max_v_);
22 BOOST_TEST(fix.min_v_ == std::numeric_limits<Channel>::min());
23 BOOST_TEST(fix.max_v_ == std::numeric_limits<Channel>::max());
24 }
25
26 BOOST_AUTO_TEST_CASE_TEMPLATE(channel_minmax_value_float, Channel, fixture::channel_float_types)
27 {
28 fixture::channel_minmax_value<Channel> fix;
29 fixture::channel_minmax_value<Channel> exp;
30 BOOST_TEST(fix.min_v_ == exp.min_v_);
31 BOOST_TEST(fix.max_v_ == exp.max_v_);
32 }
33
34 BOOST_AUTO_TEST_CASE_TEMPLATE(channel_value, Channel, fixture::channel_byte_types)
35 {
36 fixture::channel_value<Channel> fix;
37 fixture::channel_minmax_value<Channel> exp;
38 BOOST_TEST(fix.min_v_ == exp.min_v_);
39 BOOST_TEST(fix.max_v_ == exp.max_v_);
40 }
41
42 BOOST_AUTO_TEST_CASE_TEMPLATE(channel_reference, Channel, fixture::channel_byte_types)
43 {
44 fixture::channel_reference<Channel&> fix;
45 fixture::channel_minmax_value<Channel> exp;
46 BOOST_TEST(fix.min_v_ == exp.min_v_);
47 BOOST_TEST(fix.max_v_ == exp.max_v_);
48 }
49
50 BOOST_AUTO_TEST_CASE_TEMPLATE(
51 channel_reference_const, Channel, fixture::channel_byte_types)
52 {
53 fixture::channel_reference<Channel const&> fix;
54 fixture::channel_minmax_value<Channel> exp;
55 BOOST_TEST(fix.min_v_ == exp.min_v_);
56 BOOST_TEST(fix.max_v_ == exp.max_v_);
57 }
58
59 BOOST_AUTO_TEST_CASE_TEMPLATE(
60 packed_channels565, BitField, fixture::channel_bitfield_types)
61 {
62 static_assert(std::is_integral<BitField>::value, "bitfield is not integral type");
63
64 // Regardless of BitField buffer bit-size, the fixture is initialized
65 // with max value that fits into 5+6+5 bit integer
66 fixture::packed_channels565<BitField> fix;
67 fixture::channel_minmax_value<std::uint16_t> exp;
68 BOOST_TEST(fix.data_ == exp.max_v_);
69 }
70
71 BOOST_AUTO_TEST_CASE_TEMPLATE(
72 packed_dynamic_channels565, BitField, fixture::channel_bitfield_types)
73 {
74 static_assert(std::is_integral<BitField>::value, "bitfield is not integral type");
75
76 // Regardless of BitField buffer bit-size, the fixture is initialized
77 // with max value that fits into 5+6+5 bit integer
78 fixture::packed_dynamic_channels565<BitField> fix;
79 fixture::channel_minmax_value<std::uint16_t> exp;
80 BOOST_TEST(fix.data_ == exp.max_v_);
81 }