-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest_recentlist.cpp
104 lines (83 loc) · 1.76 KB
/
test_recentlist.cpp
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include "RecentList.h"
#include "Test.h"
#include <cassert>
#include <string>
void Test_RecentList_Add()
{
RecentList<std::string> my_list;
my_list.add("A");
my_list.add("B");
my_list.add("C");
assert(my_list.size() == 3);
assert(my_list[0] == "C");
assert(my_list[1] == "B");
assert(my_list[2] == "A");
}
void Test_RecentList_Limit()
{
RecentList<std::string> my_list(2);
my_list.add("A");
my_list.add("B");
my_list.add("C");
assert(my_list.size() == 2);
assert(my_list[0] == "C");
assert(my_list[1] == "B");
}
void Test_RecentList_Remove()
{
RecentList<std::string> my_list;
my_list.add("A");
my_list.add("B");
my_list.add("C");
my_list.add("D");
// remove last one
my_list.remove("D");
assert(my_list.size() == 3);
assert(my_list[0] == "C");
assert(my_list[1] == "B");
assert(my_list[2] == "A");
// remove middle one
my_list.remove("B");
assert(my_list.size() == 2);
assert(my_list[0] == "C");
assert(my_list[1] == "A");
// remove first one
my_list.remove("A");
assert(my_list.size() == 1);
assert(my_list[0] == "C");
}
void Test_RecentList_Order()
{
RecentList<std::string> my_list;
my_list.add("A");
my_list.add("B");
my_list.add("C");
my_list.add("D");
my_list.add("B");
assert(my_list.size() == 4);
assert(my_list[0] == "B");
assert(my_list[1] == "D");
assert(my_list[2] == "C");
assert(my_list[3] == "A");
}
void Test_RecentListClear()
{
RecentList<std::string> my_list;
my_list.add("A");
my_list.add("B");
my_list.add("C");
my_list.add("D");
my_list.clear();
assert(my_list.size() == 0);
my_list.add("X");
assert(my_list.size() == 1);
assert(my_list[0] == "X");
}
void Test_RecentList()
{
Test_RecentList_Add();
Test_RecentList_Limit();
Test_RecentList_Remove();
Test_RecentList_Order();
Test_RecentListClear();
}