Move test into test/std subdirectory.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@224658 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
154
test/std/containers/associative/map/map.access/at.pass.cpp
Normal file
154
test/std/containers/associative/map/map.access/at.pass.cpp
Normal file
@@ -0,0 +1,154 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <map>
|
||||
|
||||
// class map
|
||||
|
||||
// mapped_type& at(const key_type& k);
|
||||
// const mapped_type& at(const key_type& k) const;
|
||||
|
||||
#include <map>
|
||||
#include <cassert>
|
||||
|
||||
#include "min_allocator.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1.5),
|
||||
V(2, 2.5),
|
||||
V(3, 3.5),
|
||||
V(4, 4.5),
|
||||
V(5, 5.5),
|
||||
V(7, 7.5),
|
||||
V(8, 8.5),
|
||||
};
|
||||
std::map<int, double> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(m.size() == 7);
|
||||
assert(m.at(1) == 1.5);
|
||||
m.at(1) = -1.5;
|
||||
assert(m.at(1) == -1.5);
|
||||
assert(m.at(2) == 2.5);
|
||||
assert(m.at(3) == 3.5);
|
||||
assert(m.at(4) == 4.5);
|
||||
assert(m.at(5) == 5.5);
|
||||
try
|
||||
{
|
||||
m.at(6);
|
||||
assert(false);
|
||||
}
|
||||
catch (std::out_of_range&)
|
||||
{
|
||||
}
|
||||
assert(m.at(7) == 7.5);
|
||||
assert(m.at(8) == 8.5);
|
||||
assert(m.size() == 7);
|
||||
}
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1.5),
|
||||
V(2, 2.5),
|
||||
V(3, 3.5),
|
||||
V(4, 4.5),
|
||||
V(5, 5.5),
|
||||
V(7, 7.5),
|
||||
V(8, 8.5),
|
||||
};
|
||||
const std::map<int, double> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(m.size() == 7);
|
||||
assert(m.at(1) == 1.5);
|
||||
assert(m.at(2) == 2.5);
|
||||
assert(m.at(3) == 3.5);
|
||||
assert(m.at(4) == 4.5);
|
||||
assert(m.at(5) == 5.5);
|
||||
try
|
||||
{
|
||||
m.at(6);
|
||||
assert(false);
|
||||
}
|
||||
catch (std::out_of_range&)
|
||||
{
|
||||
}
|
||||
assert(m.at(7) == 7.5);
|
||||
assert(m.at(8) == 8.5);
|
||||
assert(m.size() == 7);
|
||||
}
|
||||
#if __cplusplus >= 201103L
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1.5),
|
||||
V(2, 2.5),
|
||||
V(3, 3.5),
|
||||
V(4, 4.5),
|
||||
V(5, 5.5),
|
||||
V(7, 7.5),
|
||||
V(8, 8.5),
|
||||
};
|
||||
std::map<int, double, std::less<int>, min_allocator<V>> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(m.size() == 7);
|
||||
assert(m.at(1) == 1.5);
|
||||
m.at(1) = -1.5;
|
||||
assert(m.at(1) == -1.5);
|
||||
assert(m.at(2) == 2.5);
|
||||
assert(m.at(3) == 3.5);
|
||||
assert(m.at(4) == 4.5);
|
||||
assert(m.at(5) == 5.5);
|
||||
try
|
||||
{
|
||||
m.at(6);
|
||||
assert(false);
|
||||
}
|
||||
catch (std::out_of_range&)
|
||||
{
|
||||
}
|
||||
assert(m.at(7) == 7.5);
|
||||
assert(m.at(8) == 8.5);
|
||||
assert(m.size() == 7);
|
||||
}
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1.5),
|
||||
V(2, 2.5),
|
||||
V(3, 3.5),
|
||||
V(4, 4.5),
|
||||
V(5, 5.5),
|
||||
V(7, 7.5),
|
||||
V(8, 8.5),
|
||||
};
|
||||
const std::map<int, double, std::less<int>, min_allocator<V>> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(m.size() == 7);
|
||||
assert(m.at(1) == 1.5);
|
||||
assert(m.at(2) == 2.5);
|
||||
assert(m.at(3) == 3.5);
|
||||
assert(m.at(4) == 4.5);
|
||||
assert(m.at(5) == 5.5);
|
||||
try
|
||||
{
|
||||
m.at(6);
|
||||
assert(false);
|
||||
}
|
||||
catch (std::out_of_range&)
|
||||
{
|
||||
}
|
||||
assert(m.at(7) == 7.5);
|
||||
assert(m.at(8) == 8.5);
|
||||
assert(m.size() == 7);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <map>
|
||||
|
||||
// class map
|
||||
|
||||
// bool empty() const;
|
||||
|
||||
#include <map>
|
||||
#include <cassert>
|
||||
|
||||
#include "min_allocator.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
typedef std::map<int, double> M;
|
||||
M m;
|
||||
assert(m.empty());
|
||||
m.insert(M::value_type(1, 1.5));
|
||||
assert(!m.empty());
|
||||
m.clear();
|
||||
assert(m.empty());
|
||||
}
|
||||
#if __cplusplus >= 201103L
|
||||
{
|
||||
typedef std::map<int, double, std::less<int>, min_allocator<std::pair<const int, double>>> M;
|
||||
M m;
|
||||
assert(m.empty());
|
||||
m.insert(M::value_type(1, 1.5));
|
||||
assert(!m.empty());
|
||||
m.clear();
|
||||
assert(m.empty());
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <map>
|
||||
|
||||
// class map
|
||||
|
||||
// mapped_type& operator[](const key_type& k);
|
||||
|
||||
#include <map>
|
||||
#include <cassert>
|
||||
|
||||
#include "min_allocator.h"
|
||||
#include "private_constructor.hpp"
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1.5),
|
||||
V(2, 2.5),
|
||||
V(3, 3.5),
|
||||
V(4, 4.5),
|
||||
V(5, 5.5),
|
||||
V(7, 7.5),
|
||||
V(8, 8.5),
|
||||
};
|
||||
std::map<int, double> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(m.size() == 7);
|
||||
assert(m[1] == 1.5);
|
||||
assert(m.size() == 7);
|
||||
m[1] = -1.5;
|
||||
assert(m[1] == -1.5);
|
||||
assert(m.size() == 7);
|
||||
assert(m[6] == 0);
|
||||
assert(m.size() == 8);
|
||||
m[6] = 6.5;
|
||||
assert(m[6] == 6.5);
|
||||
assert(m.size() == 8);
|
||||
}
|
||||
#if __cplusplus >= 201103L
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1.5),
|
||||
V(2, 2.5),
|
||||
V(3, 3.5),
|
||||
V(4, 4.5),
|
||||
V(5, 5.5),
|
||||
V(7, 7.5),
|
||||
V(8, 8.5),
|
||||
};
|
||||
std::map<int, double, std::less<int>, min_allocator<V>> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(m.size() == 7);
|
||||
assert(m[1] == 1.5);
|
||||
assert(m.size() == 7);
|
||||
const int i = 1;
|
||||
m[i] = -1.5;
|
||||
assert(m[1] == -1.5);
|
||||
assert(m.size() == 7);
|
||||
assert(m[6] == 0);
|
||||
assert(m.size() == 8);
|
||||
m[6] = 6.5;
|
||||
assert(m[6] == 6.5);
|
||||
assert(m.size() == 8);
|
||||
}
|
||||
#endif
|
||||
#if _LIBCPP_STD_VER > 11
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1.5),
|
||||
V(2, 2.5),
|
||||
V(3, 3.5),
|
||||
V(4, 4.5),
|
||||
V(5, 5.5),
|
||||
V(7, 7.5),
|
||||
V(8, 8.5),
|
||||
};
|
||||
std::map<int, double, std::less<>> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
|
||||
assert(m.size() == 7);
|
||||
assert(m[1] == 1.5);
|
||||
assert(m.size() == 7);
|
||||
m[1] = -1.5;
|
||||
assert(m[1] == -1.5);
|
||||
assert(m.size() == 7);
|
||||
assert(m[6] == 0);
|
||||
assert(m.size() == 8);
|
||||
m[6] = 6.5;
|
||||
assert(m[6] == 6.5);
|
||||
assert(m.size() == 8);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <map>
|
||||
|
||||
// class map
|
||||
|
||||
// mapped_type& operator[](key_type&& k);
|
||||
|
||||
#include <map>
|
||||
#include <cassert>
|
||||
|
||||
#include "../../../MoveOnly.h"
|
||||
#include "min_allocator.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
{
|
||||
typedef std::pair<MoveOnly, double> V;
|
||||
std::map<MoveOnly, double> m;
|
||||
assert(m.size() == 0);
|
||||
assert(m[1] == 0.0);
|
||||
assert(m.size() == 1);
|
||||
m[1] = -1.5;
|
||||
assert(m[1] == -1.5);
|
||||
assert(m.size() == 1);
|
||||
assert(m[6] == 0);
|
||||
assert(m.size() == 2);
|
||||
m[6] = 6.5;
|
||||
assert(m[6] == 6.5);
|
||||
assert(m.size() == 2);
|
||||
}
|
||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
||||
#if __cplusplus >= 201103L
|
||||
{
|
||||
typedef std::pair<MoveOnly, double> V;
|
||||
std::map<MoveOnly, double, std::less<MoveOnly>, min_allocator<V>> m;
|
||||
assert(m.size() == 0);
|
||||
assert(m[1] == 0.0);
|
||||
assert(m.size() == 1);
|
||||
m[1] = -1.5;
|
||||
assert(m[1] == -1.5);
|
||||
assert(m.size() == 1);
|
||||
assert(m[6] == 0);
|
||||
assert(m.size() == 2);
|
||||
m[6] = 6.5;
|
||||
assert(m[6] == 6.5);
|
||||
assert(m.size() == 2);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <map>
|
||||
|
||||
// class map
|
||||
|
||||
// mapped_type& operator[](const key_type& k);
|
||||
|
||||
// http://llvm.org/bugs/show_bug.cgi?id=16542
|
||||
|
||||
#include <map>
|
||||
|
||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||
|
||||
#include <tuple>
|
||||
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
||||
using namespace std;
|
||||
map<tuple<int,int>, size_t> m;
|
||||
m[make_tuple(2,3)]=7;
|
||||
#endif
|
||||
}
|
||||
227
test/std/containers/associative/map/map.access/iterator.pass.cpp
Normal file
227
test/std/containers/associative/map/map.access/iterator.pass.cpp
Normal file
@@ -0,0 +1,227 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <map>
|
||||
|
||||
// class map
|
||||
|
||||
// iterator begin();
|
||||
// const_iterator begin() const;
|
||||
// iterator end();
|
||||
// const_iterator end() const;
|
||||
//
|
||||
// reverse_iterator rbegin();
|
||||
// const_reverse_iterator rbegin() const;
|
||||
// reverse_iterator rend();
|
||||
// const_reverse_iterator rend() const;
|
||||
//
|
||||
// const_iterator cbegin() const;
|
||||
// const_iterator cend() const;
|
||||
// const_reverse_iterator crbegin() const;
|
||||
// const_reverse_iterator crend() const;
|
||||
|
||||
#include <map>
|
||||
#include <cassert>
|
||||
|
||||
#include "min_allocator.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1),
|
||||
V(1, 1.5),
|
||||
V(1, 2),
|
||||
V(2, 1),
|
||||
V(2, 1.5),
|
||||
V(2, 2),
|
||||
V(3, 1),
|
||||
V(3, 1.5),
|
||||
V(3, 2),
|
||||
V(4, 1),
|
||||
V(4, 1.5),
|
||||
V(4, 2),
|
||||
V(5, 1),
|
||||
V(5, 1.5),
|
||||
V(5, 2),
|
||||
V(6, 1),
|
||||
V(6, 1.5),
|
||||
V(6, 2),
|
||||
V(7, 1),
|
||||
V(7, 1.5),
|
||||
V(7, 2),
|
||||
V(8, 1),
|
||||
V(8, 1.5),
|
||||
V(8, 2)
|
||||
};
|
||||
std::map<int, double> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(std::distance(m.begin(), m.end()) == m.size());
|
||||
assert(std::distance(m.rbegin(), m.rend()) == m.size());
|
||||
std::map<int, double>::iterator i;
|
||||
i = m.begin();
|
||||
std::map<int, double>::const_iterator k = i;
|
||||
assert(i == k);
|
||||
for (int j = 1; j <= m.size(); ++j, ++i)
|
||||
{
|
||||
assert(i->first == j);
|
||||
assert(i->second == 1);
|
||||
i->second = 2.5;
|
||||
assert(i->second == 2.5);
|
||||
}
|
||||
}
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1),
|
||||
V(1, 1.5),
|
||||
V(1, 2),
|
||||
V(2, 1),
|
||||
V(2, 1.5),
|
||||
V(2, 2),
|
||||
V(3, 1),
|
||||
V(3, 1.5),
|
||||
V(3, 2),
|
||||
V(4, 1),
|
||||
V(4, 1.5),
|
||||
V(4, 2),
|
||||
V(5, 1),
|
||||
V(5, 1.5),
|
||||
V(5, 2),
|
||||
V(6, 1),
|
||||
V(6, 1.5),
|
||||
V(6, 2),
|
||||
V(7, 1),
|
||||
V(7, 1.5),
|
||||
V(7, 2),
|
||||
V(8, 1),
|
||||
V(8, 1.5),
|
||||
V(8, 2)
|
||||
};
|
||||
const std::map<int, double> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(std::distance(m.begin(), m.end()) == m.size());
|
||||
assert(std::distance(m.cbegin(), m.cend()) == m.size());
|
||||
assert(std::distance(m.rbegin(), m.rend()) == m.size());
|
||||
assert(std::distance(m.crbegin(), m.crend()) == m.size());
|
||||
std::map<int, double>::const_iterator i;
|
||||
i = m.begin();
|
||||
for (int j = 1; j <= m.size(); ++j, ++i)
|
||||
{
|
||||
assert(i->first == j);
|
||||
assert(i->second == 1);
|
||||
}
|
||||
}
|
||||
#if __cplusplus >= 201103L
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1),
|
||||
V(1, 1.5),
|
||||
V(1, 2),
|
||||
V(2, 1),
|
||||
V(2, 1.5),
|
||||
V(2, 2),
|
||||
V(3, 1),
|
||||
V(3, 1.5),
|
||||
V(3, 2),
|
||||
V(4, 1),
|
||||
V(4, 1.5),
|
||||
V(4, 2),
|
||||
V(5, 1),
|
||||
V(5, 1.5),
|
||||
V(5, 2),
|
||||
V(6, 1),
|
||||
V(6, 1.5),
|
||||
V(6, 2),
|
||||
V(7, 1),
|
||||
V(7, 1.5),
|
||||
V(7, 2),
|
||||
V(8, 1),
|
||||
V(8, 1.5),
|
||||
V(8, 2)
|
||||
};
|
||||
std::map<int, double, std::less<int>, min_allocator<V>> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(std::distance(m.begin(), m.end()) == m.size());
|
||||
assert(std::distance(m.rbegin(), m.rend()) == m.size());
|
||||
std::map<int, double, std::less<int>, min_allocator<V>>::iterator i;
|
||||
i = m.begin();
|
||||
std::map<int, double, std::less<int>, min_allocator<V>>::const_iterator k = i;
|
||||
assert(i == k);
|
||||
for (int j = 1; j <= m.size(); ++j, ++i)
|
||||
{
|
||||
assert(i->first == j);
|
||||
assert(i->second == 1);
|
||||
i->second = 2.5;
|
||||
assert(i->second == 2.5);
|
||||
}
|
||||
}
|
||||
{
|
||||
typedef std::pair<const int, double> V;
|
||||
V ar[] =
|
||||
{
|
||||
V(1, 1),
|
||||
V(1, 1.5),
|
||||
V(1, 2),
|
||||
V(2, 1),
|
||||
V(2, 1.5),
|
||||
V(2, 2),
|
||||
V(3, 1),
|
||||
V(3, 1.5),
|
||||
V(3, 2),
|
||||
V(4, 1),
|
||||
V(4, 1.5),
|
||||
V(4, 2),
|
||||
V(5, 1),
|
||||
V(5, 1.5),
|
||||
V(5, 2),
|
||||
V(6, 1),
|
||||
V(6, 1.5),
|
||||
V(6, 2),
|
||||
V(7, 1),
|
||||
V(7, 1.5),
|
||||
V(7, 2),
|
||||
V(8, 1),
|
||||
V(8, 1.5),
|
||||
V(8, 2)
|
||||
};
|
||||
const std::map<int, double, std::less<int>, min_allocator<V>> m(ar, ar+sizeof(ar)/sizeof(ar[0]));
|
||||
assert(std::distance(m.begin(), m.end()) == m.size());
|
||||
assert(std::distance(m.cbegin(), m.cend()) == m.size());
|
||||
assert(std::distance(m.rbegin(), m.rend()) == m.size());
|
||||
assert(std::distance(m.crbegin(), m.crend()) == m.size());
|
||||
std::map<int, double, std::less<int>, min_allocator<V>>::const_iterator i;
|
||||
i = m.begin();
|
||||
for (int j = 1; j <= m.size(); ++j, ++i)
|
||||
{
|
||||
assert(i->first == j);
|
||||
assert(i->second == 1);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if _LIBCPP_STD_VER > 11
|
||||
{ // N3644 testing
|
||||
typedef std::map<int, double> C;
|
||||
C::iterator ii1{}, ii2{};
|
||||
C::iterator ii4 = ii1;
|
||||
C::const_iterator cii{};
|
||||
assert ( ii1 == ii2 );
|
||||
assert ( ii1 == ii4 );
|
||||
|
||||
assert (!(ii1 != ii2 ));
|
||||
|
||||
assert ( (ii1 == cii ));
|
||||
assert ( (cii == ii1 ));
|
||||
assert (!(ii1 != cii ));
|
||||
assert (!(cii != ii1 ));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <map>
|
||||
|
||||
// class map
|
||||
|
||||
// size_type max_size() const;
|
||||
|
||||
#include <map>
|
||||
#include <cassert>
|
||||
|
||||
#include "min_allocator.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
typedef std::map<int, double> M;
|
||||
M m;
|
||||
assert(m.max_size() != 0);
|
||||
}
|
||||
#if __cplusplus >= 201103L
|
||||
{
|
||||
typedef std::map<int, double, std::less<int>, min_allocator<std::pair<const int, double>>> M;
|
||||
M m;
|
||||
assert(m.max_size() != 0);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
59
test/std/containers/associative/map/map.access/size.pass.cpp
Normal file
59
test/std/containers/associative/map/map.access/size.pass.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is dual licensed under the MIT and the University of Illinois Open
|
||||
// Source Licenses. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// <map>
|
||||
|
||||
// class map
|
||||
|
||||
// size_type size() const;
|
||||
|
||||
#include <map>
|
||||
#include <cassert>
|
||||
|
||||
#include "min_allocator.h"
|
||||
|
||||
int main()
|
||||
{
|
||||
{
|
||||
typedef std::map<int, double> M;
|
||||
M m;
|
||||
assert(m.size() == 0);
|
||||
m.insert(M::value_type(2, 1.5));
|
||||
assert(m.size() == 1);
|
||||
m.insert(M::value_type(1, 1.5));
|
||||
assert(m.size() == 2);
|
||||
m.insert(M::value_type(3, 1.5));
|
||||
assert(m.size() == 3);
|
||||
m.erase(m.begin());
|
||||
assert(m.size() == 2);
|
||||
m.erase(m.begin());
|
||||
assert(m.size() == 1);
|
||||
m.erase(m.begin());
|
||||
assert(m.size() == 0);
|
||||
}
|
||||
#if __cplusplus >= 201103L
|
||||
{
|
||||
typedef std::map<int, double, std::less<int>, min_allocator<std::pair<const int, double>>> M;
|
||||
M m;
|
||||
assert(m.size() == 0);
|
||||
m.insert(M::value_type(2, 1.5));
|
||||
assert(m.size() == 1);
|
||||
m.insert(M::value_type(1, 1.5));
|
||||
assert(m.size() == 2);
|
||||
m.insert(M::value_type(3, 1.5));
|
||||
assert(m.size() == 3);
|
||||
m.erase(m.begin());
|
||||
assert(m.size() == 2);
|
||||
m.erase(m.begin());
|
||||
assert(m.size() == 1);
|
||||
m.erase(m.begin());
|
||||
assert(m.size() == 0);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user