genericopenlibs/cppstdlib/stl/test/unit/valarray_test.cpp
changeset 0 e4d67989cc36
equal deleted inserted replaced
-1:000000000000 0:e4d67989cc36
       
     1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 #include <valarray>
       
    17 
       
    18 #include "cppunit/cppunit_proxy.h"
       
    19 
       
    20 #if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES)
       
    21 using namespace std;
       
    22 #endif
       
    23 
       
    24 //
       
    25 // TestCase class
       
    26 //
       
    27 class ValarrayTest : public CPPUNIT_NS::TestCase
       
    28 {
       
    29   CPPUNIT_TEST_SUITE(ValarrayTest);
       
    30   CPPUNIT_TEST(transcendentals);
       
    31   CPPUNIT_TEST(valarray_cov1);
       
    32   CPPUNIT_TEST(valarray_cov2);
       
    33   CPPUNIT_TEST(valarray_cov3);
       
    34   CPPUNIT_TEST(valarray_cov4);
       
    35   CPPUNIT_TEST(valarray_cov5);
       
    36   CPPUNIT_TEST(valarray_cov6);
       
    37   CPPUNIT_TEST(valarray_cov7);
       
    38   CPPUNIT_TEST(valarray_cov8);
       
    39   CPPUNIT_TEST(valarray_cov9);
       
    40   CPPUNIT_TEST(valarray_cov10);
       
    41   CPPUNIT_TEST(valarray_cov11);
       
    42   CPPUNIT_TEST(valarray_cov12);
       
    43   CPPUNIT_TEST_SUITE_END();
       
    44 
       
    45 protected:
       
    46   void transcendentals();
       
    47   void valarray_cov1();
       
    48   void valarray_cov2();
       
    49   void valarray_cov3();
       
    50   void valarray_cov4();
       
    51   void valarray_cov5();
       
    52   void valarray_cov6();
       
    53   void valarray_cov7();
       
    54   void valarray_cov8();
       
    55   void valarray_cov9();
       
    56   void valarray_cov10();
       
    57   void valarray_cov11();
       
    58   void valarray_cov12();
       
    59 };
       
    60 
       
    61 CPPUNIT_TEST_SUITE_REGISTRATION(ValarrayTest);
       
    62 
       
    63 int MyApplyFunc( int n )
       
    64 	{
       
    65 	   return n*2;
       
    66 	}
       
    67 
       
    68 
       
    69 //
       
    70 // tests implementation
       
    71 //
       
    72 // For the moment this test is just a complitation test
       
    73 // everyone is welcome to do a real good unit test for
       
    74 // valarray functionality.
       
    75 void ValarrayTest::transcendentals()
       
    76 {
       
    77 #ifdef __SUNPRO_CC
       
    78   using std::abs;
       
    79 #endif
       
    80   {
       
    81     valarray<double> darray;
       
    82     valarray<double> tmp;
       
    83     tmp = abs(darray);
       
    84     tmp = acos(darray);
       
    85     tmp = asin(darray);
       
    86     tmp = atan(darray);
       
    87     tmp = atan2(darray, tmp);
       
    88     tmp = atan2(1.0, darray);
       
    89     tmp = atan2(darray, 1.0);
       
    90     tmp = cos(darray);
       
    91     tmp = cosh(darray);
       
    92     tmp = sin(darray);
       
    93     tmp = sinh(darray);
       
    94     tmp = tan(darray);
       
    95 #if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64)
       
    96     tmp = tanh(darray);
       
    97 #endif
       
    98     tmp = exp(darray);
       
    99     tmp = log(darray);
       
   100     tmp = log10(darray);
       
   101     tmp = pow(darray, tmp);
       
   102     tmp = pow(1.0, darray);
       
   103     tmp = pow(darray, 1.0);
       
   104     tmp = sqrt(darray);
       
   105   }
       
   106   {
       
   107     valarray<float> farray;
       
   108     valarray<float> tmp;
       
   109     tmp = abs(farray);
       
   110     tmp = acos(farray);
       
   111     tmp = asin(farray);
       
   112     tmp = atan(farray);
       
   113     tmp = atan2(farray, tmp);
       
   114     tmp = atan2(1.0f, farray);
       
   115     tmp = atan2(farray, 1.0f);
       
   116     tmp = cos(farray);
       
   117     tmp = cosh(farray);
       
   118     tmp = sin(farray);
       
   119     tmp = sinh(farray);
       
   120     tmp = tan(farray);
       
   121 #if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64)
       
   122     tmp = tanh(farray);
       
   123 #endif
       
   124     tmp = exp(farray);
       
   125     tmp = log(farray);
       
   126     tmp = log10(farray);
       
   127     tmp = pow(farray, tmp);
       
   128     tmp = pow(1.0f, farray);
       
   129     tmp = pow(farray, 1.0f);
       
   130     tmp = sqrt(farray);
       
   131   }
       
   132 #if !defined (STLPORT) || !defined (_STLP_NO_LONG_DOUBLE)
       
   133   {
       
   134     valarray<long double> ldarray;
       
   135     valarray<long double> tmp;
       
   136     tmp = abs(ldarray);
       
   137     tmp = acos(ldarray);
       
   138     tmp = asin(ldarray);
       
   139     tmp = atan(ldarray);
       
   140     tmp = atan2(ldarray, tmp);
       
   141     tmp = atan2(1.0l, ldarray);
       
   142     tmp = atan2(ldarray, 1.0l);
       
   143     tmp = cos(ldarray);
       
   144     tmp = cosh(ldarray);
       
   145     tmp = sin(ldarray);
       
   146     tmp = sinh(ldarray);
       
   147     tmp = tan(ldarray);
       
   148 #  if !defined (STLPORT) || !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_M_AMD64)
       
   149     tmp = tanh(ldarray);
       
   150 #  endif
       
   151     tmp = exp(ldarray);
       
   152     tmp = log(ldarray);
       
   153     tmp = log10(ldarray);
       
   154     tmp = pow(ldarray, tmp);
       
   155     tmp = pow(1.0l, ldarray);
       
   156     tmp = pow(ldarray, 1.0l);
       
   157     tmp = sqrt(ldarray);
       
   158   }
       
   159 #endif
       
   160 }
       
   161 void ValarrayTest::valarray_cov1()
       
   162 	{
       
   163 		{/*
       
   164 		int i;
       
   165 		valarray<int> va ( 10 );
       
   166 		
       
   167 		for ( i = 0 ; i < 10 ; i += 1 )
       
   168 		      va [ i ] =  2 * ( i + 1 );
       
   169 		CPPUNIT_ASSERT(va.size()==10);
       
   170 		
       
   171 		float af1 [] = {0, 1, 2, 3};
       
   172 		valarray <float> vf1 (af1, 4); 
       
   173 		CPPUNIT_ASSERT(vf1.size()==4);
       
   174 		
       
   175 		valarray <float> vf2 (10, 3.0f); 		
       
   176 		CPPUNIT_ASSERT(vf2.size()==10);
       
   177 		
       
   178 		valarray <float> vf3 (vf2); 		
       
   179 		CPPUNIT_ASSERT(vf3.size()==10);
       
   180 		
       
   181 		slice Slice ( 2 , 4 , 3 );
       
   182 		
       
   183 		valarray<int> vaSlice = va [ Slice ];
       
   184 
       
   185 		CPPUNIT_ASSERT(vaSlice [ 0 ] == 6);
       
   186 		CPPUNIT_ASSERT(vaSlice [ 1 ] == 12);
       
   187 		CPPUNIT_ASSERT(vaSlice [ 2 ] == 18);*/
       
   188 		}
       
   189 		{/*
       
   190 		int i;
       
   191 
       
   192 		valarray<int> va ( 20 ), vaResult;
       
   193 		for ( i = 0 ; i < 20 ; i+=1 ) 
       
   194 		      va [ i ] =  i;
       
   195 		valarray<size_t> Len ( 2 ), Stride ( 2 );
       
   196 		Len [0] = 4;
       
   197 		Len [1] = 4;
       
   198 		Stride [0] = 7;
       
   199 		Stride [1] = 4;
       
   200 
       
   201 		gslice vaGSlice ( 0, Len, Stride );
       
   202 		vaResult = va [ vaGSlice ];
       
   203 		CPPUNIT_ASSERT(vaResult [ 0 ] == 0);
       
   204 		CPPUNIT_ASSERT(vaResult [ 1 ] == 4);
       
   205 		CPPUNIT_ASSERT(vaResult [ 2 ] == 8);
       
   206 		CPPUNIT_ASSERT(vaResult [ 3 ] == 12);
       
   207 		CPPUNIT_ASSERT(vaResult [ 4 ] == 7);
       
   208 		CPPUNIT_ASSERT(vaResult [ 5 ] == 11);
       
   209 		CPPUNIT_ASSERT(vaResult [ 6 ] == 15);
       
   210 		CPPUNIT_ASSERT(vaResult [ 7 ] == 19);*/
       
   211 		}
       
   212 		{
       
   213 		int i;
       
   214 
       
   215 		valarray<int> va ( 10 );
       
   216 		for ( i = 0 ; i < 10 ; i += 2 )
       
   217 		      va [ i ] =  i;
       
   218 		for ( i = 1 ; i < 10 ; i += 2 )
       
   219 		      va [ i ] =  -1;
       
   220 		// Use masked subsets to assign a value of 10
       
   221 		// to all elements grrater than 3 in value
       
   222 		va [va > 3 ] = 10;
       
   223 		CPPUNIT_ASSERT(va [ 0 ] == 0);
       
   224 		CPPUNIT_ASSERT(va [ 1 ] == -1);
       
   225 		CPPUNIT_ASSERT(va [ 2 ] == 2);
       
   226 		CPPUNIT_ASSERT(va [ 3 ] == -1);
       
   227 		CPPUNIT_ASSERT(va [ 4 ] == 10);
       
   228 		CPPUNIT_ASSERT(va [ 5 ] == -1);
       
   229 		CPPUNIT_ASSERT(va [ 6 ] == 10);
       
   230 		CPPUNIT_ASSERT(va [ 7 ] == -1);
       
   231 		CPPUNIT_ASSERT(va [ 8 ] == 10);
       
   232 		CPPUNIT_ASSERT(va [ 9 ] == -1);
       
   233 		}
       
   234 		{
       
   235 		int i;
       
   236 
       
   237 		valarray<int> va ( 10 );
       
   238 		for ( i = 0 ; i < 10 ; i += 2 )
       
   239 		      va [ i ] =  i;
       
   240 		for ( i = 1 ; i < 10 ; i += 2 )
       
   241 		      va [ i ] =  -1;
       
   242 		// Select 2nd, 4th & 6th elements
       
   243 		// and assign a value of 10 to them
       
   244 		valarray<size_t> indx ( 3 );
       
   245 		indx [0] = 2;
       
   246 		indx [1] = 4;
       
   247 		indx [2] = 6;
       
   248 		va[indx] = 10;
       
   249 		CPPUNIT_ASSERT(va [ 0 ] == 0);
       
   250 		CPPUNIT_ASSERT(va [ 1 ] == -1);
       
   251 		CPPUNIT_ASSERT(va [ 2 ] == 10);
       
   252 		CPPUNIT_ASSERT(va [ 3 ] == -1);
       
   253 		CPPUNIT_ASSERT(va [ 4 ] == 10);
       
   254 		CPPUNIT_ASSERT(va [ 5 ] == -1);
       
   255 		CPPUNIT_ASSERT(va [ 6 ] == 10);
       
   256 		CPPUNIT_ASSERT(va [ 7 ] == -1);
       
   257 		CPPUNIT_ASSERT(va [ 8 ] == 8);
       
   258 		CPPUNIT_ASSERT(va [ 9 ] == -1);
       
   259 		}
       
   260 	}
       
   261 void ValarrayTest::valarray_cov2()
       
   262 	{
       
   263 		{
       
   264 		int i;
       
   265 
       
   266 		valarray<int> va ( 10 );
       
   267 		for ( i = 0 ; i < 10 ; i+=1 )
       
   268 		      va [ i ] =  i;
       
   269 		CPPUNIT_ASSERT(va.sum ( ) == 45);
       
   270 		CPPUNIT_ASSERT(va.min ( ) == 0);
       
   271 		CPPUNIT_ASSERT(va.max ( ) == 9);
       
   272 		}
       
   273 		{
       
   274 		int i;
       
   275 	    valarray<int> va1 ( 3 );
       
   276 		for ( i = 0 ; i < 3 ; i+=1 )
       
   277 		      va1 [ i ] =  i;
       
   278 		va1.resize(5, 10);
       
   279 		
       
   280 		CPPUNIT_ASSERT(va1 [ 0 ] == 10);
       
   281 		CPPUNIT_ASSERT(va1 [ 1 ] == 10);
       
   282 		CPPUNIT_ASSERT(va1 [ 2 ] == 10);
       
   283 		CPPUNIT_ASSERT(va1 [ 3 ] == 10);
       
   284 		CPPUNIT_ASSERT(va1 [ 4 ] == 10);
       
   285 		CPPUNIT_ASSERT(va1.size ( ) == 5);
       
   286 		}
       
   287 		{
       
   288 		int i;
       
   289 
       
   290 		valarray<int> vaR ( 3 ),vaApplied(3);
       
   291 		for ( i = 0 ; i < 3 ; i+=1 )
       
   292 		      vaR [ i ] =  i;
       
   293 		
       
   294 		vaApplied = vaR.apply( MyApplyFunc );
       
   295 		CPPUNIT_ASSERT(vaApplied [ 0 ] == 0);
       
   296 		CPPUNIT_ASSERT(vaApplied [ 1 ] == 2);
       
   297 		CPPUNIT_ASSERT(vaApplied [ 2 ] == 4);
       
   298 		}
       
   299 		{
       
   300 		int i;
       
   301 
       
   302 		valarray<int> vaL2 ( 4 );
       
   303 		valarray<int> vaNOT2 ( 4 );
       
   304 		for ( i = 0 ; i < 3 ; i += 2 )
       
   305 		      vaL2 [ i ] =  i;
       
   306 		for ( i = 1 ; i < 3 ; i += 2 )
       
   307 		      vaL2 [ i ] =  -2 * i;	
       
   308 		vaNOT2 = ~vaL2;
       
   309 		CPPUNIT_ASSERT(vaNOT2 [ 0 ] == -1);
       
   310 		CPPUNIT_ASSERT(vaNOT2 [ 1 ] == 1);
       
   311 		CPPUNIT_ASSERT(vaNOT2 [ 2 ] == -3);
       
   312 		}
       
   313 	}
       
   314 void ValarrayTest::valarray_cov3()
       
   315 	{
       
   316 		{
       
   317 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   318 		vaL[0] = 1;vaR[0] = 1;
       
   319 		vaL[1] = 0;vaR[1] = 2;
       
   320 		vaL[2] = 1;vaR[2] = 3;
       
   321 		vaL1 = vaL;
       
   322 		
       
   323 		vaL |= vaR;
       
   324 		CPPUNIT_ASSERT(vaL [ 0 ] == 1);
       
   325 		CPPUNIT_ASSERT(vaL [ 1 ] == 2);
       
   326 		CPPUNIT_ASSERT(vaL [ 2 ] == 3);
       
   327 		
       
   328 		vaL1 |= 3;
       
   329 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 3);
       
   330 		CPPUNIT_ASSERT(vaL1 [ 1 ] == 3);
       
   331 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 3);
       
   332 		}
       
   333 		{
       
   334 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   335 		vaL[0] = 1;vaR[0] = 0;
       
   336 		vaL[1] = 0;vaR[1] = 0;
       
   337 		vaL[2] = 1;vaR[2] = 1;
       
   338 		vaL1 = vaL;
       
   339 		
       
   340 		vaL ^= vaR;
       
   341 		CPPUNIT_ASSERT(vaL [ 0 ] == 1);
       
   342 		CPPUNIT_ASSERT(vaL [ 1 ] == 0);
       
   343 		CPPUNIT_ASSERT(vaL [ 2 ] == 0);
       
   344 		
       
   345 		vaL1 ^= 0;
       
   346 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 1);
       
   347 		CPPUNIT_ASSERT(vaL1 [ 1 ] == 0);
       
   348 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 1);
       
   349 		}
       
   350 		{
       
   351 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   352 		vaL[0] = 64;vaR[0] = 0;
       
   353 		vaL[1] = -64;vaR[1] = 1;
       
   354 		vaL[2] = 64;vaR[2] = 2;
       
   355 		vaL1 = vaL;
       
   356 		
       
   357 		vaL >>= vaR;
       
   358 		CPPUNIT_ASSERT(vaL [ 0 ] == 64);
       
   359 		CPPUNIT_ASSERT(vaL [ 1 ] == -32);
       
   360 		CPPUNIT_ASSERT(vaL [ 2 ] == 16);
       
   361 		
       
   362 		vaL1 >>= 0;
       
   363 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 64);
       
   364 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -64);
       
   365 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 64);
       
   366 		}
       
   367 	}
       
   368 void ValarrayTest::valarray_cov4()
       
   369 	{
       
   370 		{
       
   371 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   372 		vaL[0] = 1;vaR[0] = 0;
       
   373 		vaL[1] = -1;vaR[1] = 1;
       
   374 		vaL[2] = 1;vaR[2] = 2;
       
   375 		vaL1 = vaL;
       
   376 		
       
   377 		vaL <<= vaR;
       
   378 		CPPUNIT_ASSERT(vaL [ 0 ] == 1);
       
   379 		CPPUNIT_ASSERT(vaL [ 1 ] == -2);
       
   380 		CPPUNIT_ASSERT(vaL [ 2 ] == 4);
       
   381 		
       
   382 		vaL1 <<= 2;
       
   383 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 4);
       
   384 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -4);
       
   385 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 4);
       
   386 		}
       
   387 		{
       
   388 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   389 		vaL[0] = 100;vaR[0] = 2;
       
   390 		vaL[1] = -100;vaR[1] = 4;
       
   391 		vaL[2] = 100;vaR[2] = 10;
       
   392 		vaL1 = vaL;
       
   393 		
       
   394 		vaL /= vaR;
       
   395 		CPPUNIT_ASSERT(vaL [ 0 ] == 50);
       
   396 		CPPUNIT_ASSERT(vaL [ 1 ] == -25);
       
   397 		CPPUNIT_ASSERT(vaL [ 2 ] == 10);
       
   398 		
       
   399 		vaL1 /= 2;
       
   400 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 50);
       
   401 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -50);
       
   402 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 50);
       
   403 		}
       
   404 		{
       
   405 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   406 		vaL[0] = 10;vaR[0] = 0;
       
   407 		vaL[1] = -10;vaR[1] = 1;
       
   408 		vaL[2] = 10;vaR[2] = 2;
       
   409 		vaL1 = vaL;
       
   410 		
       
   411 		vaL -= vaR;
       
   412 		CPPUNIT_ASSERT(vaL [ 0 ] == 10);
       
   413 		CPPUNIT_ASSERT(vaL [ 1 ] == -11);
       
   414 		CPPUNIT_ASSERT(vaL [ 2 ] == 8);
       
   415 		
       
   416 		vaL1 -= 2;
       
   417 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 8);
       
   418 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -12);
       
   419 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 8);
       
   420 		}
       
   421 	}
       
   422 void ValarrayTest::valarray_cov5()
       
   423 	{
       
   424 		{
       
   425 		valarray<int> vaL ( 3 ), vaR ( 3 );
       
   426 		vaL[0] = 0;
       
   427 		vaL[1] = -10;
       
   428 		vaL[2] = 10;
       
   429 		
       
   430 		vaR = -vaL;
       
   431 		CPPUNIT_ASSERT(vaR [ 0 ] == 0);
       
   432 		CPPUNIT_ASSERT(vaR [ 1 ] == 10);
       
   433 		CPPUNIT_ASSERT(vaR [ 2 ] == -10);
       
   434 		}
       
   435 		{
       
   436 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   437 		vaL[0] = 10;vaR[0] = 0;
       
   438 		vaL[1] = -10;vaR[1] = 1;
       
   439 		vaL[2] = 10;vaR[2] = 2;
       
   440 		vaL1 = vaL;
       
   441 		
       
   442 		vaL += vaR;
       
   443 		CPPUNIT_ASSERT(vaL [ 0 ] == 10);
       
   444 		CPPUNIT_ASSERT(vaL [ 1 ] == -9);
       
   445 		CPPUNIT_ASSERT(vaL [ 2 ] == 12);
       
   446 		
       
   447 		vaL1 += 2;
       
   448 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 12);
       
   449 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -8);
       
   450 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 12);
       
   451 		}
       
   452 		{
       
   453 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   454 		vaL[0] = 2;vaR[0] = 0;
       
   455 		vaL[1] = -1;vaR[1] = 1;
       
   456 		vaL[2] = 2;vaR[2] = 2;
       
   457 		vaL1 = vaL;
       
   458 		
       
   459 		vaL *= vaR;
       
   460 		CPPUNIT_ASSERT(vaL [ 0 ] == 0);
       
   461 		CPPUNIT_ASSERT(vaL [ 1 ] == -1);
       
   462 		CPPUNIT_ASSERT(vaL [ 2 ] == 4);
       
   463 		
       
   464 		vaL1 *= 2;
       
   465 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 4);
       
   466 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -2);
       
   467 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 4);
       
   468 		}
       
   469 		{
       
   470 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   471 		vaL[0] = 0;vaR[0] = 0;
       
   472 		vaL[1] = 1;vaR[1] = 1;
       
   473 		vaL[2] = 2;vaR[2] = 2;
       
   474 		vaL1 = vaL;
       
   475 		
       
   476 		vaL &= vaR;
       
   477 		CPPUNIT_ASSERT(vaL [ 0 ] == 0);
       
   478 		CPPUNIT_ASSERT(vaL [ 1 ] == 1);
       
   479 		CPPUNIT_ASSERT(vaL [ 2 ] == 2);
       
   480 		
       
   481 		vaL1 &= 0;
       
   482 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 0);
       
   483 		CPPUNIT_ASSERT(vaL1 [ 1 ] == 0);
       
   484 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 0);
       
   485 		}
       
   486 	}
       
   487 void ValarrayTest::valarray_cov6()
       
   488 	{
       
   489 		{
       
   490 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3);
       
   491 		vaL[0] = 53;vaR[0] = 1;
       
   492 		vaL[1] = -67;vaR[1] = 4;
       
   493 		vaL[2] = 53;vaR[2] = 7;
       
   494 		vaL1 = vaL;
       
   495 		
       
   496 		vaL %= vaR;
       
   497 		CPPUNIT_ASSERT(vaL [ 0 ] == 0);
       
   498 		CPPUNIT_ASSERT(vaL [ 1 ] == -3);
       
   499 		CPPUNIT_ASSERT(vaL [ 2 ] == 4);
       
   500 		
       
   501 		vaL1 %= 53;
       
   502 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 0);
       
   503 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -14);
       
   504 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 0);
       
   505 		}
       
   506 		{
       
   507 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   508 		vaL[0] = 1;vaR[0] = 1;
       
   509 		vaL[1] = 0;vaR[1] = 2;
       
   510 		vaL[2] = 1;vaR[2] = 3;
       
   511 		vaL1 = vaL;
       
   512 		vaL2 = vaL;		
       
   513 		
       
   514 		vaL = vaL | vaR;
       
   515 		CPPUNIT_ASSERT(vaL [ 0 ] == 1);
       
   516 		CPPUNIT_ASSERT(vaL [ 1 ] == 2);
       
   517 		CPPUNIT_ASSERT(vaL [ 2 ] == 3);
       
   518 		
       
   519 		vaL1 = vaL1 | 3;
       
   520 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 3);
       
   521 		CPPUNIT_ASSERT(vaL1 [ 1 ] == 3);
       
   522 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 3);
       
   523 		vaL2 = 3 | vaL2;
       
   524 		CPPUNIT_ASSERT(vaL2 [ 0 ] == 3);
       
   525 		CPPUNIT_ASSERT(vaL2 [ 1 ] == 3);
       
   526 		CPPUNIT_ASSERT(vaL2 [ 2 ] == 3);
       
   527 		}
       
   528 		{
       
   529 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   530 		vaL[0] = 1;vaR[0] = 0;
       
   531 		vaL[1] = 0;vaR[1] = 0;
       
   532 		vaL[2] = 1;vaR[2] = 1;
       
   533 		vaL1 = vaL;
       
   534 		vaL2 = vaL;
       
   535 		
       
   536 		vaL = vaL ^ vaR;
       
   537 		CPPUNIT_ASSERT(vaL [ 0 ] == 1);
       
   538 		CPPUNIT_ASSERT(vaL [ 1 ] == 0);
       
   539 		CPPUNIT_ASSERT(vaL [ 2 ] == 0);
       
   540 		
       
   541 		vaL1 = vaL1 ^ 0;
       
   542 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 1);
       
   543 		CPPUNIT_ASSERT(vaL1 [ 1 ] == 0);
       
   544 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 1);
       
   545 		vaL2 = 0 ^ vaL2;
       
   546 		CPPUNIT_ASSERT(vaL2 [ 0 ] == 1);
       
   547 		CPPUNIT_ASSERT(vaL2 [ 1 ] == 0);
       
   548 		CPPUNIT_ASSERT(vaL2 [ 2 ] == 1);
       
   549 		}
       
   550 	}
       
   551 void ValarrayTest::valarray_cov7()
       
   552 	{
       
   553 		{
       
   554 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   555 		vaL[0] = 64;vaR[0] = 0;
       
   556 		vaL[1] = -64;vaR[1] = 1;
       
   557 		vaL[2] = 64;vaR[2] = 2;
       
   558 		vaL1 = vaL;
       
   559 		vaL2 = vaL;
       
   560 		
       
   561 		vaL = vaL >> vaR;
       
   562 		CPPUNIT_ASSERT(vaL [ 0 ] == 64);
       
   563 		CPPUNIT_ASSERT(vaL [ 1 ] == -32);
       
   564 		CPPUNIT_ASSERT(vaL [ 2 ] == 16);
       
   565 		
       
   566 		vaL1 = vaL1 >> 0;
       
   567 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 64);
       
   568 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -64);
       
   569 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 64);
       
   570 		vaL2 = 0 >> vaL2;
       
   571 		CPPUNIT_ASSERT(vaL2 [ 0 ] == 0);
       
   572 		CPPUNIT_ASSERT(vaL2 [ 1 ] == 0);
       
   573 		CPPUNIT_ASSERT(vaL2 [ 2 ] == 0);
       
   574 		}
       
   575 		{
       
   576 		valarray<int> vaL ( 3 ), vaR ( 3 );
       
   577 		valarray<bool> vaLb1(3),vaLb2(3),vaLb3(3);
       
   578 		vaL[0] = 1;vaR[0] = 0;
       
   579 		vaL[1] = 0;vaR[1] = 0;
       
   580 		vaL[2] = 1;vaR[2] = 2;
       
   581 		
       
   582 		vaLb1 = (vaL >= vaR);
       
   583 		CPPUNIT_ASSERT(vaLb1 [ 0 ] == true);
       
   584 		CPPUNIT_ASSERT(vaLb1 [ 1 ] == true);
       
   585 		CPPUNIT_ASSERT(vaLb1 [ 2 ] == false);
       
   586 		
       
   587 		vaLb2 = (vaL >= 0);
       
   588 		CPPUNIT_ASSERT(vaLb2 [ 0 ] == true);
       
   589 		CPPUNIT_ASSERT(vaLb2 [ 1 ] == true);
       
   590 		CPPUNIT_ASSERT(vaLb2 [ 2 ] == true);
       
   591 		vaLb3 = (0 >= vaL);
       
   592 		CPPUNIT_ASSERT(vaLb3 [ 0 ] == false);
       
   593 		CPPUNIT_ASSERT(vaLb3 [ 1 ] == true);
       
   594 		CPPUNIT_ASSERT(vaLb3 [ 2 ] == false);
       
   595 		}
       
   596 		{
       
   597 		valarray<int> vaL ( 3 ), vaR ( 3 );
       
   598 		valarray<bool> vaLb1(3),vaLb2(3),vaLb3(3);
       
   599 		vaL[0] = 1;vaR[0] = 0;
       
   600 		vaL[1] = 0;vaR[1] = 0;
       
   601 		vaL[2] = 1;vaR[2] = 2;
       
   602 		
       
   603 		vaLb1 = (vaL > vaR);
       
   604 		CPPUNIT_ASSERT(vaLb1 [ 0 ] == true);
       
   605 		CPPUNIT_ASSERT(vaLb1 [ 1 ] == false);
       
   606 		CPPUNIT_ASSERT(vaLb1 [ 2 ] == false);
       
   607 		
       
   608 		vaLb2 = (vaL > 0);
       
   609 		CPPUNIT_ASSERT(vaLb2 [ 0 ] == true);
       
   610 		CPPUNIT_ASSERT(vaLb2 [ 1 ] == false);
       
   611 		CPPUNIT_ASSERT(vaLb2 [ 2 ] == true);
       
   612 		vaLb3 = (0 > vaL);
       
   613 		CPPUNIT_ASSERT(vaLb3 [ 0 ] == false);
       
   614 		CPPUNIT_ASSERT(vaLb3 [ 1 ] == false);
       
   615 		CPPUNIT_ASSERT(vaLb3 [ 2 ] == false);
       
   616 		}
       
   617 	}
       
   618 void ValarrayTest::valarray_cov8()
       
   619 	{
       
   620 		{
       
   621 		valarray<int> vaL ( 3 ), vaR ( 3 );
       
   622 		valarray<bool> vaLb1(3),vaLb2(3),vaLb3(3);
       
   623 		vaL[0] = 1;vaR[0] = 0;
       
   624 		vaL[1] = 0;vaR[1] = 0;
       
   625 		vaL[2] = 1;vaR[2] = 2;
       
   626 		
       
   627 		vaLb1 = (vaL == vaR);
       
   628 		CPPUNIT_ASSERT(vaLb1 [ 0 ] == false);
       
   629 		CPPUNIT_ASSERT(vaLb1 [ 1 ] == true);
       
   630 		CPPUNIT_ASSERT(vaLb1 [ 2 ] == false);
       
   631 		
       
   632 		vaLb2 = (vaL == 0);
       
   633 		CPPUNIT_ASSERT(vaLb2 [ 0 ] == false);
       
   634 		CPPUNIT_ASSERT(vaLb2 [ 1 ] == true);
       
   635 		CPPUNIT_ASSERT(vaLb2 [ 2 ] == false);
       
   636 		vaLb3 = (0 == vaL);
       
   637 		CPPUNIT_ASSERT(vaLb3 [ 0 ] == false);
       
   638 		CPPUNIT_ASSERT(vaLb3 [ 1 ] == true);
       
   639 		CPPUNIT_ASSERT(vaLb3 [ 2 ] == false);
       
   640 		}
       
   641 		{
       
   642 		valarray<int> vaL ( 3 ), vaR ( 3 );
       
   643 		valarray<bool> vaLb1(3),vaLb2(3),vaLb3(3);
       
   644 		vaL[0] = 1;vaR[0] = 0;
       
   645 		vaL[1] = 0;vaR[1] = 0;
       
   646 		vaL[2] = 1;vaR[2] = 2;
       
   647 		
       
   648 		vaLb1 = (vaL <= vaR);
       
   649 		CPPUNIT_ASSERT(vaLb1 [ 0 ] == false);
       
   650 		CPPUNIT_ASSERT(vaLb1 [ 1 ] == true);
       
   651 		CPPUNIT_ASSERT(vaLb1 [ 2 ] == true);
       
   652 		
       
   653 		vaLb2 = (vaL <= 0);
       
   654 		CPPUNIT_ASSERT(vaLb2 [ 0 ] == false);
       
   655 		CPPUNIT_ASSERT(vaLb2 [ 1 ] == true);
       
   656 		CPPUNIT_ASSERT(vaLb2 [ 2 ] == false);
       
   657 		vaLb3 = (0 <= vaL);
       
   658 		CPPUNIT_ASSERT(vaLb3 [ 0 ] == true);
       
   659 		CPPUNIT_ASSERT(vaLb3 [ 1 ] == true);
       
   660 		CPPUNIT_ASSERT(vaLb3 [ 2 ] == true);
       
   661 		}
       
   662 		{
       
   663 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   664 		vaL[0] = 1;vaR[0] = 0;
       
   665 		vaL[1] = -1;vaR[1] = 1;
       
   666 		vaL[2] = 1;vaR[2] = 2;
       
   667 		vaL1 = vaL;
       
   668 		vaL2 = vaL;
       
   669 		
       
   670 		vaL = vaL << vaR;
       
   671 		CPPUNIT_ASSERT(vaL [ 0 ] == 1);
       
   672 		CPPUNIT_ASSERT(vaL [ 1 ] == -2);
       
   673 		CPPUNIT_ASSERT(vaL [ 2 ] == 4);
       
   674 		
       
   675 		vaL1 = vaL1 << 2;
       
   676 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 4);
       
   677 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -4);
       
   678 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 4);
       
   679 		vaL2 = 2 << vaL2;
       
   680 		CPPUNIT_ASSERT(vaL2 [ 0 ] == 4);
       
   681 		CPPUNIT_ASSERT(vaL2 [ 1 ] == 0);
       
   682 		CPPUNIT_ASSERT(vaL2 [ 2 ] == 4);
       
   683 		}
       
   684 	}
       
   685 void ValarrayTest::valarray_cov9()
       
   686 	{
       
   687 		{
       
   688 		valarray<int> vaL ( 3 ), vaR ( 3 );
       
   689 		valarray<bool> vaLb1(3),vaLb2(3),vaLb3(3);
       
   690 		vaL[0] = 1;vaR[0] = 0;
       
   691 		vaL[1] = 0;vaR[1] = 0;
       
   692 		vaL[2] = 1;vaR[2] = 2;
       
   693 		
       
   694 		vaLb1 = (vaL < vaR);
       
   695 		CPPUNIT_ASSERT(vaLb1 [ 0 ] == false);
       
   696 		CPPUNIT_ASSERT(vaLb1 [ 1 ] == false);
       
   697 		CPPUNIT_ASSERT(vaLb1 [ 2 ] == true);
       
   698 		
       
   699 		vaLb2 = (vaL < 0);
       
   700 		CPPUNIT_ASSERT(vaLb2 [ 0 ] == false);
       
   701 		CPPUNIT_ASSERT(vaLb2 [ 1 ] == false);
       
   702 		CPPUNIT_ASSERT(vaLb2 [ 2 ] == false);
       
   703 		vaLb3 = (0 < vaL);
       
   704 		CPPUNIT_ASSERT(vaLb3 [ 0 ] == true);
       
   705 		CPPUNIT_ASSERT(vaLb3 [ 1 ] == false);
       
   706 		CPPUNIT_ASSERT(vaLb3 [ 2 ] == true);
       
   707 		}
       
   708 		{
       
   709 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   710 		vaL[0] = 100;vaR[0] = 2;
       
   711 		vaL[1] = -100;vaR[1] = 4;
       
   712 		vaL[2] = 100;vaR[2] = 10;
       
   713 		vaL1 = vaL;
       
   714 		vaL2 = vaL;
       
   715 		
       
   716 		vaL = vaL / vaR;
       
   717 		CPPUNIT_ASSERT(vaL [ 0 ] == 50);
       
   718 		CPPUNIT_ASSERT(vaL [ 1 ] == -25);
       
   719 		CPPUNIT_ASSERT(vaL [ 2 ] == 10);
       
   720 		
       
   721 		vaL1 = vaL1 / 2;
       
   722 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 50);
       
   723 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -50);
       
   724 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 50);
       
   725 		vaL2 = 1000 / vaL2 ;
       
   726 		CPPUNIT_ASSERT(vaL2 [ 0 ] == 10);
       
   727 		CPPUNIT_ASSERT(vaL2 [ 1 ] == -10);
       
   728 		CPPUNIT_ASSERT(vaL2 [ 2 ] == 10);
       
   729 		}
       
   730 		{
       
   731 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   732 		vaL[0] = 10;vaR[0] = 0;
       
   733 		vaL[1] = -10;vaR[1] = 1;
       
   734 		vaL[2] = 10;vaR[2] = 2;
       
   735 		vaL1 = vaL;
       
   736 		vaL2 = vaL;
       
   737 		
       
   738 		vaL = vaL - vaR;
       
   739 		CPPUNIT_ASSERT(vaL [ 0 ] == 10);
       
   740 		CPPUNIT_ASSERT(vaL [ 1 ] == -11);
       
   741 		CPPUNIT_ASSERT(vaL [ 2 ] == 8);
       
   742 		
       
   743 		vaL1 = vaL1 - 2;
       
   744 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 8);
       
   745 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -12);
       
   746 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 8);
       
   747 		vaL2 = 2 - vaL2;
       
   748 		CPPUNIT_ASSERT(vaL2 [ 0 ] == -8);
       
   749 		CPPUNIT_ASSERT(vaL2 [ 1 ] == 12);
       
   750 		CPPUNIT_ASSERT(vaL2 [ 2 ] == -8);
       
   751 		}
       
   752 	}
       
   753 void ValarrayTest::valarray_cov10()
       
   754 	{
       
   755 		{
       
   756 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   757 		vaL[0] = 10;vaR[0] = 0;
       
   758 		vaL[1] = -10;vaR[1] = 1;
       
   759 		vaL[2] = 10;vaR[2] = 2;
       
   760 		vaL1 = vaL;
       
   761 		vaL2 = vaL;
       
   762 		
       
   763 		vaL = vaL + vaR;
       
   764 		CPPUNIT_ASSERT(vaL [ 0 ] == 10);
       
   765 		CPPUNIT_ASSERT(vaL [ 1 ] == -9);
       
   766 		CPPUNIT_ASSERT(vaL [ 2 ] == 12);
       
   767 		
       
   768 		vaL1 = vaL1 + 2;
       
   769 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 12);
       
   770 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -8);
       
   771 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 12);
       
   772 		vaL2 = 2 + vaL2;
       
   773 		CPPUNIT_ASSERT(vaL2 [ 0 ] == 12);
       
   774 		CPPUNIT_ASSERT(vaL2 [ 1 ] == -8);
       
   775 		CPPUNIT_ASSERT(vaL2 [ 2 ] == 12);
       
   776 		}
       
   777 		{
       
   778 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   779 		vaL[0] = 10;vaR[0] = 0;
       
   780 		vaL[1] = -10;vaR[1] = 1;
       
   781 		vaL[2] = 10;vaR[2] = 2;
       
   782 		vaL1 = vaL;
       
   783 		vaL2 = vaL;
       
   784 		
       
   785 		vaL = vaL * vaR;
       
   786 		CPPUNIT_ASSERT(vaL [ 0 ] == 0);
       
   787 		CPPUNIT_ASSERT(vaL [ 1 ] == -10);
       
   788 		CPPUNIT_ASSERT(vaL [ 2 ] == 20);
       
   789 		
       
   790 		vaL1 = vaL1 * 2;
       
   791 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 20);
       
   792 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -20);
       
   793 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 20);
       
   794 		vaL2 = 2 * vaL2;
       
   795 		CPPUNIT_ASSERT(vaL2 [ 0 ] == 20);
       
   796 		CPPUNIT_ASSERT(vaL2 [ 1 ] == -20);
       
   797 		CPPUNIT_ASSERT(vaL2 [ 2 ] == 20);
       
   798 		}
       
   799 		{
       
   800 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   801 		vaL[0] = 0;vaR[0] = 0;
       
   802 		vaL[1] = 1;vaR[1] = 1;
       
   803 		vaL[2] = 2;vaR[2] = 2;
       
   804 		vaL1 = vaL;
       
   805 		vaL2 = vaL;
       
   806 		
       
   807 		vaL = vaL & vaR;
       
   808 		CPPUNIT_ASSERT(vaL [ 0 ] == 0);
       
   809 		CPPUNIT_ASSERT(vaL [ 1 ] == 1);
       
   810 		CPPUNIT_ASSERT(vaL [ 2 ] == 2);
       
   811 		
       
   812 		vaL1 = vaL1 & 0;
       
   813 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 0);
       
   814 		CPPUNIT_ASSERT(vaL1 [ 1 ] == 0);
       
   815 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 0);
       
   816 		vaL2 = 0 & vaL2;
       
   817 		CPPUNIT_ASSERT(vaL2 [ 0 ] == 0);
       
   818 		CPPUNIT_ASSERT(vaL2 [ 1 ] == 0);
       
   819 		CPPUNIT_ASSERT(vaL2 [ 2 ] == 0);
       
   820 		}
       
   821 	}
       
   822 void ValarrayTest::valarray_cov11()
       
   823 	{
       
   824 		{
       
   825 		valarray<int> vaL ( 3 ), vaR ( 3 ),vaL1(3),vaL2(3);
       
   826 		vaL[0] = 53;vaR[0] = 1;
       
   827 		vaL[1] = -67;vaR[1] = 4;
       
   828 		vaL[2] = 53;vaR[2] = 7;
       
   829 		vaL1 = vaL;
       
   830 		vaL2 = vaL;
       
   831 		
       
   832 		vaL = vaL % vaR;
       
   833 		CPPUNIT_ASSERT(vaL [ 0 ] == 0);
       
   834 		CPPUNIT_ASSERT(vaL [ 1 ] == -3);
       
   835 		CPPUNIT_ASSERT(vaL [ 2 ] == 4);
       
   836 		
       
   837 		vaL1 = vaL1 % 53;
       
   838 		CPPUNIT_ASSERT(vaL1 [ 0 ] == 0);
       
   839 		CPPUNIT_ASSERT(vaL1 [ 1 ] == -14);
       
   840 		CPPUNIT_ASSERT(vaL1 [ 2 ] == 0);
       
   841 		
       
   842 		vaL2 = 67 % vaL2;
       
   843 		CPPUNIT_ASSERT(vaL2 [ 0 ] == 14);
       
   844 		CPPUNIT_ASSERT(vaL2 [ 1 ] == 0);
       
   845 		CPPUNIT_ASSERT(vaL2 [ 2 ] == 14);
       
   846 		}
       
   847 		{
       
   848 		valarray<int> vaL ( 3 ), vaR ( 3 );
       
   849 		valarray<bool> vaLb1(3),vaLb2(3),vaLb3(3);
       
   850 		vaL[0] = 1;vaR[0] = 0;
       
   851 		vaL[1] = 0;vaR[1] = 0;
       
   852 		vaL[2] = 1;vaR[2] = 2;
       
   853 		
       
   854 		vaLb1 = (vaL != vaR);
       
   855 		CPPUNIT_ASSERT(vaLb1 [ 0 ] == true);
       
   856 		CPPUNIT_ASSERT(vaLb1 [ 1 ] == false);
       
   857 		CPPUNIT_ASSERT(vaLb1 [ 2 ] == true);
       
   858 		
       
   859 		vaLb2 = (vaL != 0);
       
   860 		CPPUNIT_ASSERT(vaLb2 [ 0 ] == true);
       
   861 		CPPUNIT_ASSERT(vaLb2 [ 1 ] == false);
       
   862 		CPPUNIT_ASSERT(vaLb2 [ 2 ] == true);
       
   863 		vaLb3 = (1 != vaL);
       
   864 		CPPUNIT_ASSERT(vaLb3 [ 0 ] == false);
       
   865 		CPPUNIT_ASSERT(vaLb3 [ 1 ] == true);
       
   866 		CPPUNIT_ASSERT(vaLb3 [ 2 ] == false);
       
   867 		}
       
   868 	}
       
   869 void ValarrayTest::valarray_cov12()
       
   870 	{
       
   871 		{
       
   872 		valarray<int> vaL ( 4 ), vaL1(4),vaR ( 4 ) , vaR1 ( 4 );
       
   873 
       
   874 		vaL[0] = 0;vaL1[0] = 7;
       
   875 		vaL[1] = 1;vaL1[1] = 6;
       
   876 		vaL[2] = 2;vaL1[2] = 5;
       
   877 		vaL[3] = 3;vaL1[3] = 4;
       
   878 		
       
   879 		vaR = vaL.shift(3);
       
   880 		CPPUNIT_ASSERT(vaR [ 0 ] == 3);
       
   881 		CPPUNIT_ASSERT(vaR [ 1 ] == 0);
       
   882 		CPPUNIT_ASSERT(vaR [ 2 ] == 0);
       
   883 		CPPUNIT_ASSERT(vaR [ 3 ] == 0);
       
   884 		vaR1 = vaL1.shift(-4);
       
   885 		CPPUNIT_ASSERT(vaR1 [ 0 ] == 0);
       
   886 		CPPUNIT_ASSERT(vaR1 [ 1 ] == 0);
       
   887 		CPPUNIT_ASSERT(vaR1 [ 2 ] == 0);
       
   888 		CPPUNIT_ASSERT(vaR1 [ 3 ] == 0);
       
   889 		}
       
   890 	}