Skip to content
Snippets Groups Projects
Commit 1d0674ec authored by Markus Blatt's avatar Markus Blatt
Browse files

Added tests for insertAfter and oneBeforeBegin.

[[Imported from SVN: r1690]]
parent 4535cd39
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,10 @@ public:
: d(b)
{}
DoubleWrapper()
: d()
{}
operator double()
{
return d;
......@@ -46,6 +50,68 @@ void randomizeListFront(Dune::SLList<T,A>& alist){
alist.push_back((range*(rand()/(RAND_MAX+1.0))));
}
int testInsertAfter()
{
typedef Dune::SLList<int,Dune::PoolAllocator<int,8*1024-16> > List;
List alist;
alist.push_back(3);
List::iterator iter=alist.begin();
iter.insertAfter(5);
int ret=0;
if(*iter!=3) {
std::cerr<<"Value at current position changed due to insertAfter"<<std::endl;
ret++;
}
++iter;
if(iter==alist.end() || *iter!=5) {
std::cerr<<"Insertion failed!"<<std::endl;
++ret;
}
iter=alist.oneBeforeBegin();
iter.insertAfter(5);
++iter;
if(iter==alist.end() || *iter!=5) {
std::cerr<<"Insertion failed!"<<std::endl;
++ret;
}
alist.clear();
iter=alist.oneBeforeBegin();
iter.insertAfter(5);
++iter;
if(iter==alist.end() || *iter!=5) {
std::cerr<<"Insertion failed!"<<std::endl;
++ret;
}
return ret;
}
template<typename T>
int testOneBeforeBegin(T& alist)
{
typename T::iterator iterBefore = alist.oneBeforeBegin(),
iter = alist.begin();
typename T::const_iterator citerBefore = alist.oneBeforeBegin();
int ret=0;
++iterBefore;
++citerBefore;
if(iterBefore!=iter || &(*iterBefore) != &(*iter)) {
std::cerr<<"one before iterator incremented once should point to begin()"<<std::endl;
ret++;
}
if(citerBefore!=iter || &(*citerBefore) != &(*iter)) {
std::cerr<<"one before iterator incremented once should point to begin()"<<std::endl;
ret++;
}
return ret;
}
int testPushPop(){
using namespace Dune;
int ret=0;
......@@ -99,6 +165,9 @@ int main()
ret+=testIterator(list);
ret+=testIterator(list1);
ret+=testPushPop();
ret+=testOneBeforeBegin(list1);
ret+=testInsertAfter();
list.clear();
list1.clear();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment