Stxxl
1.2.1
|
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_