diff options
Diffstat (limited to 'test/unit/multiset_test.cpp')
-rw-r--r-- | test/unit/multiset_test.cpp | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/test/unit/multiset_test.cpp b/test/unit/multiset_test.cpp deleted file mode 100644 index 3e30917..0000000 --- a/test/unit/multiset_test.cpp +++ /dev/null @@ -1,127 +0,0 @@ -#include <set> -#include <functional> - -#include "cppunit/cppunit_proxy.h" - -#if !defined (STLPORT) || defined(_STLP_USE_NAMESPACES) -using namespace std; -#endif - -// -// TestCase class -// -class MultisetTest : public CPPUNIT_NS::TestCase -{ - typedef multiset<int, less<int> > mset; - - CPPUNIT_TEST_SUITE(MultisetTest); - CPPUNIT_TEST(mset1); - CPPUNIT_TEST(mset3); - CPPUNIT_TEST(mset5); - CPPUNIT_TEST_SUITE_END(); - -protected: - void mset1(); - void mset3(); - void mset5(); - - static bool less_than(int a_, int b_) - { - return a_ < b_; - } - - static bool greater_than(int a_, int b_) - { - return a_ > b_; - } -}; - -CPPUNIT_TEST_SUITE_REGISTRATION(MultisetTest); - -// -// tests implementation -// -void MultisetTest::mset1() -{ - mset s; - CPPUNIT_ASSERT(s.count(42) == 0); - s.insert(42); - CPPUNIT_ASSERT(s.count(42) == 1); - s.insert(42); - CPPUNIT_ASSERT(s.count(42) == 2); - - mset::iterator i = s.find(40); - CPPUNIT_ASSERT(i == s.end()); - - i = s.find(42); - CPPUNIT_ASSERT(i != s.end()); - size_t count = s.erase(42); - CPPUNIT_ASSERT(count == 2); -} -void MultisetTest::mset3() -{ - int array [] = { 3, 6, 1, 2, 3, 2, 6, 7, 9 }; - - //Check iterator on a mutable set - mset s(array, array + 9); - mset::iterator i; - i = s.lower_bound(3); - CPPUNIT_ASSERT(*i == 3); - i = s.upper_bound(3); - CPPUNIT_ASSERT(*i == 6); - pair<mset::iterator, mset::iterator> p = s.equal_range(5); - CPPUNIT_ASSERT(*(p.first) == 6); - CPPUNIT_ASSERT(*(p.second) == 6); - - //Check const_iterator on a mutable multiset - mset::const_iterator ci; - ci = s.lower_bound(3); - CPPUNIT_ASSERT(*ci == 3); - ci = s.upper_bound(3); - CPPUNIT_ASSERT(*ci == 6); - pair<mset::const_iterator, mset::const_iterator> cp; -#ifdef _STLP_MEMBER_TEMPLATES - cp = s.equal_range(5); - CPPUNIT_ASSERT(*(cp.first) == 6); - CPPUNIT_ASSERT(*(cp.second) == 6); -#endif - - //Check const_iterator on a const multiset - mset const& crs = s; - ci = crs.lower_bound(3); - CPPUNIT_ASSERT(*ci == 3); - ci = crs.upper_bound(3); - CPPUNIT_ASSERT(*ci == 6); - cp = crs.equal_range(5); - CPPUNIT_ASSERT(*(cp.first) == 6); - CPPUNIT_ASSERT(*(cp.second) == 6); -} -void MultisetTest::mset5() -{ - int array [] = { 3, 6, 1, 9 }; - int j; - - typedef pointer_to_binary_function<int, int, bool> fn_type; - typedef multiset<int, fn_type, allocator<int> > fn_mset; - - fn_type f(less_than); - fn_mset s1(array+0, array + 4 , f ); - fn_mset::const_iterator i = s1.begin(); - for (j = 0; i != s1.end(); ++i, ++j) { - CPPUNIT_ASSERT(j != 0 || *i == 1); - CPPUNIT_ASSERT(j != 1 || *i == 3); - CPPUNIT_ASSERT(j != 2 || *i == 6); - CPPUNIT_ASSERT(j != 3 || *i == 9); - } - - fn_type g(greater_than); - fn_mset s2(array, array + 4, g); - i = s2.begin(); - for (j = 0; i != s2.end(); ++i, ++j) { - CPPUNIT_ASSERT(j != 0 || *i == 9); - CPPUNIT_ASSERT(j != 1 || *i == 6); - CPPUNIT_ASSERT(j != 2 || *i == 3); - CPPUNIT_ASSERT(j != 3 || *i == 1); - } - -} |