1 #include <valarray> 2 3 #include "cppunit/cppunit_proxy.h" 4 5 #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) 6 using namespace std; 7 #endif 8 9 // 10 // TestCase class 11 // 12 class ValarrayTest : public CPPUNIT_NS::TestCase 13 { 14 CPPUNIT_TEST_SUITE(ValarrayTest); 15 CPPUNIT_TEST(transcendentals); 16 CPPUNIT_TEST_SUITE_END(); 17 18 protected: 19 void transcendentals(); 20 }; 21 22 CPPUNIT_TEST_SUITE_REGISTRATION(ValarrayTest); 23 24 // 25 // tests implementation 26 // 27 // For the moment this test is just a complitation test 28 // everyone is welcome to do a real good unit test for 29 // valarray functionality. 30 void ValarrayTest::transcendentals() 31 { 32 #ifdef __SUNPRO_CC 33 using std::abs; 34 #endif 35 { 36 valarray<double> darray; 37 valarray<double> tmp; 38 tmp = abs(darray); 39 tmp = acos(darray); 40 tmp = asin(darray); 41 tmp = atan(darray); 42 tmp = atan2(darray, tmp); 43 tmp = atan2(1.0, darray); 44 tmp = atan2(darray, 1.0); 45 tmp = cos(darray); 46 tmp = cosh(darray); 47 tmp = sin(darray); 48 tmp = sinh(darray); 49 tmp = tan(darray); 50 #if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) 51 tmp = tanh(darray); 52 #endif 53 tmp = exp(darray); 54 tmp = log(darray); 55 tmp = log10(darray); 56 tmp = pow(darray, tmp); 57 tmp = pow(1.0, darray); 58 tmp = pow(darray, 1.0); 59 tmp = sqrt(darray); 60 } 61 { 62 valarray<float> farray; 63 valarray<float> tmp; 64 tmp = abs(farray); 65 tmp = acos(farray); 66 tmp = asin(farray); 67 tmp = atan(farray); 68 tmp = atan2(farray, tmp); 69 tmp = atan2(1.0f, farray); 70 tmp = atan2(farray, 1.0f); 71 tmp = cos(farray); 72 tmp = cosh(farray); 73 tmp = sin(farray); 74 tmp = sinh(farray); 75 tmp = tan(farray); 76 #if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) 77 tmp = tanh(farray); 78 #endif 79 tmp = exp(farray); 80 tmp = log(farray); 81 tmp = log10(farray); 82 tmp = pow(farray, tmp); 83 tmp = pow(1.0f, farray); 84 tmp = pow(farray, 1.0f); 85 tmp = sqrt(farray); 86 } 87 #if !defined (STLPORT) || !defined (_STLP_NO_LONG_DOUBLE) 88 { 89 valarray<long double> ldarray; 90 valarray<long double> tmp; 91 tmp = abs(ldarray); 92 tmp = acos(ldarray); 93 tmp = asin(ldarray); 94 tmp = atan(ldarray); 95 tmp = atan2(ldarray, tmp); 96 tmp = atan2(1.0l, ldarray); 97 tmp = atan2(ldarray, 1.0l); 98 tmp = cos(ldarray); 99 tmp = cosh(ldarray); 100 tmp = sin(ldarray); 101 tmp = sinh(ldarray); 102 tmp = tan(ldarray); 103 # if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64) 104 tmp = tanh(ldarray); 105 # endif 106 tmp = exp(ldarray); 107 tmp = log(ldarray); 108 tmp = log10(ldarray); 109 tmp = pow(ldarray, tmp); 110 tmp = pow(1.0l, ldarray); 111 tmp = pow(ldarray, 1.0l); 112 tmp = sqrt(ldarray); 113 } 114 #endif 115 valarray<double> v0(2, 10); 116 valarray<double> v1(v0[slice(0, 1, 5)]); 117 v0[slice(0, 1, 5)] = 5; 118 valarray<double> v2(v0[gslice()]); 119 //valarray<double> v3(v0[valarray<bool>()]); 120 valarray<double> v4(v0[valarray<size_t>()]); 121 } 122