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