}
};
+struct test_constructor_from_other_image
+{
+ template <typename Image>
+ void operator()(Image const &)
+ {
+ using image_t = Image;
+ gil::point_t const dimensions{256, 128};
+ using pixel_t = typename image_t::view_t::value_type;
+ pixel_t const rnd_pixel = fixture::pixel_generator<pixel_t>::random();
+ {
+ //constructor interleaved from planar
+ gil::image<pixel_t, true> image1(dimensions, rnd_pixel);
+ image_t image2(image1);
+ BOOST_TEST_EQ(image2.dimensions(), dimensions);
+ auto v1 = gil::const_view(image1);
+ auto v2 = gil::const_view(image2);
+ BOOST_TEST_ALL_EQ(v1.begin(), v1.end(), v2.begin(), v2.end());
+ }
+ // {
+ // //constructor planar from interleaved
+ // image_t image1(dimensions, rnd_pixel);
+ // gil::image<pixel_t, true> image2(image1);
+ // BOOST_TEST_EQ(image2.dimensions(), dimensions);
+ // auto v1 = gil::const_view(image1);
+ // auto v2 = gil::const_view(image2);
+ // BOOST_TEST_ALL_EQ(v1.begin(), v1.end(), v2.begin(), v2.end());
+ // }
+ }
+ static void run()
+ {
+ boost::mp11::mp_for_each<fixture::rgb_interleaved_image_types>(test_constructor_from_other_image{});
+ }
+};
+
struct test_move_constructor
{
template <typename Image>
int main()
{
test_constructor_with_dimensions_pixel::run();
+ test_constructor_from_other_image::run();
test_move_constructor::run();
test_move_assignement::run();