2 // Copyright 2018 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
10 #define BOOST_TEST_MODULE test_channel_test_fixture
11 #include "unit_test.hpp"
12 #include "test_fixture.hpp"
14 namespace fixture
= boost::gil::test::fixture
;
16 BOOST_AUTO_TEST_CASE_TEMPLATE(channel_minmax_value_integral
, Channel
, fixture::channel_integer_types
)
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());
26 BOOST_AUTO_TEST_CASE_TEMPLATE(channel_minmax_value_float
, Channel
, fixture::channel_float_types
)
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_
);
34 BOOST_AUTO_TEST_CASE_TEMPLATE(channel_value
, Channel
, fixture::channel_byte_types
)
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_
);
42 BOOST_AUTO_TEST_CASE_TEMPLATE(channel_reference
, Channel
, fixture::channel_byte_types
)
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_
);
50 BOOST_AUTO_TEST_CASE_TEMPLATE(
51 channel_reference_const
, Channel
, fixture::channel_byte_types
)
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_
);
59 BOOST_AUTO_TEST_CASE_TEMPLATE(
60 packed_channels565
, BitField
, fixture::channel_bitfield_types
)
62 static_assert(std::is_integral
<BitField
>::value
, "bitfield is not integral type");
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_
);
71 BOOST_AUTO_TEST_CASE_TEMPLATE(
72 packed_dynamic_channels565
, BitField
, fixture::channel_bitfield_types
)
74 static_assert(std::is_integral
<BitField
>::value
, "bitfield is not integral type");
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_
);