-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueue.TestDriver.cpp
More file actions
160 lines (136 loc) · 4.87 KB
/
Queue.TestDriver.cpp
File metadata and controls
160 lines (136 loc) · 4.87 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
//Programmer: Jiefeng Yang
// Programmer's ID: 1791121
#include <iostream>
#include <string>
using namespace std;
#include <cassert>
#include <cstdlib>
#include "Queue.h"
#include "Queue.h" //#ifndef test
/*int main( )
{
//String
Queue<string> strQue;
// Queue size test
cout << "Queue test: string " << endl;
cout << "----------------------------" << endl;
cout << "Test Queue::size" << endl;
cout << "Expected: 0" << endl;
cout << "Actual: " << strQue.size() << endl;
assert(0 == strQue.size());
cout << "Pass." << endl << endl;
// Queue peek and push test
cout << "Test Queue::push & Queue::front" << endl;
strQue.push("A");
cout << "Expected: A" << endl;
cout << "Actual: " << strQue.front() << endl;
assert("A" == strQue.front());
cout << "Pass." << endl << endl;
// Queue pop test
cout << "Test Queue::pop" << endl;
strQue.push("B");
cout << "Before pop: A" << endl;
strQue.pop();
cout << "After pop: " << strQue.front() << endl;
assert("B" == strQue.front());
cout << "Pass." << endl << endl;
// Queue back test
cout << "Test Queue::back" << endl;
strQue.push("B");
cout << "Expected: B" << endl;
cout << "Actual: " << strQue.back() << endl;
assert("B" == strQue.back());
cout << "Pass." << endl << endl;
// Copy constructor
cout << "Test copy constructor" << endl;
Queue<string> strQue1 = strQue;
assert(strQue1.size() == strQue.size());
cout << "Pass." << endl << endl;
// Assignment operator
cout << "Test assignment operator" << endl;
Queue<string>strQue2; strQue2 = strQue;
while (!strQue.empty())
{
assert(strQue.front() == strQue2.front());
assert(strQue.back() == strQue2.back());
strQue.pop();
strQue2.pop();
}
cout << "Pass." << endl << endl;
// Queue clear and empty test
cout << "Test Queue::clear & empty" << endl;
strQue.clear();
assert(true == strQue.empty());
cout << "Pass." << endl << endl;
// Constant object test
cout << "Constant object test:" << endl;
strQue.push("A");
strQue.push("B");
const Queue<string> strQue3 = strQue;
cout << "size: " << strQue.size() << endl;
assert(strQue3.size() == strQue.size());
assert(strQue3.size() == strQue.size());
assert(strQue3.front() == strQue.front());
assert(strQue3.back() == strQue.back());
cout << "It's NOT empty!" << endl;
// Double
Queue<double> doubleQue;
cout << "Queue test: double" << endl;
cout << "-------------------" << endl;
// Queue size test
cout << "Test Queue::size" << endl;
cout << "Expected: 0" << endl;
cout << "Actual: " << doubleQue.size() << endl;
assert(0 == doubleQue.size());
cout << "Pass." << endl << endl;
// Queue push and front test
cout << "Test Queue::push & Queue::front" << endl;
doubleQue.push(1.6);
cout << "Expected: 1.6" << endl;
cout << "Actual: " << doubleQue.front() << endl;
assert(1.6 == doubleQue.front());
cout << "Pass." << endl << endl;
// Queue pop test
cout << "Test Stack::pop" << endl;
doubleQue.push(2.8);
cout << "Before pop: 1.6" << endl;
doubleQue.pop();
cout << "After pop: " << doubleQue.front() << endl;
assert(2.8 == doubleQue.front());
cout << "Pass." << endl << endl;
// Queue back test
cout << "Test Queue::back" << endl;
doubleQue.push(2.8);
cout << "Expected: 2.8" << endl;
cout << "Actual: " << doubleQue.back() << endl;
assert(2.8 == doubleQue.back());
cout << "Pass." << endl << endl;
// Copy constructor
cout << "Test copy constructor" << endl;
Queue<double> doubleQue2 = doubleQue;
assert(doubleQue2.size() == doubleQue.size());
cout << "Pass." << endl << endl;
// Assignment operator
cout << "Test assignment operator" << endl;
Queue<double>doubleQue3; doubleQue3 = doubleQue;
assert(doubleQue3.size() == doubleQue.size());
assert(doubleQue3.front() == doubleQue.front());
cout << "Pass." << endl << endl;
// Stack clear and empty test
cout << "Test Queue::clear & empty" << endl;
doubleQue.clear();
assert(true == doubleQue.empty());
cout << "Pass." << endl << endl;
// Constant object test
doubleQue.push(1.6);
doubleQue.push(2.8);
cout << "Constant object test:" << endl;
const Queue<double> doubleQue4 = doubleQue;
cout << "size: " << doubleQue4.size() << endl;
assert(doubleQue4.size() == doubleQue.size());
assert(doubleQue4.empty() == doubleQue.empty());
assert(doubleQue4.back() == doubleQue.back());
assert(doubleQue4.front() == doubleQue.front());
cout << "It's NOT empty!" << endl;
cout << "Done!";
}*/