//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. //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 #include #include namespace { template void test1( T (*f1)(T), T (*f2)(T) ) { for( int i=0; i!=100; ++i ) { T a = T(rand()) / T(RAND_MAX); BOOST_TEST_EQ(f1(a), f2(a)); } } template void test2( T (*f1)(T,U), T (*f2)(T,U) ) { for( int i=0; i!=100; ++i ) { T a = T(rand()) / T(RAND_MAX); T b = T(rand()) / T(RAND_MAX); BOOST_TEST_EQ(f1(a,b), f2(a,b)); } } } int main() { test1(&boost::qvm::acos, &::acosf); test1(&boost::qvm::asin, &::asinf); test1(&boost::qvm::atan, &::atanf); test2(&boost::qvm::atan2, &::atan2f); test1(&boost::qvm::cos, &::cosf); test1(&boost::qvm::sin, &::sinf); test1(&boost::qvm::tan, &::tanf); test1(&boost::qvm::cosh, &::coshf); test1(&boost::qvm::sinh, &::sinhf); test1(&boost::qvm::tanh, &::tanhf); test1(&boost::qvm::exp, &::expf); test1(&boost::qvm::log, &::logf); test1(&boost::qvm::log10, &::log10f); test2(&boost::qvm::mod, &::fmodf); test2(&boost::qvm::pow, &::powf); test1(&boost::qvm::sqrt, &::sqrtf); test1(&boost::qvm::ceil, &::ceilf); test1(&boost::qvm::abs, &::fabsf); test1(&boost::qvm::floor, &::floorf); test2(&boost::qvm::ldexp, &::ldexpf); test1(&boost::qvm::acos, &::acos); test1(&boost::qvm::asin, &::asin); test1(&boost::qvm::atan, &::atan); test2(&boost::qvm::atan2, &::atan2); test1(&boost::qvm::cos, &::cos); test1(&boost::qvm::sin, &::sin); test1(&boost::qvm::tan, &::tan); test1(&boost::qvm::cosh, &::cosh); test1(&boost::qvm::sinh, &::sinh); test1(&boost::qvm::tanh, &::tanh); test1(&boost::qvm::exp, &::exp); test1(&boost::qvm::log, &::log); test1(&boost::qvm::log10, &::log10); test2(&boost::qvm::mod, &::fmod); test2(&boost::qvm::pow, &::pow); test1(&boost::qvm::sqrt, &::sqrt); test1(&boost::qvm::ceil, &::ceil); test1(&boost::qvm::abs, &::fabs); test1(&boost::qvm::floor, &::floor); test2(&boost::qvm::ldexp, &::ldexp); test1(&boost::qvm::acos, &::acosl); test1(&boost::qvm::asin, &::asinl); test1(&boost::qvm::atan, &::atanl); test2(&boost::qvm::atan2, &::atan2l); test1(&boost::qvm::cos, &::cosl); test1(&boost::qvm::sin, &::sinl); test1(&boost::qvm::tan, &::tanl); test1(&boost::qvm::cosh, &::coshl); test1(&boost::qvm::sinh, &::sinhl); test1(&boost::qvm::tanh, &::tanhl); test1(&boost::qvm::exp, &::expl); test1(&boost::qvm::log, &::logl); test1(&boost::qvm::log10, &::log10l); test2(&boost::qvm::mod, &::fmodl); test2(&boost::qvm::pow, &::powl); test1(&boost::qvm::sqrt, &::sqrtl); test1(&boost::qvm::ceil, &::ceill); test1(&boost::qvm::abs, &::fabsl); test1(&boost::qvm::floor, &::floorl); test2(&boost::qvm::ldexp, &::ldexpl); return boost::report_errors(); }