1 /*********************************************************************************** 2 test_push_front.h 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 #ifndef test_push_front_H_ 17 #define test_push_front_H_ 18 19 # if defined (EH_NEW_HEADERS) 20 # include <cassert> 21 # else 22 # include <assert.h> 23 # endif 24 # include "Prefix.h" 25 26 template <class C> 27 struct test_push_front 28 { 29 test_push_front( const C& orig ) : original( orig ) { 30 gTestController.SetCurrentTestName("push_front() method"); 31 } 32 33 void operator()( C& c ) const 34 { 35 typedef typename C::value_type _value_type; 36 c.push_front( _value_type() ); 37 EH_ASSERT( c.size() == original.size() + 1 ); 38 typename C::const_iterator next = c.begin(); 39 40 EH_ASSERT( EH_STD::equal( original.begin(), original.end(), ++next ) ); 41 } 42 private: 43 const C& original; 44 }; 45 46 #endif // test_push_front_H_ 47