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.
transcendentals()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