00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef test_push_back_H_
00019 #define test_push_back_H_
00020 # ifdef EH_NEW_HEADERS
00021 # include <cassert>
00022 # else
00023 # include <assert.h>
00024 # endif
00025
00026 # include "Prefix.h"
00027 #include "nc_alloc.h"
00028
00029 template <class C>
00030 struct test_push_back
00031 {
00032 test_push_back( const C& orig ) : original( orig )
00033 {
00034 gTestController.SetCurrentTestName("push_back() method");
00035 }
00036
00037 void operator()( C& c ) const
00038 {
00039 typedef typename C::value_type _value_type;
00040 c.push_back(_value_type() );
00041
00042 gTestController.CancelFailureCountdown();
00043 EH_ASSERT( c.size() == original.size() + 1 );
00044 EH_ASSERT( EH_STD::equal( original.begin(), original.end(), c.begin() ) );
00045 }
00046 private:
00047 const C& original;
00048 };
00049
00050 #endif // test_push_back_H_