map_test_handlers.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *  containers/map_test_handlers.h
00003  *
00004  *  Part of the STXXL. See http://stxxl.sourceforge.net
00005  *
00006  *  Copyright (C) 2004, 2005 Thomas Nowak <t.nowak@imail.de>
00007  *  Copyright (C) 2006 Roman Dementiev <dementiev@ira.uka.de>
00008  *
00009  *  Distributed under the Boost Software License, Version 1.0.
00010  *  (See accompanying file LICENSE_1_0.txt or copy at
00011  *  http://www.boost.org/LICENSE_1_0.txt)
00012  **************************************************************************/
00013 
00016 
00017 #ifndef STXXL_TEST_HEADER__MAP_TEST_HANDLERS_H_
00018 #define STXXL_TEST_HEADER__MAP_TEST_HANDLERS_H_
00019 
00020 #include <stxxl/bits/namespace.h>
00021 
00022 __STXXL_BEGIN_NAMESPACE
00023 
00024 // ***********************************************
00025 // THERE
00026 // ***********************************************
00027 
00028 template <typename MAPTYPE>
00029 bool there(MAPTYPE & map_, const typename MAPTYPE::key_type & key, typename MAPTYPE::mapped_type data)
00030 {
00031     if (!((*map_.find(key)).second == data))
00032     {
00033         typename MAPTYPE::iterator iter = map_.find(key);
00034         STXXL_VERBOSE2("iter=(" << (*iter).first << ":" << (*iter).second << ")");
00035         STXXL_VERBOSE2("key=" << key);
00036         STXXL_VERBOSE2("data=" << data);
00037         return false;
00038     }
00039     return true;
00040 }
00041 
00042 // ***********************************************
00043 // IS EQUAL END
00044 // ***********************************************
00045 
00046 template <typename MAPTYPE>
00047 bool is_equal_end(MAPTYPE & map_, typename MAPTYPE::iterator & iter)
00048 {
00049     return iter == map_.end();
00050 }
00051 
00052 // ***********************************************
00053 // IS SAME
00054 // ***********************************************
00055 
00056 template <typename value_type>
00057 bool is_same(value_type & v1, value_type & v2)
00058 {
00059     return v1.first == v2.first && v1.second == v2.second;
00060 }
00061 
00062 template <typename value_type>
00063 bool is_same(const value_type & v1, const value_type & v2)
00064 {
00065     return v1.first == v2.first && v1.second == v2.second;
00066 }
00067 
00068 // ***********************************************
00069 // NOT THERE
00070 // ***********************************************
00071 
00072 template <typename MAPTYPE>
00073 bool not_there(MAPTYPE & map_, const typename MAPTYPE::key_type & key)
00074 {
00075     return map_.find(key) == map_.end();
00076 }
00077 
00078 // ***********************************************
00079 // IS EMPTY
00080 // ***********************************************
00081 
00082 template <typename MAPTYPE>
00083 bool is_empty(MAPTYPE & map_)
00084 {
00085     return map_.empty();
00086 }
00087 
00088 // ***********************************************
00089 // IS END
00090 // ***********************************************
00091 
00092 template <typename MAPTYPE>
00093 bool is_end(MAPTYPE & map_, typename MAPTYPE::iterator & iter)
00094 {
00095     return iter == map_.end();
00096 }
00097 
00098 template <typename MAPTYPE>
00099 bool is_end(const MAPTYPE & map_, typename MAPTYPE::const_iterator & iter)
00100 {
00101     return iter == map_.end();
00102 }
00103 
00104 // ***********************************************
00105 // IS SIZE
00106 // ***********************************************
00107 
00108 template <typename MAPTYPE>
00109 bool is_size(MAPTYPE & map_, const typename MAPTYPE::size_type & size)
00110 {
00111     return map_.size() == size;
00112 }
00113 
00114 __STXXL_END_NAMESPACE
00115 
00116 #endif // !STXXL_TEST_HEADER__MAP_TEST_HANDLERS_H_

Generated on Thu Jun 4 10:29:29 2009 for Stxxl by  doxygen 1.4.7