Stxxl
1.4.0
|
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 * Copyright (C) 2010 Andreas Beckmann <beckmann@cs.uni-frankfurt.de> 00009 * 00010 * Distributed under the Boost Software License, Version 1.0. 00011 * (See accompanying file LICENSE_1_0.txt or copy at 00012 * http://www.boost.org/LICENSE_1_0.txt) 00013 **************************************************************************/ 00014 00015 //! \file map_test_handlers.h 00016 //! \brief This file contains help functions for testing of stxxl::map. 00017 00018 #ifndef STXXL_TEST_HEADER__MAP_TEST_HANDLERS_H_ 00019 #define STXXL_TEST_HEADER__MAP_TEST_HANDLERS_H_ 00020 00021 #include <stxxl/bits/namespace.h> 00022 00023 __STXXL_BEGIN_NAMESPACE 00024 00025 // *********************************************** 00026 // THERE 00027 // *********************************************** 00028 00029 template <typename MAPTYPE> 00030 bool there(const MAPTYPE & map_, const typename MAPTYPE::key_type & key, const typename MAPTYPE::mapped_type & data) 00031 { 00032 typename MAPTYPE::const_iterator iter = map_.find(key); 00033 if (!(iter->second == data)) 00034 { 00035 STXXL_VERBOSE2("iter=(" << (*iter).first << ":" << (*iter).second << ")"); 00036 STXXL_VERBOSE2("key=" << key); 00037 STXXL_VERBOSE2("data=" << data); 00038 return false; 00039 } 00040 return true; 00041 } 00042 00043 // *********************************************** 00044 // IS EQUAL END 00045 // *********************************************** 00046 00047 template <typename MAPTYPE> 00048 bool is_equal_end(const MAPTYPE & map_, typename MAPTYPE::const_iterator & iter) 00049 { 00050 return iter == map_.end(); 00051 } 00052 00053 // *********************************************** 00054 // IS SAME 00055 // *********************************************** 00056 00057 template <typename value_type> 00058 bool is_same(value_type & v1, value_type & v2) 00059 { 00060 return v1.first == v2.first && v1.second == v2.second; 00061 } 00062 00063 template <typename value_type> 00064 bool is_same(const value_type & v1, const value_type & v2) 00065 { 00066 return v1.first == v2.first && v1.second == v2.second; 00067 } 00068 00069 // *********************************************** 00070 // NOT THERE 00071 // *********************************************** 00072 00073 template <typename MAPTYPE> 00074 bool not_there(const MAPTYPE & map_, const typename MAPTYPE::key_type & key) 00075 { 00076 return map_.find(key) == map_.end(); 00077 } 00078 00079 // *********************************************** 00080 // IS EMPTY 00081 // *********************************************** 00082 00083 template <typename MAPTYPE> 00084 bool is_empty(const MAPTYPE & map_) 00085 { 00086 return map_.empty(); 00087 } 00088 00089 // *********************************************** 00090 // IS END 00091 // *********************************************** 00092 00093 template <typename MAPTYPE> 00094 bool is_end(MAPTYPE & map_, typename MAPTYPE::iterator & iter) 00095 { 00096 return iter == map_.end(); 00097 } 00098 00099 template <typename MAPTYPE> 00100 bool is_end(const MAPTYPE & map_, typename MAPTYPE::const_iterator & iter) 00101 { 00102 return iter == map_.end(); 00103 } 00104 00105 // *********************************************** 00106 // IS SIZE 00107 // *********************************************** 00108 00109 template <typename MAPTYPE> 00110 bool is_size(const MAPTYPE & map_, const typename MAPTYPE::size_type size) 00111 { 00112 return map_.size() == size; 00113 } 00114 00115 __STXXL_END_NAMESPACE 00116 00117 #endif // !STXXL_TEST_HEADER__MAP_TEST_HANDLERS_H_