| /*********************************************************************************** |
| 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_ |