Stxxl  1.4.0
containers/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  *  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_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines