/*********************************************************************************** test_push_front.h * Copyright (c) 1997 * Mark of the Unicorn, Inc. * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. Mark of the Unicorn makes no * representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. ***********************************************************************************/ #ifndef test_push_front_H_ #define test_push_front_H_ # if defined (EH_NEW_HEADERS) # include <cassert> # else # include <assert.h> # endif # include "Prefix.h" template <class C> struct test_push_front { test_push_front( const C& orig ) : original( orig ) { gTestController.SetCurrentTestName("push_front() method"); } void operator()( C& c ) const { typedef typename C::value_type _value_type; c.push_front( _value_type() ); EH_ASSERT( c.size() == original.size() + 1 ); typename C::const_iterator next = c.begin(); EH_ASSERT( EH_STD::equal( original.begin(), original.end(), ++next ) ); } private: const C& original; }; #endif // test_push_front_H_