home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / stl2vac.zip / STLport-4_5_3.zip / STLport-4.5.3 / test / eh / test_set.cpp < prev    next >
C/C++ Source or Header  |  2000-12-07  |  4KB  |  108 lines

  1. /***********************************************************************************
  2.     test_set.cpp
  3.     
  4.  * Copyright (c) 1997
  5.  * Mark of the Unicorn, Inc.
  6.  *
  7.  * Permission to use, copy, modify, distribute and sell this software
  8.  * and its documentation for any purpose is hereby granted without fee,
  9.  * provided that the above copyright notice appear in all copies and
  10.  * that both that copyright notice and this permission notice appear
  11.  * in supporting documentation.  Mark of the Unicorn makes no
  12.  * representations about the suitability of this software for any
  13.  * purpose.  It is provided "as is" without express or implied warranty.
  14.  
  15. ***********************************************************************************/
  16. #include "Tests.h"
  17. #include "TestClass.h"
  18. #include "LeakCheck.h"
  19. # if defined (EH_NEW_HEADERS)
  20. #include <set>
  21. # else
  22. #include <multiset.h>
  23. #include <set.h>
  24. # endif
  25. #include "test_construct.h"
  26. #include "test_assign_op.h"
  27. #include "test_push_back.h"
  28. #include "test_insert.h"
  29. #include "test_push_front.h"
  30. #include "ThrowCompare.h"
  31.  
  32. void test_multiset();
  33.  
  34. typedef EH_STD::__multiset__<TestClass, ThrowCompare, eh_allocator(TestClass) > TestMultiSet;
  35.  
  36. inline multiset_tag
  37. container_category(const TestMultiSet&)
  38. {
  39.   return multiset_tag();
  40. }
  41.  
  42. void test_multiset()
  43. {
  44.     TestMultiSet testMultiSet, testMultiSet2;
  45.     
  46.     const EH_STD::size_t setSize = random_number(random_base);
  47.     
  48.     while ( testMultiSet.size() < setSize )
  49.     {
  50.         TestMultiSet::value_type x;
  51.         testMultiSet.insert( x );
  52.         testMultiSet2.insert( TestMultiSet::value_type() );
  53.     }
  54.  
  55.     StrongCheck( testMultiSet, test_insert_value<TestMultiSet>(testMultiSet) );
  56.  
  57.     EH_STD::size_t insCnt = random_number(random_base);
  58.     TestMultiSet::value_type *insFirst = new TestMultiSet::value_type[1+insCnt];
  59.     WeakCheck( testMultiSet, insert_range_tester(testMultiSet, insFirst, insFirst+insCnt) );
  60.     ConstCheck( 0, test_construct_pointer_range<TestMultiSet>(insFirst, insFirst+insCnt) );
  61.     delete[] insFirst;
  62.     WeakCheck( testMultiSet, insert_range_tester(testMultiSet, testMultiSet2.begin(), testMultiSet2.end() ) );
  63.     
  64.  
  65.     ConstCheck( 0, test_default_construct<TestMultiSet>() );
  66.     ConstCheck( 0, test_construct_iter_range<TestMultiSet>( testMultiSet2 ) );
  67.     ConstCheck( testMultiSet, test_copy_construct<TestMultiSet>() );
  68.  
  69.     WeakCheck( testMultiSet, test_assign_op<TestMultiSet>( testMultiSet2 ) );
  70. }
  71.  
  72. typedef EH_STD::__set__<TestClass, ThrowCompare, eh_allocator(TestClass) > TestSet;
  73.  
  74. inline set_tag
  75. container_category(const TestSet&)
  76. {
  77.   return set_tag();
  78. }
  79.  
  80. void test_set()
  81. {
  82.     TestSet testSet, testSet2;
  83.     
  84.     const EH_STD::size_t setSize = random_number(random_base);
  85.     
  86.     while ( testSet.size() < setSize )
  87.     {
  88.         TestSet::value_type x;
  89.         testSet.insert( x );
  90.         testSet2.insert( TestSet::value_type() );
  91.     }
  92.     StrongCheck( testSet, test_insert_value<TestSet>(testSet) );
  93.  
  94.     EH_STD::size_t insCnt = random_number(random_base);
  95.     TestSet::value_type *insFirst = new TestSet::value_type[1+insCnt];
  96.  
  97.     WeakCheck( testSet, insert_range_tester(testSet, insFirst, insFirst+insCnt) );
  98.  
  99.     ConstCheck( 0, test_construct_pointer_range<TestSet>(insFirst, insFirst+insCnt) );
  100.     delete[] insFirst;
  101.     WeakCheck( testSet, insert_range_tester(testSet, testSet2.begin(), testSet2.end() ) );
  102.  
  103.     ConstCheck( 0, test_default_construct<TestSet>() );
  104.     ConstCheck( 0, test_construct_iter_range<TestSet>( testSet2 ) );
  105.     ConstCheck( testSet, test_copy_construct<TestSet>() );
  106.     WeakCheck( testSet, test_assign_op<TestSet>( testSet2 ) );
  107. }
  108.