@@ -6,21 +6,154 @@ int main(int argc, char* argv[]){
6
6
DoublyLinkedList<int > dList;
7
7
assert (dList.size () == 0 );
8
8
assert (dList.empty () == true );
9
- dList.push_back (5 );
10
- dList.push_front (9 );
11
- dList.push_back (2 );
12
- dList.push_back (1 );
13
- dList.push_front (3 );
9
+ try {
10
+ dList.pop_front ();
11
+ } catch (const std::underflow_error &e){
12
+ std::cout << " pop_front() throw an exception PASSED: " << e.what () << std::endl;
13
+ }
14
+ try {
15
+ dList.pop_back ();
16
+ } catch (const std::underflow_error &e){
17
+ std::cout << " pop_back() throw an exception PASSED: " << e.what () << std::endl;
18
+ }
19
+ try {
20
+ dList.change_eq_first (12 , 17 );
21
+ } catch (const std::underflow_error &e){
22
+ std::cout << " change_eq_first() throw an exception PASSED: " << e.what () << std::endl;
23
+ }
24
+ try {
25
+ dList.change_eq_last (12 , 17 );
26
+ } catch (const std::underflow_error &e){
27
+ std::cout << " change_eq_last() throw an exception PASSED: " << e.what () << std::endl;
28
+ }
29
+ try {
30
+ dList.change_eq_all (12 , 17 );
31
+ } catch (const std::underflow_error &e){
32
+ std::cout << " change_eq_all() throw an exception PASSED: " << e.what () << std::endl;
33
+ }
34
+ try {
35
+ dList.front ();
36
+ } catch (const std::underflow_error &e){
37
+ std::cout << " front() throw an exception PASSED: " << e.what () << std::endl;
38
+ }
39
+ try {
40
+ dList.back ();
41
+ } catch (const std::underflow_error &e){
42
+ std::cout << " back() throw an exception PASSED: " << e.what () << std::endl;
43
+ }
44
+ try {
45
+ dList.contains (12 );
46
+ } catch (const std::underflow_error &e){
47
+ std::cout << " contains() throw an exception PASSED: " << e.what () << std::endl;
48
+ }
49
+ dList.print ();
50
+ dList.print_reverse ();
51
+ dList.push_front (5 ); // 5
52
+ assert (dList.empty () == false );
53
+ assert (dList.size () == 1 );
54
+ assert (dList.front () == 5 );
55
+ assert (dList.back () == 5 );
56
+ assert (dList.contains (5 ) == 0 );
57
+ dList.reverse ();
58
+ assert (dList.empty () == false );
59
+ assert (dList.size () == 1 );
60
+ assert (dList.front () == 5 );
61
+ assert (dList.back () == 5 );
62
+ assert (dList.contains (5 ) == 0 );
63
+ dList.pop_front (); // null
64
+ assert (dList.empty () == true );
65
+ assert (dList.size () == 0 );
66
+ dList.push_back (5 ); // 5
67
+ assert (dList.empty () == false );
68
+ assert (dList.size () == 1 );
69
+ assert (dList.front () == 5 );
70
+ assert (dList.back () == 5 );
71
+ assert (dList.contains (5 ) == 0 );
72
+ dList.pop_back (); // null
73
+ assert (dList.empty () == true );
74
+ assert (dList.size () == 0 );
75
+ dList.push_back (5 ); // 5
76
+ assert (dList.empty () == false );
77
+ assert (dList.size () == 1 );
78
+ assert (dList.front () == 5 );
79
+ assert (dList.back () == 5 );
80
+ assert (dList.contains (5 ) == 0 );
81
+ dList.push_front (9 ); // 9 5
82
+ assert (dList.empty () == false );
83
+ assert (dList.size () == 2 );
84
+ assert (dList.front () == 9 );
85
+ assert (dList.back () == 5 );
86
+ assert (dList.contains (5 ) == 1 );
87
+ dList.push_back (2 ); // 9 5 2
88
+ assert (dList.empty () == false );
89
+ assert (dList.size () == 3 );
90
+ assert (dList.front () == 9 );
91
+ assert (dList.back () == 2 );
92
+ assert (dList.contains (5 ) == 1 );
93
+ dList.push_back (1 ); // 9 5 2 1
94
+ assert (dList.empty () == false );
95
+ assert (dList.size () == 4 );
96
+ assert (dList.front () == 9 );
97
+ assert (dList.back () == 1 );
98
+ assert (dList.contains (2 ) == 2 );
99
+ dList.push_front (3 ); // 3 9 5 2 1
100
+ assert (dList.empty () == false );
101
+ assert (dList.size () == 5 );
102
+ assert (dList.front () == 3 );
103
+ assert (dList.back () == 1 );
104
+ assert (dList.contains (1 ) == 4 );
14
105
dList.push_at (2 , 4 ); // 3 9 4 5 2 1
15
106
assert (dList.size () == 6 );
16
107
assert (dList.empty () == false );
17
- std::cout << " empty() and size() test passed!" << std::endl;
18
- dList.pop_back ();
108
+ try {
109
+ dList.push_at (7 , 19 );
110
+ } catch (const std::out_of_range &e){
111
+ std::cout << " push_at() throw an exception PASSED: " << e.what () << std::endl;
112
+ }
113
+ dList.push_at (0 , 13 ); // 13 3 9 4 5 2 1
114
+ assert (dList.empty () == false );
115
+ assert (dList.size () == 7 );
116
+ assert (dList.front () == 13 );
117
+ assert (dList.back () == 1 );
118
+ assert (dList.contains (13 ) == 0 );
119
+ dList.push_at (7 , 42 ); // 13 3 9 4 5 2 1 42
120
+ assert (dList.empty () == false );
121
+ assert (dList.size () == 8 );
122
+ assert (dList.front () == 13 );
123
+ assert (dList.back () == 42 );
124
+ assert (dList.contains (42 ) == 7 );
125
+ try {
126
+ dList.pop_at (8 );
127
+ } catch (const std::out_of_range &e){
128
+ std::cout << " pop_at() throw an exception PASSED: " << e.what () << std::endl;
129
+ }
130
+ dList.pop_at (0 ); // 3 9 4 5 2 1 42
131
+ assert (dList.empty () == false );
132
+ assert (dList.size () == 7 );
133
+ assert (dList.front () == 3 );
134
+ assert (dList.back () == 42 );
135
+ assert (dList.contains (42 ) == 6 );
136
+ dList.pop_at (6 ); // 3 9 4 5 2 1
137
+ assert (dList.empty () == false );
138
+ assert (dList.size () == 6 );
139
+ assert (dList.front () == 3 );
140
+ assert (dList.back () == 1 );
141
+ assert (dList.contains (5 ) == 3 );
142
+ try {
143
+ dList.change_at (7 , 90 );
144
+ } catch (const std::out_of_range &e){
145
+ std::cout << " change_at() throw an exception PASSED: " << e.what () << std::endl;
146
+ }
147
+ try {
148
+ dList.get_at (6 );
149
+ } catch (const std::out_of_range& e){
150
+ std::cout << " get_at() throw an exception PASSED: " << e.what () << std::endl;
151
+ }
152
+ dList.pop_back (); // 3 9 4 5 2
19
153
dList.pop_front (); // 9 4 5 2
20
154
assert (dList.size () == 4 );
21
155
dList.pop_at (2 ); // 9 4 2
22
156
assert (dList.size () == 3 );
23
- std::cout << " pop test passed!" << std::endl;
24
157
dList.push_front (3 );
25
158
dList.push_back (1 );
26
159
dList.push_back (6 );
@@ -41,11 +174,9 @@ int main(int argc, char* argv[]){
41
174
assert (dList.get_at (4 ) == 2 );
42
175
assert (dList.get_at (5 ) == 1 );
43
176
assert (dList.get_at (6 ) == 5 );
44
- std::cout << " check test passed!" << std::endl;
45
177
dList.print ();
46
178
dList.print_reverse ();
47
179
dList.reverse (); // 5 1 2 7 4 9 3
48
- std::cout << " reverse test passed" << std::endl;
49
180
assert (dList.get_at (0 ) == 5 );
50
181
assert (dList.get_at (1 ) == 1 );
51
182
assert (dList.get_at (2 ) == 2 );
0 commit comments