70{
71
72
73 long int a = 12341;
74 long double b = 3352.9933;
75 char c[15] = "Rock-n-roll";
76
77 cout << "\n\n\n==========================================================\n";
78 cout << "Testing the Variant Class\n";
79 cout << "==========================================================\n";
80
81
85
86
87
88 myVariant1=a;
89 myVariant2=a;
90 cout << "Variants initiated" << endl;
91
92
93
94 cout << "\n\n\n==========================================================\n";
95 cout << "Checking Basic Assignment Functions\n";
96 cout << "==========================================================\n";
97
98 cout <<
"myVariant1: ["<< a <<
"] == [" << (
long int)myVariant1 <<
"] " << myVariant1.
GetDataTypeName() << endl;
99 cout <<
"myVariant1: ["<< a <<
"] == [" << myVariant1 <<
"] " << myVariant1.
GetDataTypeName() << endl;
100 cout <<
"myVariant2: ["<< a <<
"] == [" << (
long int)myVariant2 <<
"]" << myVariant2.
GetDataTypeName() << endl;
101 cout <<
"myVariant2: ["<< a <<
"] == [" << myVariant2 <<
"]" << myVariant2.
GetDataTypeName() << endl;
102
103 myVariant2 = b;
104 cout <<
"myVariant2: ["<< b <<
"] == [" << (
long int)myVariant2 <<
"]" << myVariant2.
GetDataTypeName() << endl;
105 cout <<
"myVariant2: ["<< b <<
"] == [" << myVariant2 <<
"]" << myVariant2.
GetDataTypeName() << endl;
106
107
108 myVariant3 = c;
109 cout <<
"myVariant3: ["<< c <<
"] == [" << (
char*)myVariant3 <<
"]" << myVariant3.
GetDataTypeName() << endl;
110 cout <<
"myVariant3: ["<< c <<
"] == [" << myVariant3 <<
"]" << myVariant3.
GetDataTypeName() << endl;
111
112 cout <<
"Implicit Variant:" <<
Variant(
"IMPLITIC") << endl;
113
114
115
116
117 cout << "\n\n\n==========================================================\n";
118 cout << "Checking Basic Arithmetic operations.\n";
119 cout << "==========================================================\n";
120
121 cout << "V1 + V1: ["<< a + a << "] == [" << myVariant1 + myVariant1 << "]\n";
122 cout << "V1 + V2: ["<< a + b << "] == [" << myVariant1 + myVariant2 << "] " << endl;
123 cout << "V1 - V2: ["<< a - b << "] == [" << myVariant1 - myVariant2 << "] " << endl;
124 cout << "V1 * V2: ["<< a * b << "] == [" << myVariant1 * myVariant2 << "] " << endl;
125 cout << "V1 / V2: ["<< a / b << "] == [" << myVariant1 / myVariant2 << "] " << endl;
126
127 cout <<
"V3 + 'cat': [" << myVariant3 +
Variant(
"cat") <<
"] " << endl;
128
129
130
131
132
133
134 cout << "\n\n\n==========================================================\n";
135 cout << "Check Basic Arithmetic operations with Assignment\n";
136 cout << "==========================================================\n";
137
138 myVariant3 = myVariant2 + myVariant1;
139 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
140
141 myVariant3 = myVariant2 - myVariant1;
142 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
143
144 myVariant3 = myVariant2 * myVariant1;
145 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
146
147 myVariant3 = myVariant2 / myVariant1;
148 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
149
150 myVariant3 = myVariant1 *
Variant(2);
151 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
152
153
154 cout << "Testing with int" << endl;
156 cout << "V2: [" << myVariant2 << "]" << endl;
157
158
159 cout <<
"Implicit:" <<
Variant(
"Implicit") << endl;
160
161 myVariant2 = "somebody ";
162 cout << "V2: [" << myVariant2 << "]" << endl;
163
164
165 myVariant2 =
Variant(
"anybody ");
166 cout << "V2: [" << myVariant2 << "]" << endl;
167
168
169
170
171
172 cout << "\n\n\n==========================================================\n";
173 cout << "Checking <, >, ==, etc.\n";
174 cout << "==========================================================\n";
175
176
177 myVariant1 = 34252.3;
178 myVariant2 = 342;
179
180
181 cout << "(myVariant1 < myVariant2): "<< myVariant1 << " < " << myVariant2 << " " << (myVariant1 < myVariant2) << endl;
182 cout << "(myVariant1 > myVariant2): "<< myVariant1 << " > " << myVariant2 << " " << (myVariant1 > myVariant2) << endl;
183 cout << "(myVariant1 <= myVariant2): "<< myVariant1 << " <= " << myVariant2 << " " << (myVariant1 <= myVariant2) << endl;
184 cout << "(myVariant1 >= myVariant2): "<< myVariant1 << " >= " << myVariant2 << " " << (myVariant1 >= myVariant2) << endl;
185 cout << "(myVariant1 == myVariant2): "<< myVariant1 << " == " << myVariant2 << " " << (myVariant1 == myVariant2) << endl;
186 cout << "(myVariant1 == myVariant1): "<< myVariant1 << " == " << myVariant1 << " " << (myVariant1 == myVariant1) << endl;
187 cout << "(myVariant2 == myVariant2): "<< myVariant2 << " == " << myVariant2 << " " << (myVariant2 == myVariant2) << endl;
188 cout << "(myVariant2 == myVariant1): "<< myVariant2 << " == " << myVariant1 << " " << (myVariant2 == myVariant1) << endl;
189 cout << "(myVariant1 != myVariant2): "<< myVariant1 << " != " << myVariant2 << " " << (myVariant1 != myVariant2) << endl;
190 cout << "(myVariant1 != myVariant1): "<< myVariant1 << " != " << myVariant1 << " " << (myVariant1 != myVariant1) << endl;
191 cout << "(myVariant2 != myVariant2): "<< myVariant2 << " != " << myVariant2 << " " << (myVariant2 != myVariant2) << endl;
192 cout << "(myVariant2 != myVariant1): "<< myVariant2 << " != " << myVariant1 << " " << (myVariant2 != myVariant1) << endl;
193 cout << "(myVariant2 < myVariant1): "<< myVariant2 << " < " << myVariant1 << " " << (myVariant2 < myVariant1) << endl;
194 cout << "(myVariant2 > myVariant1): "<< myVariant2 << " > " << myVariant1 << " " << (myVariant2 > myVariant1) << endl;
195 cout << "(myVariant2 <= myVariant1): "<< myVariant2 << " <= " << myVariant1 << " " << (myVariant2 <= myVariant1) << endl;
196 cout << "(myVariant2 >= myVariant1): "<< myVariant2 << " >= " << myVariant1 << " " << (myVariant2 >= myVariant1) << endl;
197
198 myVariant1 = "Something";
199 myVariant2 = "Anything";
200
201 cout << "(myVariant1 < myVariant2): "<< myVariant1 << " < " << myVariant2 << " " << (myVariant1 < myVariant2) << endl;
202 cout << "(myVariant1 > myVariant2): "<< myVariant1 << " > " << myVariant2 << " " << (myVariant1 > myVariant2) << endl;
203 cout << "(myVariant1 <= myVariant2): "<< myVariant1 << " <= " << myVariant2 << " " << (myVariant1 <= myVariant2) << endl;
204 cout << "(myVariant1 >= myVariant2): "<< myVariant1 << " >= " << myVariant2 << " " << (myVariant1 >= myVariant2) << endl;
205 cout << "(myVariant1 == myVariant2): "<< myVariant1 << " == " << myVariant2 << " " << (myVariant1 == myVariant2) << endl;
206 cout << "(myVariant1 == myVariant1): "<< myVariant1 << " == " << myVariant1 << " " << (myVariant1 == myVariant1) << endl;
207 cout << "(myVariant2 == myVariant2): "<< myVariant2 << " == " << myVariant2 << " " << (myVariant2 == myVariant2) << endl;
208 cout << "(myVariant2 == myVariant1): "<< myVariant2 << " == " << myVariant1 << " " << (myVariant2 == myVariant1) << endl;
209 cout << "(myVariant1 != myVariant2): "<< myVariant1 << " != " << myVariant2 << " " << (myVariant1 != myVariant2) << endl;
210 cout << "(myVariant1 != myVariant1): "<< myVariant1 << " != " << myVariant1 << " " << (myVariant1 != myVariant1) << endl;
211 cout << "(myVariant2 != myVariant2): "<< myVariant2 << " != " << myVariant2 << " " << (myVariant2 != myVariant2) << endl;
212 cout << "(myVariant2 != myVariant1): "<< myVariant2 << " != " << myVariant1 << " " << (myVariant2 != myVariant1) << endl;
213 cout << "(myVariant2 < myVariant1): "<< myVariant2 << " < " << myVariant1 << " " << (myVariant2 < myVariant1) << endl;
214 cout << "(myVariant2 > myVariant1): "<< myVariant2 << " > " << myVariant1 << " " << (myVariant2 > myVariant1) << endl;
215 cout << "(myVariant2 <= myVariant1): "<< myVariant2 << " <= " << myVariant1 << " " << (myVariant2 <= myVariant1) << endl;
216 cout << "(myVariant2 >= myVariant1): "<< myVariant2 << " >= " << myVariant1 << " " << (myVariant2 >= myVariant1) << endl;
217
218
219
220
221
222 cout << "\n\n\n==========================================================\n";
223 cout << "Checking Variable Type\n";
224 cout << "==========================================================\n";
225
226 char* name = "Apostrophe";
228 cout << "Apostrophe: "<< name << " " << myVariant2 << myVariant2.GetDataTypeName() << endl;
229
231 cout <<
"Nonesty: "<< flush << myVariant3 << flush << myVariant3.
GetDataTypeName() << endl;
232
233
234
235
236
237
238
239
240
241
242 cout << "\n\n\n==========================================================\n";
243 cout << "Checking List Type\n";
244 cout << "==========================================================\n";
245
246
247
249 myVariant1 = 33;
250
252 list1->PushFront(myVariant1);
253 list1->PushFront(myVariant2);
254 list1->PushFront(myVariant3);
255
258
259 cout <<
"MyVariant4 has type: " << myVariant4.
GetDataTypeName() << endl;;
260
261
262 cout << "Printing the list: [" << endl;
263 cout << myVariant4 << endl;
264 cout << "] List printed." << endl;
265
266
267
268 cout << "Testing copying...." << endl;
269 Variant myVariant5 = myVariant4;
270
271 cout <<
"Type of myVariant5: " << myVariant5.
GetDataTypeName() << endl;
272
273
274 cout << "List copied. Printing copy:" << endl;
275 cout << myVariant5 << endl;
276
277
278
279 cout << "Finished" << endl;
280 return 0;
281}
std::string GetDataTypeName() const
This returns the type as a string.