| #include <valarray> |
| |
| #include "cppunit/cppunit_proxy.h" |
| |
| #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) |
| using namespace std; |
| #endif |
| |
| // |
| // TestCase class |
| // |
| class ValarrayTest : public CPPUNIT_NS::TestCase |
| { |
| CPPUNIT_TEST_SUITE(ValarrayTest); |
| CPPUNIT_TEST(transcendentals); |
| CPPUNIT_TEST_SUITE_END(); |
| |
| protected: |
| void transcendentals(); |
| }; |
| |
| CPPUNIT_TEST_SUITE_REGISTRATION(ValarrayTest); |
| |
| // |
| // tests implementation |
| // |
| // For the moment this test is just a complitation test |
| // everyone is welcome to do a real good unit test for |
| // valarray functionality. |
| void ValarrayTest::transcendentals() |
| { |
| #ifdef __SUNPRO_CC |
| using std::abs; |
| #endif |
| { |
| valarray<double> darray; |
| valarray<double> tmp; |
| tmp = abs(darray); |
| tmp = acos(darray); |
| tmp = asin(darray); |
| tmp = atan(darray); |
| tmp = atan2(darray, tmp); |
| tmp = atan2(1.0, darray); |
| tmp = atan2(darray, 1.0); |
| tmp = cos(darray); |
| tmp = cosh(darray); |
| tmp = sin(darray); |
| tmp = sinh(darray); |
| tmp = tan(darray); |
| #if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) |
| tmp = tanh(darray); |
| #endif |
| tmp = exp(darray); |
| tmp = log(darray); |
| tmp = log10(darray); |
| tmp = pow(darray, tmp); |
| tmp = pow(1.0, darray); |
| tmp = pow(darray, 1.0); |
| tmp = sqrt(darray); |
| } |
| { |
| valarray<float> farray; |
| valarray<float> tmp; |
| tmp = abs(farray); |
| tmp = acos(farray); |
| tmp = asin(farray); |
| tmp = atan(farray); |
| tmp = atan2(farray, tmp); |
| tmp = atan2(1.0f, farray); |
| tmp = atan2(farray, 1.0f); |
| tmp = cos(farray); |
| tmp = cosh(farray); |
| tmp = sin(farray); |
| tmp = sinh(farray); |
| tmp = tan(farray); |
| #if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) |
| tmp = tanh(farray); |
| #endif |
| tmp = exp(farray); |
| tmp = log(farray); |
| tmp = log10(farray); |
| tmp = pow(farray, tmp); |
| tmp = pow(1.0f, farray); |
| tmp = pow(farray, 1.0f); |
| tmp = sqrt(farray); |
| } |
| #if !defined (STLPORT) || !defined (_STLP_NO_LONG_DOUBLE) |
| { |
| valarray<long double> ldarray; |
| valarray<long double> tmp; |
| tmp = abs(ldarray); |
| tmp = acos(ldarray); |
| tmp = asin(ldarray); |
| tmp = atan(ldarray); |
| tmp = atan2(ldarray, tmp); |
| tmp = atan2(1.0l, ldarray); |
| tmp = atan2(ldarray, 1.0l); |
| tmp = cos(ldarray); |
| tmp = cosh(ldarray); |
| tmp = sin(ldarray); |
| tmp = sinh(ldarray); |
| tmp = tan(ldarray); |
| # if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) |
| tmp = tanh(ldarray); |
| # endif |
| tmp = exp(ldarray); |
| tmp = log(ldarray); |
| tmp = log10(ldarray); |
| tmp = pow(ldarray, tmp); |
| tmp = pow(1.0l, ldarray); |
| tmp = pow(ldarray, 1.0l); |
| tmp = sqrt(ldarray); |
| } |
| #endif |
| valarray<double> v0(2, 10); |
| valarray<double> v1(v0[slice(0, 1, 5)]); |
| v0[slice(0, 1, 5)] = 5; |
| valarray<double> v2(v0[gslice()]); |
| //valarray<double> v3(v0[valarray<bool>()]); |
| valarray<double> v4(v0[valarray<size_t>()]); |
| } |