]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/gil/test/extension/numeric/numeric.cpp
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / boost / libs / gil / test / extension / numeric / numeric.cpp
diff --git a/ceph/src/boost/libs/gil/test/extension/numeric/numeric.cpp b/ceph/src/boost/libs/gil/test/extension/numeric/numeric.cpp
deleted file mode 100644 (file)
index 48f68b3..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-//
-// Copyright 2013 Krzysztof Czainski
-//
-// Distributed under the Boost Software License, Version 1.0
-// See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt
-//
-#include <boost/gil/image.hpp>
-#include <boost/gil/typedefs.hpp>
-
-#include <boost/gil/extension/numeric/resample.hpp>
-#include <boost/gil/extension/numeric/sampler.hpp>
-
-#include <boost/assert.hpp>
-
-#define BOOST_TEST_MODULE test_ext_numeric_numeric
-#include "unit_test.hpp"
-
-using namespace boost;
-using namespace gil;
-
-template < class F, class I >
-struct TestMapFn
-{
-    using point_t = point<F>;
-    using result_type = point_t;
-    result_type operator()(point<I> const& src) const
-    {
-        F x = static_cast<F>( src.x ) - 0.5;
-        F y = static_cast<F>( src.y ) - 0.5;
-        return { x, y };
-    }
-};
-
-namespace boost { namespace gil {
-
-// NOTE: I suggest this could be the default behavior:
-
-template <typename T> struct mapping_traits;
-
-template < class F, class I >
-struct mapping_traits<TestMapFn<F, I>>
-{
-    using result_type = typename TestMapFn<F, I>::result_type;
-};
-
-template <class F, class I>
-inline point<F> transform(TestMapFn<F, I> const& mf, point<I> const& src)
-{
-    return mf(src);
-}
-
-}} // boost::gil
-
-
-BOOST_AUTO_TEST_SUITE(Numeric_Tests)
-
-BOOST_AUTO_TEST_CASE( pixel_numeric_operations_plus )
-{
-    rgb8_pixel_t a( 10, 20, 30 );
-    bgr8_pixel_t b( 30, 20, 10 );
-
-    pixel_plus_t< rgb8_pixel_t
-                , bgr8_pixel_t
-                , rgb8_pixel_t
-                > op;
-    rgb8_pixel_t c = op( a, b );
-
-    BOOST_ASSERT( get_color( c, red_t()   ) == 20 );
-    BOOST_ASSERT( get_color( c, green_t() ) == 40 );
-    BOOST_ASSERT( get_color( c, blue_t()  ) == 60 );
-
-    pixel_plus_t< rgb8_pixel_t
-                , bgr8_pixel_t
-                , bgr8_pixel_t
-                > op2;
-    bgr8_pixel_t d = op2( a, b );
-
-    BOOST_ASSERT( get_color( d, red_t()   ) == 20 );
-    BOOST_ASSERT( get_color( d, green_t() ) == 40 );
-    BOOST_ASSERT( get_color( d, blue_t()  ) == 60 );
-}
-
-BOOST_AUTO_TEST_CASE( pixel_numeric_operations_multiply )
-{
-    rgb32f_pixel_t a( 1.f, 2.f, 3.f );
-    bgr32f_pixel_t b( 2.f, 2.f, 2.f );
-
-    pixel_multiply_t< rgb32f_pixel_t
-                    , bgr32f_pixel_t
-                    , rgb32f_pixel_t
-                    > op;
-    rgb32f_pixel_t c = op( a, b );
-
-    float epsilon = 1e-6f;
-    BOOST_CHECK_CLOSE( static_cast<float>( get_color( c,   red_t() )), 2.f, epsilon );
-    BOOST_CHECK_CLOSE( static_cast<float>( get_color( c, green_t() )), 4.f, epsilon );
-    BOOST_CHECK_CLOSE( static_cast<float>( get_color( c,  blue_t() )), 6.f, epsilon );
-}
-
-BOOST_AUTO_TEST_CASE( pixel_numeric_operations_divide )
-{
-    // integer
-    {
-        rgb8_pixel_t a( 10, 20, 30 );
-        bgr8_pixel_t b(  2,  2,  2 );
-
-        pixel_divide_t< rgb8_pixel_t
-                      , bgr8_pixel_t
-                      , rgb8_pixel_t
-                      > op;
-        rgb32f_pixel_t c = op( a, b );
-
-        BOOST_ASSERT( get_color( c,   red_t() ) ==  5 );
-        BOOST_ASSERT( get_color( c, green_t() ) == 10 );
-        BOOST_ASSERT( get_color( c,  blue_t() ) == 15 );
-    }
-
-    // float
-    {
-        rgb32f_pixel_t a( 1.f, 2.f, 3.f );
-        bgr32f_pixel_t b( 2.f, 2.f, 2.f );
-
-        pixel_divide_t< rgb32f_pixel_t
-                      , bgr32f_pixel_t
-                      , rgb32f_pixel_t
-                      > op;
-        rgb32f_pixel_t c = op( a, b );
-
-        float epsilon = 1e-6f;
-        BOOST_CHECK_CLOSE( static_cast< float >( get_color( c,   red_t() )), 0.5f, epsilon );
-        BOOST_CHECK_CLOSE( static_cast< float >( get_color( c, green_t() )),  1.f, epsilon );
-        BOOST_CHECK_CLOSE( static_cast< float >( get_color( c,  blue_t() )), 1.5f, epsilon );
-    }
-}
-
-BOOST_AUTO_TEST_CASE(bilinear_sampler_test)
-{
-    // R G B
-    // G W R
-    // B R G
-    rgb8_image_t img(3,3);
-    rgb8_view_t v = view(img);
-    v(0,0) = v(1,2) = v(2,1) = rgb8_pixel_t(128,0,0);
-    v(0,1) = v(1,0) = v(2,2) = rgb8_pixel_t(0,128,0);
-    v(0,2) = v(2,0) = rgb8_pixel_t(0,0,128);
-    v(1,1) = rgb8_pixel_t(128,128,128);
-
-    rgb8_image_t dimg(4,4);
-    rgb8c_view_t dv = const_view(dimg);
-
-    TestMapFn<double,rgb8_image_t::coord_t> mf;
-
-    resample_pixels(const_view(img), view(dimg), mf, bilinear_sampler());
-
-    BOOST_ASSERT(rgb8_pixel_t(128,0,0) == dv(0,0));
-    BOOST_ASSERT(rgb8_pixel_t(64,64,0) == dv(0,1));
-    BOOST_ASSERT(rgb8_pixel_t(0,64,64) == dv(0,2));
-    BOOST_ASSERT(rgb8_pixel_t(0,0,128) == dv(0,3));
-
-    BOOST_ASSERT(rgb8_pixel_t(64,64,0) == dv(1,0));
-    BOOST_ASSERT(rgb8_pixel_t(64,96,32) == dv(1,1));
-    BOOST_ASSERT(rgb8_pixel_t(64,64,64) == dv(1,2));
-    BOOST_ASSERT(rgb8_pixel_t(64,0,64) == dv(1,3));
-
-    BOOST_ASSERT(rgb8_pixel_t(0,64,64) == dv(2,0));
-    BOOST_ASSERT(rgb8_pixel_t(64,64,64) == dv(2,1));
-    BOOST_ASSERT(rgb8_pixel_t(96,64,32) == dv(2,2));
-    BOOST_ASSERT(rgb8_pixel_t(64,64,0) == dv(2,3));
-
-    BOOST_ASSERT(rgb8_pixel_t(0,0,128) == dv(3,0));
-    BOOST_ASSERT(rgb8_pixel_t(64,0,64) == dv(3,1));
-    BOOST_ASSERT(rgb8_pixel_t(64,64,0) == dv(3,2));
-    BOOST_ASSERT(rgb8_pixel_t(0,128,0) == dv(3,3));
-}
-
-BOOST_AUTO_TEST_SUITE_END()