cmath_test.cpp revision e46c9386c4f79aa40185f79a19fc5b2a7ef528b3
1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_DO_IMPORT_CSTD_FUNCTIONS 2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <limits> 4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <cmath> 5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//We also test math functions imported from stdlib.h or 6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//defined in cstdlib 7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <cstdlib> 8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include "math_aux.h" 10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include "cppunit/cppunit_proxy.h" 11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//This test purpose is to check the right import of math.h C symbols 13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//into the std namespace so we do not use the using namespace std 14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//specification 15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// 17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// TestCase class 18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// 19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottclass CMathTest : public CPPUNIT_NS::TestCase 20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{ 21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_TEST_SUITE(CMathTest); 22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if defined (STLPORT) && !defined (_STLP_USE_NAMESPACES) 23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_IGNORE; 24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_TEST(import_checks); 26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_TEST_SUITE_END(); 27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott protected: 29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott void import_checks(); 30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott}; 31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick ScottCPPUNIT_TEST_SUITE_REGISTRATION(CMathTest); 33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// 35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// tests implementation 36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// 37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottvoid CMathTest::import_checks() 38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{ 39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (STLPORT) || defined (_STLP_USE_NAMESPACES) 40e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott int int_val = -1; 41e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott long long_val = -1l; 42e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott float float_val = -1.0f; 43e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott double double_val = -1.0; 44e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (_STLP_NO_LONG_DOUBLE) 45e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott long double long_double_val = -1.0l; 46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 48e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::abs(int_val), -int_val) ); 49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::abs(long_val), -long_val) ); 50e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::labs(long_val), -long_val) ); 51e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::abs(float_val), -float_val) ); 52e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::abs(double_val), -double_val) ); 53e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (_STLP_NO_LONG_DOUBLE) 54e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::abs(long_double_val), -long_double_val) ); 55e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 56e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 57e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::fabs(float_val), -float_val) ); 58e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::fabs(double_val), -double_val) ); 59e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (_STLP_NO_LONG_DOUBLE) 60e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::fabs(long_double_val), -long_double_val) ); 61e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 62e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 63e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott std::div_t div_res = std::div(3, 2); 64e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( div_res.quot == 1 ); 65e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( div_res.rem == 1 ); 66e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott std::ldiv_t ldiv_res = std::ldiv(3l, 2l); 67e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( ldiv_res.quot == 1l ); 68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( ldiv_res.rem == 1l ); 69e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott ldiv_res = std::div(3l, 2l); 70e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( ldiv_res.quot == 1l ); 71e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( ldiv_res.rem == 1l ); 72e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 73e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott std::srand(2); 74e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott int rand_val = std::rand(); 75e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( rand_val >= 0 && rand_val <= RAND_MAX ); 76e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 77e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::floor(1.5), 1.0) ); 78e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::ceil(1.5), 2.0) ); 79e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::fmod(1.5, 1.0), 0.5) ); 80e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sqrt(4.0), 2.0) ); 81e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::pow(2.0, 2), 4.0) ); 82e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott /* 83e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * Uncomment the following to check that it generates an ambiguous call 84e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * as there is no Standard pow(int, int) function only pow(double, int), 85e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * pow(float, int) and some others... 86e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * If it do not generate a compile time error it should at least give 87e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * the good result. 88e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott */ 89e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott //CPPUNIT_CHECK( are_equals(std::pow(10, -2), 0.01) ); 90e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::pow(10.0, -2), 0.01) ); 91e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::exp(0.0), 1.0) ); 92e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::log(std::exp(1.0)), 1.0) ); 93e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::log10(100.0), 2.0) ); 94e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_WIN64) 95e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::modf(100.5, &double_val), 0.5) ); 96e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(double_val, 100.0) ); 97e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 98e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott double_val = std::frexp(8.0, &int_val); 99e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(double_val * std::pow(2.0, int_val), 8.0) ); 100e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::ldexp(1.0, 2), 4.0) ); 101e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::cos(std::acos(1.0)), 1.0) ); 102e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sin(std::asin(1.0)), 1.0) ); 103e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::tan(std::atan(1.0)), 1.0) ); 104e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::tan(std::atan2(1.0, 1.0)), 1.0) ); 105e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::cosh(0.0), 1.0) ); 106e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sinh(0.0), 0.0) ); 107e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) 108e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::tanh(0.0), 0.0) ); 109e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 110e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 111e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::floor(1.5f), 1.0f) ); 112e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::ceil(1.5f), 2.0f) ); 113e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::fmod(1.5f, 1.0f), 0.5f) ); 114e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sqrt(4.0f), 2.0f) ); 115e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::pow(2.0f, 2), 4.0f) ); 116e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::exp(0.0f), 1.0f) ); 117e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::log(std::exp(1.0f)), 1.0f) ); 118e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::log10(100.0f), 2.0f) ); 119e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_WIN64) 120e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::modf(100.5f, &float_val), 0.5f) ); 121e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(float_val, 100.0f) ); 122e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 123e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott float_val = std::frexp(8.0f, &int_val); 124e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(float_val * std::pow(2.0f, int_val), 8.0f) ); 125e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::ldexp(1.0f, 2), 4.0f) ); 126e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::cos(std::acos(1.0f)), 1.0f) ); 127e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sin(std::asin(1.0f)), 1.0f) ); 128e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::tan(std::atan(1.0f)), 1.0f) ); 129e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::tan(std::atan2(1.0f, 1.0f)), 1.0f) ); 130e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::cosh(0.0f), 1.0f) ); 131e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sinh(0.0f), 0.0f) ); 132e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) 133e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::tanh(0.0f), 0.0f) ); 134e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 135e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 136e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (_STLP_NO_LONG_DOUBLE) 137e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::floor(1.5l), 1.0l) ); 138e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::ceil(1.5l), 2.0l) ); 139e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::fmod(1.5l, 1.0l), 0.5l) ); 140e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sqrt(4.0l), 2.0l) ); 141e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::pow(2.0l, 2), 4.0l) ); 142e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::exp(0.0l), 1.0l) ); 143e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::log(std::exp(1.0l)), 1.0l) ); 144e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::log10(100.0l), 2.0l) ); 145e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_WIN64) 146e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::modf(100.5l, &long_double_val), 0.5l) ); 147e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(long_double_val, 100.0l) ); 148e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 149e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott long_double_val = std::frexp(8.0l, &int_val); 150e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(long_double_val * std::pow(2.0l, int_val), 8.0l) ); 151e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::ldexp(1.0l, 2), 4.0l) ); 152e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::cos(std::acos(1.0l)), 1.0l) ); 153e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sin(std::asin(1.0l)), 1.0l) ); 154e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::tan(0.0l), 0.0l) ); 155e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::atan(0.0l), 0.0l) ); 156e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::atan2(0.0l, 1.0l), 0.0l) ); 157e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::cosh(0.0l), 1.0l) ); 158e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sinh(0.0l), 0.0l) ); 159e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) 160e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::tanh(0.0l), 0.0l) ); 161e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 162e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 163e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott 164e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sqrt(std::sqrt(std::sqrt(256.0))), 2.0) ); 165e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sqrt(std::sqrt(std::sqrt(256.0f))), 2.0f) ); 166e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# if !defined (_STLP_NO_LONG_DOUBLE) 167e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott CPPUNIT_CHECK( are_equals(std::sqrt(std::sqrt(std::sqrt(256.0l))), 2.0l) ); 168e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott# endif 169e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif 170e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott} 171