Home | History | Annotate | Download | only in unit
      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