Stxxl  1.2.1
map_test_handlers.h
Go to the documentation of this file.
1 /***************************************************************************
2  * containers/map_test_handlers.h
3  *
4  * Part of the STXXL. See http://stxxl.sourceforge.net
5  *
6  * Copyright (C) 2004, 2005 Thomas Nowak <t.nowak@imail.de>
7  * Copyright (C) 2006 Roman Dementiev <dementiev@ira.uka.de>
8  *
9  * Distributed under the Boost Software License, Version 1.0.
10  * (See accompanying file LICENSE_1_0.txt or copy at
11  * http://www.boost.org/LICENSE_1_0.txt)
12  **************************************************************************/
13 
16 
17 #ifndef STXXL_TEST_HEADER__MAP_TEST_HANDLERS_H_
18 #define STXXL_TEST_HEADER__MAP_TEST_HANDLERS_H_
19 
20 #include <stxxl/bits/namespace.h>
21 
22 __STXXL_BEGIN_NAMESPACE
23 
24 // ***********************************************
25 // THERE
26 // ***********************************************
27 
28 template <typename MAPTYPE>
29 bool there(MAPTYPE & map_, const typename MAPTYPE::key_type & key, typename MAPTYPE::mapped_type data)
30 {
31  if (!((*map_.find(key)).second == data))
32  {
33  typename MAPTYPE::iterator iter = map_.find(key);
34  STXXL_VERBOSE2("iter=(" << (*iter).first << ":" << (*iter).second << ")");
35  STXXL_VERBOSE2("key=" << key);
36  STXXL_VERBOSE2("data=" << data);
37  return false;
38  }
39  return true;
40 }
41 
42 // ***********************************************
43 // IS EQUAL END
44 // ***********************************************
45 
46 template <typename MAPTYPE>
47 bool is_equal_end(MAPTYPE & map_, typename MAPTYPE::iterator & iter)
48 {
49  return iter == map_.end();
50 }
51 
52 // ***********************************************
53 // IS SAME
54 // ***********************************************
55 
56 template <typename value_type>
57 bool is_same(value_type & v1, value_type & v2)
58 {
59  return v1.first == v2.first && v1.second == v2.second;
60 }
61 
62 template <typename value_type>
63 bool is_same(const value_type & v1, const value_type & v2)
64 {
65  return v1.first == v2.first && v1.second == v2.second;
66 }
67 
68 // ***********************************************
69 // NOT THERE
70 // ***********************************************
71 
72 template <typename MAPTYPE>
73 bool not_there(MAPTYPE & map_, const typename MAPTYPE::key_type & key)
74 {
75  return map_.find(key) == map_.end();
76 }
77 
78 // ***********************************************
79 // IS EMPTY
80 // ***********************************************
81 
82 template <typename MAPTYPE>
83 bool is_empty(MAPTYPE & map_)
84 {
85  return map_.empty();
86 }
87 
88 // ***********************************************
89 // IS END
90 // ***********************************************
91 
92 template <typename MAPTYPE>
93 bool is_end(MAPTYPE & map_, typename MAPTYPE::iterator & iter)
94 {
95  return iter == map_.end();
96 }
97 
98 template <typename MAPTYPE>
99 bool is_end(const MAPTYPE & map_, typename MAPTYPE::const_iterator & iter)
100 {
101  return iter == map_.end();
102 }
103 
104 // ***********************************************
105 // IS SIZE
106 // ***********************************************
107 
108 template <typename MAPTYPE>
109 bool is_size(MAPTYPE & map_, const typename MAPTYPE::size_type & size)
110 {
111  return map_.size() == size;
112 }
113 
114 __STXXL_END_NAMESPACE
115 
116 #endif // !STXXL_TEST_HEADER__MAP_TEST_HANDLERS_H_