home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / stl453up.zip / stl453fx / test / eh / test_push_back.h < prev    next >
C/C++ Source or Header  |  2002-04-29  |  2KB  |  51 lines

  1. /***********************************************************************************
  2.     test_push_back.h
  3.     
  4.         Interface for the test_push_back class
  5.         
  6.  * Copyright (c) 1997
  7.  * Mark of the Unicorn, Inc.
  8.  *
  9.  * Permission to use, copy, modify, distribute and sell this software
  10.  * and its documentation for any purpose is hereby granted without fee,
  11.  * provided that the above copyright notice appear in all copies and
  12.  * that both that copyright notice and this permission notice appear
  13.  * in supporting documentation.  Mark of the Unicorn makes no
  14.  * representations about the suitability of this software for any
  15.  * purpose.  It is provided "as is" without express or implied warranty.
  16.         
  17. ***********************************************************************************/
  18. #ifndef test_push_back_H_
  19. #define test_push_back_H_
  20. # ifdef EH_NEW_HEADERS
  21. #  include <cassert>
  22. # else
  23. #  include <assert.h>
  24. # endif
  25.  
  26. # include "Prefix.h"
  27. #include "nc_alloc.h"
  28.  
  29. template <class C>
  30. struct test_push_back
  31. {
  32.     test_push_back( const C& orig ) : original( orig )
  33.     {
  34.         gTestController.SetCurrentTestName("push_back() method");
  35.     }
  36.     
  37.     void operator()( C& c ) const
  38.     {
  39.       typedef typename C::value_type _value_type;
  40.         c.push_back(_value_type() );
  41.         // Prevent simulated failures during verification
  42.         gTestController.CancelFailureCountdown();
  43.         EH_ASSERT( c.size() == original.size() + 1 );
  44.         EH_ASSERT( EH_STD::equal( original.begin(), original.end(), c.begin() ) );
  45.     }
  46. private:
  47.     const C& original;
  48. };
  49.  
  50. #endif // test_push_back_H_
  51.