@@ -6,21 +6,154 @@ int main(int argc, char* argv[]){
66 DoublyLinkedList<int > dList;
77 assert (dList.size () == 0 );
88 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 );
14105 dList.push_at (2 , 4 ); // 3 9 4 5 2 1
15106 assert (dList.size () == 6 );
16107 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
19153 dList.pop_front (); // 9 4 5 2
20154 assert (dList.size () == 4 );
21155 dList.pop_at (2 ); // 9 4 2
22156 assert (dList.size () == 3 );
23- std::cout << " pop test passed!" << std::endl;
24157 dList.push_front (3 );
25158 dList.push_back (1 );
26159 dList.push_back (6 );
@@ -41,11 +174,9 @@ int main(int argc, char* argv[]){
41174 assert (dList.get_at (4 ) == 2 );
42175 assert (dList.get_at (5 ) == 1 );
43176 assert (dList.get_at (6 ) == 5 );
44- std::cout << " check test passed!" << std::endl;
45177 dList.print ();
46178 dList.print_reverse ();
47179 dList.reverse (); // 5 1 2 7 4 9 3
48- std::cout << " reverse test passed" << std::endl;
49180 assert (dList.get_at (0 ) == 5 );
50181 assert (dList.get_at (1 ) == 1 );
51182 assert (dList.get_at (2 ) == 2 );
0 commit comments