diff options
Diffstat (limited to 'src/usr/testcore/lib/stltest.H')
-rw-r--r-- | src/usr/testcore/lib/stltest.H | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/usr/testcore/lib/stltest.H b/src/usr/testcore/lib/stltest.H index f2bea98c5..ddd2bb46e 100644 --- a/src/usr/testcore/lib/stltest.H +++ b/src/usr/testcore/lib/stltest.H @@ -261,5 +261,38 @@ class STLTest : public CxxTest::TestSuite } } + + void testVector() + { + std::vector<int> v; + v.reserve(100); + + for(int i = 0; i < 100; ++i) + { + v.push_back(i); + } + + std::vector<int>::iterator itr = v.begin(); + std::advance(itr, 50); + if(*itr != 50) + { + TS_FAIL("Vector iterator not pointing at the right value. %d",*itr); + } + + itr = v.erase(itr); + if(v.size() != 99) + { + TS_FAIL("Vector is not correct size after erase. %d",v.size()); + } + if(*itr != 51) + { + TS_FAIL("Vector::erase did not erase the correct element. %d",*itr); + } + itr = v.erase(itr,v.end()); + if(itr != v.end()) + { + TS_FAIL("Vector erase to end not at end()"); + } + } }; #endif |