--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/stdcpp/tsrc/Stdcpp_test/bcdrivers/tstl_3/src/tstl_3blocks.cpp Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,2551 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+
+
+
+// INCLUDE FILES
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include<iostream>
+#include<algorithm>
+#include<vector>
+#include<iostream>
+ #include<ostream>
+#include<iterator>
+#include<numeric>
+#include <queue>
+#include <deque>
+#include <stack>
+#include<list>
+#include <string>
+
+#include<functional>
+
+#include <locale>
+ #include <numeric>
+ #include <valarray>
+ #include<fstream>
+
+#include<list>
+#include<string>
+#include<cstring>
+#include<vector>
+#include<iterator>
+
+#include<ios>
+#include<algorithm>
+#include <numeric>
+#include<functional>
+#include <locale>
+#include<iostream>
+#include<memory>
+#include<complex>
+#include<map>
+//#include<set>
+ #include<exception>
+ // #include<bitset>
+
+#include <stl/char_traits.h> // fpos
+#include "tstl_3.h"
+
+
+using namespace std;
+ #define STDCPP_OOM FALSE// TRUE for OOM testing
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Ctstl_3::Delete
+// Delete here all resources allocated and opened from test methods.
+// Called from destructor.
+// -----------------------------------------------------------------------------
+//
+void Ctstl_3::Delete()
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// Ctstl_3::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt Ctstl_3::RunMethodL(
+ CStifItemParser& aItem )
+ {
+
+ static TStifFunctionInfo const KFunctions[] =
+ {
+ // Copy this line for every implemented function.
+ // First string is the function name used in TestScripter script file.
+ // Second is the actual implementation member function.
+ ENTRY( "Includes", Ctstl_3::Includes ),
+ ENTRY( "innerproduct", Ctstl_3::innerproduct ),
+ ENTRY( "inplacemerge", Ctstl_3::inplacemerge ),
+ ENTRY( "Queue", Ctstl_3::Queue ),
+ ENTRY( "Pqueue", Ctstl_3::Pqueue ),
+ ENTRY( "stablesortL", Ctstl_3::stablesortL ),
+ ENTRY( "Stack", Ctstl_3::Stack ),
+ ENTRY( "string1_testL", Ctstl_3::string1_testL ),
+ ENTRY("Setintersection", Ctstl_3::Setintersection ),
+ ENTRY("Setsymdifference", Ctstl_3::Setsymdifference ),
+ ENTRY("Setunion", Ctstl_3::Setunion ),
+ ENTRY("HeapL", Ctstl_3::HeapL ),
+ ENTRY("Swapranges", Ctstl_3::Swapranges ),
+ ENTRY("Partialsums", Ctstl_3::Partialsums ),
+ ENTRY("Unarynegate", Ctstl_3::Unarynegate ),
+ ENTRY("Not2", Ctstl_3::Not2),
+ ENTRY("GettemporarybufferL", Ctstl_3::GettemporarybufferL),
+ ENTRY("Pair", Ctstl_3::Pair),
+ ENTRY("Lexicographicalcompare", Ctstl_3::Lexicographicalcompare ),
+ ENTRY("Mismatch", Ctstl_3::Mismatch ),
+ ENTRY("Compare_fun", Ctstl_3::Compare_fun ),
+ ENTRY("Copy_fun", Ctstl_3::Copy_fun ),
+ ENTRY("Copybackward_fun", Ctstl_3::Copybackward_fun ),
+ ENTRY("mergeL", Ctstl_3::mergeL ),
+ ENTRY("allocatoradd", Ctstl_3::allocatoradd ),
+ ENTRY("alldeall", Ctstl_3::alldeall ),
+ ENTRY("allcons", Ctstl_3::allcons ),
+ ENTRY("allrebind", Ctstl_3::allrebind ),
+ ENTRY("allmaxsize", Ctstl_3::allmaxsize ),
+
+ };
+
+ const TInt count = sizeof( KFunctions ) /
+ sizeof( TStifFunctionInfo );
+
+ return RunInternalL( KFunctions, count, aItem );
+
+ }
+
+
+// -----------------------------------------------------------------------------
+// Ctstl_3::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+
+bool myfunction (int i, int j) { return i<j; }
+
+
+TInt Ctstl_3::Includes( CStifItemParser& aItem )
+ {
+int failures =0;
+try
+{
+
+
+ int container1[] = {5,10,15,20,25,30,35,40,45,50};
+ int container2[] = {40,30,20,10};
+int container3[]={100,200,300,400,10,20,30,40};
+ sort (container1,container1+10);
+ sort (container2,container2+4);
+sort(container3,container3+8);
+/*
+if(!includes(container1,container1+10,container3,container3+8))
+
+
+ if ( includes(container1,container1+10,container2,container2+4) )
+
+ if ( includes(container1,container1+10,container2,container2+4, myfunction) )
+
+ return KErrNone;
+ return KErrGeneral;
+*/
+ // cout<<"";
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+
+if(includes(container1,container1+10,container3,container3+8))
+failures++;
+
+
+ if ( !includes(container1,container1+10,container2,container2+4) )
+ failures++;
+
+ if ( !includes(container1,container1+10,container2,container2+4, myfunction) )
+ failures++;
+
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+// #if STDCPP_OOM
+//failures++;
+// #endif
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+ // vector<int> myvector (8,10);
+
+// -----------------------------------------------------------------------------
+// Ctstl_3::innerproduct
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctstl_3::innerproduct( CStifItemParser& aItem )
+ {
+
+ int failures=0;
+ try
+ {
+
+
+typedef vector < int > intArray;
+typedef ostream_iterator < int, char, char_traits<char> >
+FloatOstreamIt;
+
+
+
+ FloatOstreamIt itOstream(cout," ");
+
+ // Initialize the arrays
+ intArray rgF1, rgF2;
+ for (int i=1; i<=5; i++) {
+ rgF1.push_back(i);
+ rgF2.push_back(i*i);
+ };
+
+ // Print the arrays
+
+ copy(rgF1.begin(),rgF1.end(),itOstream);
+
+ copy(rgF2.begin(),rgF2.end(),itOstream);
+ // cout<<"";
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ // Compute the inner_product of the arrays. This is the
+ // sum of the products (S.O.P) of the corresponding elements
+
+ int ip1 = inner_product(rgF1.begin(),rgF1.end(),rgF2.begin(),0);
+
+
+
+
+ int ip2 = inner_product(rgF1.begin(),rgF1.end(),rgF2.begin(),1,multiplies<int>(),plus<int>());
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+/* if(ip1==225)
+if(ip2==86400)
+return KErrNone;
+return KErrGeneral;*/
+
+ // Compute the inner_product of the arrays. This is the
+ // product of the sums (P.O.S.) of the corresponding elements
+
+ if(ip1!=225)
+ failures++;
+if(ip2!=86400)
+failures++;
+
+ //#if STDCPP_OOM
+//failures++;
+// #endif
+ }
+
+
+catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+ // -----------------------------------------------------------------------------
+// Ctstl_3::inplacemerge
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctstl_3::inplacemerge( CStifItemParser& aItem )
+ {
+int failures=0;
+try
+{
+
+
+ int first[] = {5,10,15,20,25};
+ int second[] = {50,40,30,20,10};
+ vector<int> v(10);
+ vector<int>::iterator it;
+int a[10];
+ sort (first,first+5);
+ sort (second,second+5);
+
+ copy (first,first+5,v.begin());
+ copy (second,second+5,v.begin()+5);
+ // cout<<"";
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ inplace_merge(v.begin(),v.begin()+5,v.end());
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ for (it=v.begin(); it!=v.end(); ++it)
+ {
+ static int i;
+ a[i]=*it;
+ i++;
+ }
+ /*
+ if(a[0]==5)
+ if(a[1]==10)
+ if(a[2]==10)
+ if(a[3]==15)
+ if(a[4]==20)
+ if(a[5]==20)
+ if(a[6]==25)
+ if(a[7]==30)
+ if(a[8]==40)
+ if(a[9]==50)
+ return KErrNone;
+ return KErrGeneral;
+ */
+
+ if(a[0]!=5)
+ if(a[1]!=10)
+ if(a[2]!=10)
+ if(a[3]!=15)
+ if(a[4]!=20)
+ if(a[5]!=20)
+ if(a[6]!=25)
+ if(a[7]!=30)
+ if(a[8]!=40)
+ if(a[9]!=50)
+ failures++;
+ //#if STDCPP_OOM
+//failures++;
+// #endif
+ }
+
+catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+// -----------------------------------------------------------------------------
+// Ctstl_3::Queue
+// Queue test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctstl_3::Queue( CStifItemParser& aItem )
+ {
+
+ int failures=0;
+ try
+ {
+
+
+ int arr[3];
+ // cout<<"";
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ queue<int,list<int> > q;
+
+
+ q.push(1);
+ arr[0]=q.back();
+ if(q.size()!=1)
+ failures++;
+ if(q.back()!=1)
+ failures++;
+ if(arr[0]!=1)
+ failures++;
+
+
+
+ q.push(2);
+ arr[1]=q.back();
+ if(q.size()!=2)
+ failures++;
+ if(q.back()!=2)
+ failures++;
+ if(arr[1]!=2)
+ failures++;
+
+
+
+ q.push(3);
+ arr[2]=q.back();
+ if(q.size()!=3)
+ failures++;
+ if(q.back()!=3)
+ failures++;
+ if(arr[2]!=3)
+ failures++;
+
+
+ q.pop();
+ if(q.size()!=2)
+ failures++;
+ if(q.back()!=3)
+ failures++;
+ if(q.front()!=2)
+ failures++;
+
+ q.pop();
+ q.pop();
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ if(!q.empty())
+ failures++;
+
+ /*
+ if(failures)
+ return KErrGeneral;
+ return KErrNone;
+ */
+
+
+ //#if STDCPP_OOM
+//failures++;
+// #endif
+
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// Ctstl_3::PQueue
+// PQueue test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+
+TInt Ctstl_3::Pqueue( CStifItemParser& aItem )
+ {
+
+ int failures=0;
+
+ try
+ {
+
+
+ int arr[3];
+
+ typedef deque<int> d;
+ // cout<<"";
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ priority_queue<int, d, less<int> > q;
+
+
+
+ q.push(1);
+ arr[0]=q.top();
+ if(q.size()!=1)
+ failures++;
+ if(q.top()!=1)
+ failures++;
+ if(arr[0]!=1)
+ failures++;
+
+
+
+ q.push(2);
+ arr[1]=q.top();
+ if(q.size()!=2)
+ failures++;
+ if(q.top()!=2)
+ failures++;
+ if(arr[1]!=2)
+ failures++;
+
+
+
+ q.push(3);
+ arr[2]=q.top();
+ if(q.size()!=3)
+ failures++;
+ if(q.top()!=3)
+ failures++;
+ if(arr[2]!=3)
+ failures++;
+
+
+ q.pop();
+ if(q.size()!=2)
+ failures++;
+
+ if(q.top()!=2)
+ failures++;
+
+ q.pop();
+ q.pop();
+
+ if(!q.empty())
+ failures++;
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ /*
+ if(failures)
+ return KErrGeneral;
+ return KErrNone;
+
+ */
+ //#if STDCPP_OOM
+//failures++;
+// #endif
+
+
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+ // -----------------------------------------------------------------------------
+// Ctstl_3::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+
+
+bool UDgreater (int elem1, int elem2 )
+{
+ return elem1 > elem2;
+}
+
+
+TInt Ctstl_3::stablesortL( CStifItemParser& aItem )
+ {
+int failures=0;
+try
+{
+
+
+ vector <int> v1;
+ vector <int>::iterator Iter1;
+
+ int i,a1[12],a2[12],a3[12];
+ for ( i = 0 ; i <= 5 ; i++ )
+ {
+ v1.push_back( 2 * i );
+ }
+
+ for ( i = 0 ; i <= 5 ; i++ )
+ {
+ v1.push_back( 2 * i );
+ }
+
+ // cout<<"";
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ stable_sort(v1.begin( ), v1.end( ) );
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+
+ for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
+
+ {
+ static int i;
+ a1[i] = *Iter1;
+ i++;
+ }
+
+
+
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ // To sort in descending order, specify binary predicate
+ stable_sort(v1.begin( ), v1.end( ), greater<int>( ) );
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
+ {
+ static int i;
+ a2[i]=*Iter1;
+ i++;
+ }
+
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ // A user-defined (UD) binary predicate can also be used
+ stable_sort(v1.begin( ), v1.end( ), UDgreater );
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
+
+
+ {
+ static int i;
+ a3[i]=*Iter1;
+ i++;
+ }
+
+
+ /*
+ if(a1[0]==0)
+ if(a1[1]==0)
+ if(a1[2]==2)
+ if(a1[3]==2)
+ if(a1[4]==4)
+ if(a1[5]==4)
+ if(a1[6]==6)
+ if(a1[7]==6)
+ if(a1[8]==8)
+ if(a1[9]==8)
+ if(a1[10]==10)
+ if(a1[11]==10)
+ if(a2[0]==a3[0]==10)
+ if(a2[1]==a3[1]==10)
+ if(a2[2]==a3[2]==8)
+ if(a2[3]==a3[3]==8)
+ if(a2[4]==a3[4]==6)
+ if(a2[5]==a3[5]==6)
+ if(a2[6]==a3[6]==4)
+ if(a2[7]==a3[7]==4)
+ if(a2[8]==a3[8]==2)
+ if(a2[9]==a3[9]==2)
+ if(a2[10]==0)
+ if(a3[10]==0)
+ if(a2[11]==0 )
+ if(a3[11]==0)
+ return KErrNone;
+ return KErrGeneral;
+ */
+
+
+ if(a1[0]!=0)
+ if(a1[1]!=0)
+ if(a1[2]!=2)
+ if(a1[3]!=2)
+ if(a1[4]!=4)
+ if(a1[5]!=4)
+ if(a1[6]!=6)
+ if(a1[7]!=6)
+ if(a1[8]!=8)
+ if(a1[9]!=8)
+ if(a1[10]!=10)
+ if(a1[11]!=10)
+ if(a2[0]!=a3[0]!=10)
+ if(a2[1]!=a3[1]!=10)
+ failures++;
+
+ //#if STDCPP_OOM
+//failures++;
+// #endif
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// Ctstl_3::ExampleL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctstl_3::Stack( CStifItemParser& aItem )
+ {
+
+
+//__UHEAP_MARK;
+ int failures=0,i=0;
+ try
+ {
+
+ int arr[3];
+ // cout<<"";
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ stack<int, deque<int> > s;
+
+
+ s.push(1);
+ if(s.size()!=1)
+ failures++;
+ arr[0] = s.top();
+
+ s.push(2);
+ if(s.size()!=2)
+ failures++;
+ arr[1] = s.top();
+
+ s.push(3);
+ if(s.size()!=3)
+ failures++;
+ arr[2] = s.top();
+
+
+ s.pop();
+
+ if(s.size()!=2)
+ failures++;
+ if(s.top()!=2)
+ failures++;
+
+
+
+
+
+
+
+ if(1!=arr[0])
+ failures++;
+ if(2!=arr[1])
+ failures++;
+
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ /*
+ if(failures)
+
+ return KErrGeneral;
+ return KErrNone;
+ */
+ //__UHEAP_MARKEND;
+
+ //#if STDCPP_OOM
+//failures++;
+// #endif
+ }
+
+
+catch(std::bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// Ctstl_3::string1_testL
+// Example test method function.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt Ctstl_3::string1_testL( CStifItemParser& /*aItem*/ )
+ {
+
+
+//__UHEAP_MARK;
+ int failures=0;
+ try
+ {
+
+
+ char* array = "Hello, World!";
+ // cout<<"";
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ std::string v(array);
+ int i;
+
+ if(v.compare("Hello, World!"))
+ failures++;
+
+ v.erase(v.begin() + 1, v.end() - 1); // Erase all but first and last.
+ for(i = 0; i < v.size(); i++)
+
+ if('H'!=v[0])
+ failures++;
+ else if('!'!=v[1])
+ failures++;
+
+
+ v.insert(1, (char*)array);
+ v.erase(v.begin()); // Erase first element.
+ v.erase(v.end() - 1); // Erase last element.
+ if(v.compare("Hello, World!"))
+ failures++;
+ v.clear(); // Erase all.
+
+ #if STDCPP_OOM
+User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ /*
+ if(failures)
+ return KErrGeneral;
+ else
+ return KErrNone;
+ */
+ //#if STDCPP_OOM
+//failures++;
+// #endif
+
+ // __UHEAP_MARKEND;
+
+ }
+
+
+catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+string func( const string& par )
+{
+ string tmp( par );
+
+ return tmp;
+}
+
+
+//#if defined (_STLP_PTHREADS)
+void *f( void * )
+//#elif defined (_STLP_WIN32THREADS)
+//DWORD __stdcall f (void *)
+//#endif
+{
+ string s( "qyweyuewunfkHBUKGYUGL,wehbYGUW^(@T@H!BALWD:h^&@#*@(#:JKHWJ:CND" );
+
+ for ( int i = 0; i < 2000000; ++i ) {
+ string sx = func( s );
+ }
+
+ return KErrNone;
+}
+
+
+
+
+
+ TInt Ctstl_3::Setintersection(CStifItemParser& aItem)
+ {
+ int failures=0;
+ try{
+ //__UHEAP_MARK;
+
+ int first[] = {5,10,15,20,25};
+ int second[] = {50,40,30,20,10};
+ int output[10];
+ vector<int> v(10); // 0 0 0 0 0 0 0 0 0 0
+ vector<int>::iterator it;
+
+ sort (first,first+5); // 5 10 15 20 25
+ sort (second,second+5); // 10 20 30 40 50
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ it=set_intersection (first, first+5, second, second+5, v.begin());
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif // 10 20 0 0 0 0 0 0 0 0
+
+ for(it=v.begin();it!=v.end();++it)
+ {
+
+ static int i;
+ output[i] = *it;
+ i++;
+
+ }
+ /*
+ if(output[0]==10)
+ if(output[1]==20)
+ if(output[2]==0)
+ return KErrNone;
+ return KErrGeneral;
+
+ */
+
+ if(output[0]!=10)
+ failures++;
+ if(output[1]!=20)
+ failures++;
+ if(output[2]!=0)
+ failures++;
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+
+ TInt Ctstl_3::Setsymdifference(CStifItemParser& aItem)
+ {int failures=0;
+ try{
+
+ //__UHEAP_MARK;
+
+ int first[] = {5,10,15,20,25};
+ int second[] = {50,40,30,20,10};
+ int output[10];
+ vector<int> v(10); // 0 0 0 0 0 0 0 0 0 0
+ vector<int>::iterator it;
+
+ sort (first,first+5); // 5 10 15 20 25
+ sort (second,second+5); // 10 20 30 40 50
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ it=set_symmetric_difference(first, first+5, second, second+5, v.begin());
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ for(it=v.begin();it!=v.end();++it)
+ {
+
+ static int i;
+ output[i] = *it;
+ i++;
+
+ }
+
+
+ /*
+ if(output[0]==5)
+ if(output[1]==15)
+ if(output[2]==25)
+ if(output[3]==30)
+ if(output[4]==40)
+ if(output[5]==50)
+ return KErrNone;
+ return KErrGeneral;
+ */// __UHEAP_MARKEND;
+
+
+ if(output[0]!=5)
+ failures++;
+ if(output[1]!=15)
+ failures++;
+ if(output[2]!=25)
+ failures++;
+ if(output[3]!=30)
+ failures++;
+ if(output[4]!=40)
+ failures++;
+ if(output[5]!=50)
+ failures++;
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+ TInt Ctstl_3::Setunion(CStifItemParser& aItem)
+ {
+ int failures=0;
+
+ //__UHEAP_MARK;
+ try{
+ int first[] = {5,10,15,20,25};
+ int second[] = {50,40,30,20,10};
+ int output[10];
+ vector<int> v(10); // 0 0 0 0 0 0 0 0 0 0
+ vector<int>::iterator it;
+
+ sort (first,first+5); // 5 10 15 20 25
+ sort (second,second+5); // 10 20 30 40 50
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ it=set_union(first, first+5, second, second+5, v.begin());
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ for(it=v.begin();it!=v.end();++it)
+ {
+
+ static int i;
+ output[i] = *it;
+ i++;
+
+ }/*
+ if(output[0]==5)
+ if(output[1]==10)
+ if(output[2]==15)
+ if(output[3]==20)
+ if(output[4]==25)
+ if(output[5]==30)
+ if(output[6]==40)
+ if(output[7]==50)
+ return KErrNone;
+ return KErrGeneral;*/
+ //__UHEAP_MARKEND;
+
+ if(output[0]!=5)
+ failures++;
+
+ if(output[1]!=10)
+ failures++;
+
+ if(output[2]!=15)
+ failures++;
+ if(output[3]!=20)
+ failures++;
+ if(output[4]!=25)
+ failures++;
+ if(output[5]!=30)
+ failures++;
+ if(output[6]!=40)
+ failures++;
+ if(output[7]!=50)
+ failures++;
+
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+ }
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+ TInt Ctstl_3::HeapL(CStifItemParser& aItem)
+ {
+
+
+ //__UHEAP_MARK;
+
+
+ int failures=0;
+ try{
+ int myints[] = {10,20,30,5,15};
+
+ vector<int> v(myints,myints+5);
+
+ // vector<int>::iterator it;
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ make_heap(v.begin(),v.end()); //make_heap
+
+ if(v.front()!=30)
+ failures++;
+
+ pop_heap(v.begin(),v.end()); //pop_heap
+ v.pop_back(); //pop_back
+
+
+ if(v.front()!=20)
+ failures++;
+
+ v.push_back(99); //push_back
+
+
+ push_heap(v.begin(),v.end()); //push heap
+
+ if(v.front()!=99)
+ failures++;
+
+
+ sort_heap(v.begin(),v.end()); //sort_heap
+
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ if(v[0]!=5)
+ failures++;
+ if(v[1]!=10)
+ failures++;
+ if(v[2]!=15)
+ failures++;
+ if(v[3]!=20)
+ failures++;
+ if(v[4]!=99)
+ failures++;
+
+
+ /*
+ if(failures)
+ return KErrGeneral;
+ return KErrNone;
+ */
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+ //__UHEAP_MARKEND;
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+ TInt Ctstl_3::Swapranges(CStifItemParser& aItem)
+ {
+ int failures=0;
+ // __UHEAP_MARK;
+ try{
+
+ vector<int> first (5,10); // first: 10 10 10 10 10
+ vector<int> second (5,33); // second: 33 33 33 33 33
+ vector<int>::iterator it;
+ int output[5];
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ swap_ranges(first.begin()+1, first.end()-1, second.begin());
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+
+
+ // print out results of swap:
+ for (it=first.begin(); it!=first.end(); ++it)
+
+
+ {
+ static int i;
+ output[i] = *it;
+ i++;
+ }
+
+
+ /*
+ if(output[0]==10)
+ if(output[1]==33)
+ if(output[2]==33)
+ if(output[3]==33)
+ if(output[4]==10)
+ return KErrNone;
+ return KErrGeneral;
+ */
+ if(output[0]!=10)
+ failures++;
+ if(output[1]!=33)
+ failures++;
+ if(output[2]!=33)
+ failures++;
+
+ if(output[3]!=33)
+ failures++;
+ if(output[4]!=10)
+ failures++;
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+ //__UHEAP_MARKEND;
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+ TInt Ctstl_3::Partialsums(CStifItemParser& aItem)
+ {
+ int failures=0;
+ //__UHEAP_MARK;
+ try{
+
+ vector<int> V1( 10 ), V2( 10 );
+ vector<int>::iterator VIter1, VIterend;
+
+ int sum =1;
+ int i=2 ;
+ list <int> L1;
+ list <int>::iterator LIter1, LIterend;
+
+ int t;
+ for ( t = 1 ; t <= 10 ; t++ )
+ {
+ L1.push_back( t );
+ }
+
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ // The first member function for the partial sums of
+ // elements in a list output to a vector
+ VIterend = partial_sum ( L1.begin ( ) , L1.end ( ) ,
+ V1.begin ( ) );
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ for ( VIter1 = V1.begin( ) ; VIter1 != VIterend ; VIter1++ )
+
+ {
+
+ if(sum!=*VIter1)
+ failures++;
+ sum = sum+i;
+ i++;
+
+ }
+
+ /*
+ if(failures)
+ return KErrGeneral;
+ return KErrNone;
+ */
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+ //__UHEAP_MARKEND;
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+ TInt Ctstl_3::Unarynegate(CStifItemParser& aItem)
+ {
+ int failures=0;
+ // __UHEAP_MARK;
+ try{
+ vector <int> v1;
+
+ //vector <int>::iterator Iter;
+
+ int i;
+ for ( i = 0 ; i <= 7 ; i++ )
+ {
+ v1.push_back( 5 * i );
+ }
+
+
+
+ int result2;
+ int result3;
+ // Use the negator to count the elements less than or equal to 10
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ result2 = count_if( v1.begin( ), v1.end( ),unary_negate<binder2nd <greater<int> > >( bind2nd( greater<int>( ),10 ) ) );
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ result3 = count_if( v1.begin( ), v1.end( ),not1(bind2nd( greater<int>( ), 10) ) );
+
+
+
+ /*
+ if(result2 == 3)
+ if(result3 == 3)
+ return KErrNone;
+ return KErrGeneral;
+ */
+ if(result2 != 3)
+ failures++;
+ if(result3 != 3)
+ failures++;
+
+
+ //__UHEAP_MARKEND;
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+ TInt Ctstl_3::Not2(CStifItemParser& aItem)
+ {
+ int failures=0;
+ //__UHEAP_MARK;
+ try{
+ vector <int> v1;
+ vector <int>::iterator Iter1;
+ int output[7];
+ //int i;
+ v1.push_back( 6262 );
+ v1.push_back( 6262 );
+ v1.push_back( 18467 );
+ v1.push_back( 6334 );
+ v1.push_back( 26500 );
+ v1.push_back( 19169);
+ v1.push_back(41);
+
+
+
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+
+ // To sort in descending order,
+ // use the binary_negate helper function not2
+ sort( v1.begin( ), v1.end( ), not2(less<int>( ) ) );
+
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+
+ for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
+ {
+ static int i;
+ output[i] = *Iter1;
+ i++;
+ }
+
+ /*
+ if(output[0]==26500)
+ if(output[1]==19169)
+ if(output[2]== 18467)
+ if(output[3]== 6334)
+ if(output[4]== 6262)
+ if(output[5]== 6262)
+ if(output[6]== 41)
+
+ return KErrNone;
+ return KErrGeneral;
+ */
+
+
+ if(output[0]!=26500)
+ failures++;
+ if(output[1]!=19169)
+ failures++;
+ if(output[2]!= 18467)
+ failures++;
+ if(output[3]!= 6334)
+ failures++;
+ if(output[4]!= 6262)
+ failures++;
+ if(output[5]!= 6262)
+ failures++;
+ if(output[6]!= 41)
+ failures++;
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+ //__UHEAP_MARKEND;
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+ TInt Ctstl_3::GettemporarybufferL(CStifItemParser& aItem)
+ {
+ int failures=0;
+ //__UHEAP_MARK;
+ try{
+ // Create an array of ints
+ int intArray [ ] = { 10, 20, 30, 40, 100, 200, 300, 1000, 2000 };
+ int count = sizeof ( intArray ) / sizeof ( int );
+
+
+ pair<int *, ptrdiff_t> resultPair;
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ resultPair = get_temporary_buffer<int>( count );
+ #if STDCPP_M
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+
+ int* tempBuffer = resultPair.first;
+
+ return_temporary_buffer(tempBuffer);
+ /*
+ if(count==9)
+ if(resultPair.second == 9)
+ return KErrNone;
+ return KErrGeneral;
+ */
+ if(count!=9)
+ failures++;
+ #if STDCPP_OOM
+ if(resultPair.second!=0)
+ #else
+ if(resultPair.second!=9)
+ #endif
+ failures++;
+
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+ // __UHEAP_MARKEND;
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+
+ TInt Ctstl_3::Pair(CStifItemParser& aItem)
+ {
+
+ //__UHEAP_MARK;
+
+ int failures=0;
+ try{
+
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ typedef struct pair<int, float> PAIR_IF;
+
+ PAIR_IF A(10,3.14f);
+ PAIR_IF B(18,3.14f);
+ PAIR_IF C(10,6.28f);
+ PAIR_IF D(10,3.14f);
+
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+
+ if (A==D)
+
+ if (B!=C)
+
+ if (A>C)
+ failures++;
+
+
+ if (A>=C)
+ failures++;
+
+
+ /*
+ if(failures)
+ return KErrGeneral;
+ return KErrNone;
+ */
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+
+ //__UHEAP_MARKEND;
+
+ }
+
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+ bool twice ( int elem1, int elem2 )
+ {
+ return 2 * elem1 < elem2;
+ }
+
+
+ TInt Ctstl_3::Lexicographicalcompare(CStifItemParser& aItem)
+ {
+
+ //__UHEAP_MARK;
+
+
+
+
+ int failures=0;
+
+ try
+ {
+
+ vector <int> v1, v2;
+ list <int> L1;
+ vector <int>::iterator Iter1, Iter2;
+ list <int>::iterator L1_Iter, L1_inIter;
+
+ int i;
+ for ( i = 0 ; i <= 5 ; i++ )
+ {
+ v1.push_back( 5 * i );
+ }
+ int ii;
+ for ( ii = 0 ; ii <= 6 ; ii++ )
+ {
+ L1.push_back( 5 * ii );
+ }
+
+ int iii;
+ for ( iii = 0 ; iii <= 5 ; iii++ )
+ {
+ v2.push_back( 10 * iii );
+ }
+
+
+ // Self lexicographical_comparison of v1 under identity
+ bool result1;
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+
+ result1 = lexicographical_compare (v1.begin( ), v1.end( ), v1.begin( ), v1.end( ) );
+
+
+
+ // lexicographical_comparison of v1 and L2 under identity
+ bool result2;
+ result2 = lexicographical_compare (v1.begin( ), v1.end( ), L1.begin( ), L1.end( ) );
+
+
+
+ bool result3;
+ result3 = lexicographical_compare (v1.begin( ), v1.end( ), v2.begin( ), v2.end( ), twice );
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ /*
+ if (!result1)
+ if ( result2 )
+ if (!result3 )
+
+ return KErrNone;
+ return KErrGeneral;
+
+ */
+
+ if(result1)
+ failures++;
+ if(!result2)
+ failures++;
+ if(result3)
+ failures++;
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+ // __UHEAP_MARKEND;
+
+ }
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+ //Mismatch
+
+ bool mypredicate (int i, int j) {
+ return (i==j);
+ }
+
+
+
+ TInt Ctstl_3::Mismatch(CStifItemParser& aItem)
+ {
+
+ // __UHEAP_MARK;
+
+
+ int failures=0;
+ try{
+
+ vector<int> myvector;
+ for (int i=1; i<6; i++) myvector.push_back (i*10); // myvector: 10 20 30 40 50
+
+ int myints[] = {10,20,80,320,1024}; // myints: 10 20 80 320 1024
+
+ pair<vector<int>::iterator,int*> mypair;
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ // using default comparison:
+ mypair = mismatch (myvector.begin(), myvector.end(), myints);
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ if(*mypair.first != 30)
+ failures++;
+
+ if(*mypair.second != 80)
+ failures++;
+
+
+ mypair.first++;
+ mypair.second++;
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ // using predicate comparison:
+ mypair = mismatch (mypair.first, myvector.end(), mypair.second, mypredicate);
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ if(*mypair.first != 40)
+ failures++;
+ if(*mypair.second != 320)
+ failures++;
+ /*
+ if(failures)
+ return KErrGeneral;
+ return KErrNone;
+ */
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+ // __UHEAP_MARKEND;
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+ TInt Ctstl_3::Compare_fun(CStifItemParser& aItem)
+
+ {
+ int failures=0;
+ //__UHEAP_MARK;
+ try
+ {
+
+
+ string str1 ("green apple");
+ string str2 ("red apple");
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ if (str1.compare("str2") == 0)
+ failures++;
+
+ if (str1.compare(6,5,"apple") != 0)
+ failures++;
+
+ if (str2.compare(str2.size()-5,5,"apple") != 0)
+
+ failures++;
+
+
+ if (str1.compare(6,5,str2,4,5) != 0)
+ failures++;
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ /*
+ if(failures)
+
+ return KErrGeneral;
+ return KErrNone;
+ */
+ //__UHEAP_MARKEND;
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+ TInt Ctstl_3::Copy_fun(CStifItemParser& aItem)
+
+ {
+ int failures=0;
+ // __UHEAP_MARK;
+ try
+ {
+ int myints[]={10,20,30,40,50,60,70};
+ vector<int> myvector;
+ vector<int>::iterator it;
+ int a[7];
+
+ myvector.resize(7);
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ copy ( myints, myints+7, myvector.begin() );
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ for (it=myvector.begin(); it!=myvector.end(); ++it)
+ {
+ static int i;
+ a[i] = *it;
+ i++;
+ }
+ /*
+ if(a[0]==10)
+ if(a[1]==20)
+ if(a[2]==30)
+ if(a[3]==40)
+ if(a[4]==50)
+ if(a[5]==60)
+ if(a[6]==70)
+ return KErrNone;
+ return KErrGeneral;*/
+
+ if(a[0]!=10)
+ failures++;
+ if(a[1]!=20)
+ failures++;
+
+ if(a[2]!=30)
+ failures++;
+ if(a[3]!=40)
+ failures++;
+ if(a[4]!=50)
+ failures++;
+ if(a[5]!=60)
+ failures++;
+ if(a[6]!=70)
+ failures++;
+
+
+ //__UHEAP_MARKEND;
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+ }
+
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+ TInt Ctstl_3::Copybackward_fun(CStifItemParser& aItem)
+
+ {
+
+ int failures=0;
+
+ //__UHEAP_MARK;
+ try{
+
+ vector<int> myvector;
+ vector<int>::iterator it;
+ int a[11];
+ // set some values:
+ for (int i=1; i<=5; i++)
+ myvector.push_back(i*10); // myvector: 10 20 30 40 50
+
+ myvector.resize(myvector.size()+6); // allocate space for 6 more elements
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ copy_backward ( myvector.begin(), myvector.begin()+5, myvector.end() );
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+
+ for (it=myvector.begin(); it!=myvector.end(); ++it)
+ {
+ static int i;
+ a[i] = *it;
+ i++;
+ }
+ /*
+ if(a[0]==10)
+ if(a[1]==20)
+ if(a[2]==30)
+ if(a[3]==40)
+ if(a[4]==50)
+
+ if(a[6]==10)
+ if(a[7]==20)
+ if(a[8]==30)
+ if(a[9]==40)
+ if(a[10]==50)
+
+ return KErrNone;
+ else
+
+ return KErrGeneral;
+ */
+ // __UHEAP_MARKEND;
+
+ if(a[0]!=10)
+ failures++;
+
+ if(a[1]!=20)
+ failures++;
+ if(a[2]!=30)
+ failures++;
+ if(a[3]!=40)
+ failures++;
+ if(a[4]!=50)
+ failures++;
+
+ if(a[6]!=10)
+ failures++;
+ if(a[7]!=20)
+ failures++;
+ if(a[8]!=30)
+ failures++;
+ if(a[9]!=40)
+ failures++;
+ if(a[10]!=50)
+ failures++;
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+ TInt Ctstl_3::mergeL(CStifItemParser& aItem)
+
+ {
+ int failures=0;
+ try
+ {
+ int a[4];
+
+ list <int> c1, c2;
+ list <int>::iterator c2_Iter ;
+
+ // __UHEAP_MARK;
+
+
+
+
+
+ c1.push_back( 3 );
+ c1.push_back( 6 );
+ c2.push_back( 2 );
+ c2.push_back( 4 );
+
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+
+ c2.merge( c1 ); // Merge c1 into c2 in (default) ascending order
+
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ c2.sort( greater<int>( ) );
+ for ( c2_Iter = c2.begin( ); c2_Iter != c2.end( ); c2_Iter++ )
+
+ {
+ static int i;
+ a[i]= *c2_Iter;
+ i++;
+ }
+
+ // __UHEAP_MARKEND;
+
+ /* if(a[0]==6)
+ if(a[1]==4)
+ if(a[2]==3)
+ if(a[3]==2)
+
+
+
+ return KErrNone;
+
+ return KErrGeneral;
+ */
+
+
+ if(a[0]!=6)
+
+ failures++;
+
+ if(a[1]!=4)
+ failures++;
+ if(a[2]!=3)
+ failures++;
+ if(a[3]!=2)
+ failures++;
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+ TInt Ctstl_3::allocatoradd(CStifItemParser& aItem)
+
+ {
+ int failures = 0;
+
+ // __UHEAP_MARK;
+ try{
+ vector <int> v1;
+ vector <int>::iterator v1Iter;
+ vector <int>:: allocator_type v1Alloc;
+
+ int i;
+ for ( i = 1 ; i <= 7 ; i++ )
+ {
+ v1.push_back( 2 * i );
+ }
+
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+
+ allocator<int>::const_pointer v1Ptr;
+
+
+ const int k = 8;
+ v1Ptr = v1Alloc.address( k );
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+
+ /*
+ if( *v1Ptr == 8)
+ // __UHEAP_MARKEND;
+
+ return KErrNone;
+
+ return KErrGeneral;
+ */
+
+
+ if(*v1Ptr!=8)
+ failures++;
+
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+ TInt Ctstl_3::alldeall(CStifItemParser& aItem)
+
+
+ {
+
+ //__UHEAP_MARK;
+
+ int failures =0;
+
+ try{
+
+
+ allocator<int> v1Alloc;
+
+ allocator<int>::pointer aPtr;
+
+ aPtr = v1Alloc.allocate ( 5 );
+
+ int i;
+ for ( i = 0 ; i < 5 ; i++ )
+ {
+ aPtr[ i ] = i;
+ }
+
+ if(aPtr[0] != 0)
+ failures++;
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ v1Alloc.deallocate( aPtr, 5 );
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+
+ if(aPtr[0] == 0)
+ failures++;
+
+
+ //__UHEAP_MARKEND;
+ /*
+ if (failures)
+ return KErrGeneral;
+ else
+ return KErrNone;
+
+ */
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+ TInt Ctstl_3::allcons(CStifItemParser& aItem)
+ {
+
+
+ // __UHEAP_MARK;
+
+ int output[7],failures = 0;
+ try{
+ vector <int> v1;
+ vector <int>::iterator v1Iter;
+ vector <int>:: allocator_type v1Alloc;
+
+ int i;
+ for ( i = 1 ; i <= 7 ; i++ )
+ {
+ v1.push_back( 3 * i );
+ }
+
+ for ( v1Iter = v1.begin( ) ; v1Iter != v1.end( ) ; v1Iter++ )
+
+ {
+ static int i;
+ output[i] = *v1Iter;
+ i++;
+
+ }
+
+
+ if(output[1] != 6)
+ failures++;
+
+
+ allocator<int>::pointer v1PtrA;
+ int kA = 6, kB = 7;
+ v1PtrA = v1Alloc.address( *find( v1.begin( ), v1.end( ), kA ) );
+ v1Alloc.destroy ( v1PtrA );
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ v1Alloc.construct ( v1PtrA , kB );
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ for ( v1Iter = v1.begin( ) ; v1Iter != v1.end( ) ; v1Iter++ )
+
+ {
+ static int i;
+ output[i] = *v1Iter;
+ i++;
+
+ }
+
+ if(output[1] != 7)
+ failures++;
+
+
+ // __UHEAP_MARKEND;
+
+ /* if(failures)
+ return KErrGeneral;
+ return KErrNone;
+ */
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+
+
+
+
+ }
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+ TInt Ctstl_3::allrebind(CStifItemParser& aItem)
+ {
+
+
+
+
+ // __UHEAP_MARK;
+ int failures =0;
+ try{
+
+ typedef vector<int>::allocator_type IntAlloc;
+
+ IntAlloc v1Iter;
+ vector<int> v1;
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ IntAlloc::rebind<char>::other::pointer pszC = IntAlloc::rebind<char>::other(v1.get_allocator()).allocate(1, (void *)0);
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ int * pInt = v1Iter.allocate(10);
+
+
+
+ // __UHEAP_MARKEND;
+
+ /* if(failures)
+ return KErrGeneral;
+ return KErrNone;
+ */
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+ }
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+ TInt Ctstl_3::allmaxsize(CStifItemParser& aItem)
+
+ {int failures=0;
+
+
+ try{
+ vector <int> v1;
+ vector <int>::iterator v1Iter;
+ vector <int>:: allocator_type v1Alloc;
+
+
+
+
+ allocator<int>::size_type v1size;
+ // cout<<"";
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::EDeterministic,1);
+ #endif
+ v1size = v1Alloc.max_size( );
+ #if STDCPP_OOM
+ User::__DbgSetAllocFail(FALSE,RHeap::ENone,1);
+ #endif
+ /*if(v1size == 1073741823)
+ return KErrNone;
+ else
+ return KErrGeneral;*/
+
+
+ if(v1size != 1073741823)
+ failures++;
+
+
+ //#if STDCPP_OOM
+ //failures++;
+ // #endif
+
+ }
+
+
+ catch(bad_alloc&)
+ {
+ //do nothing
+ }
+ catch(...)
+ {
+ failures++;
+
+ }
+
+ if(failures )
+ return KErrGeneral;
+ return KErrNone;
+ }
+
+
+
+
+// -----------------------------------------------------------------------------
+// Ctstl_3::?member_function
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+/*
+TInt Ctstl_3::?member_function(
+ CItemParser& aItem )
+ {
+
+ ?code
+
+ }
+*/
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+// End of File
+
+// End of File