-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetTests.cpp
More file actions
90 lines (77 loc) · 2.88 KB
/
setTests.cpp
File metadata and controls
90 lines (77 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include "includes/set.hpp"
#include <iostream>
#include <vector>
#include <memory>
#include <set>
#include <utility>
// namespace ft = std;
void setTests(){
{
//constructor tests
ft::set<int> a((std::less<int>()), std::allocator<int>());
std::vector<int > v;
for (int i = 0; i < 10; ++i)
v.push_back(i+1);
ft::set<int> b(v.begin(), v.end());
ft::set<int> c(b);
ft::set<int> m;
//assignment operator test;
m = c;
// getters
m.get_allocator();
ft::set<int>::iterator it = m.begin();
ft::set<int>::iterator eit = m.end();
ft::set<int>::const_iterator cit = m.begin();
ft::set<int>::const_iterator ecit = m.end();
ft::set<int>::reverse_iterator rit = m.rbegin();
ft::set<int>::reverse_iterator reit = m.rend();
ft::set<int>::const_reverse_iterator rcit = m.rbegin();
ft::set<int>::const_reverse_iterator recit = m.rend();
std::cout << *cit<< " first elm\n";
std::cout << *(eit) << " last ell\n";
std::cout << *it << " first elm\n";
std::cout << *(ecit) << " last elm\n";
std::cout << *rit<< " reverse begin it value\n";
std::cout << *reit<< " reverse end it value\n";
std::cout << *rcit<< " reverse begin it value\n";
std::cout << *recit<< " reverse end it value\n";
if (m.empty())
std::cout << "set is empty\n";
else
std::cout << "set is not empty\n";
std::cout << m.size() << " is the set size\n";
std::cout << m.max_size() << " is the max size\n";
m.clear();
if (m.empty())
std::cout << "set is cleared\n";
ft::pair<ft::set<int>::iterator, bool> insertRet = m.insert(20);
std::cout << *insertRet.first<< " | " << insertRet.second << " return value of insert \n";
m.insert(v.begin(), v.end());
for (ft::set<int>::iterator iter = m.begin(); iter != m.end(); ++iter){
std::cout << "|" << *iter << "| >> ";
}
std::cout << std::endl;
ft::set<int>::iterator eraseIter = m.erase(m.begin());
std::cout << *eraseIter << " erase(iter) return value\n";
std::cout << m.erase(6) << " return value for erase(Key)\n";
ft::set<int>::iterator eraseIter2 = m.erase(m.begin(), m.end());
std::cout << *eraseIter2 << " erase(first, last) return value\n";
m.swap(c);
std::cout << m.count(5) << " return value of count\n";
ft::set<int>::iterator findIter = m.find(5);
std::cout << *findIter << " find return value\n";
ft::pair<ft::set<int>::iterator, ft::set<int>::iterator> eqRet = m.equal_range(5);
std::cout << *eqRet.first << " - " << *eqRet.second <<" equal range return val \n";
ft::set<int>::iterator lowerBoundIter = m.lower_bound(5);
std::cout << *lowerBoundIter << " lower bound return val\n";
ft::set<int>::iterator upperBoundIter = m.upper_bound(5);
std::cout << *upperBoundIter << " upper bound return val\n";
m.key_comp(); //i will do test later but it's working
m.value_comp();
}
//speed test
// ft::set<int> s;
// for(int i = 0; i < 1000000; ++i)
// s.insert(i+1);
// std::cout << "set test finished\n";
}