69int main(
int argc,
char **argv[])
74 long double b = 3352.9933;
75 char c[15] =
"Rock-n-roll";
77 cout <<
"\n\n\n==========================================================\n";
78 cout <<
"Testing the Variant Class\n";
79 cout <<
"==========================================================\n";
90 cout <<
"Variants initiated" << endl;
94 cout <<
"\n\n\n==========================================================\n";
95 cout <<
"Checking Basic Assignment Functions\n";
96 cout <<
"==========================================================\n";
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;
104 cout <<
"myVariant2: ["<< b <<
"] == [" << (
long int)myVariant2 <<
"]" << myVariant2.
GetDataTypeName() << endl;
105 cout <<
"myVariant2: ["<< b <<
"] == [" << myVariant2 <<
"]" << myVariant2.
GetDataTypeName() << endl;
109 cout <<
"myVariant3: ["<< c <<
"] == [" << (
char*)myVariant3 <<
"]" << myVariant3.
GetDataTypeName() << endl;
110 cout <<
"myVariant3: ["<< c <<
"] == [" << myVariant3 <<
"]" << myVariant3.
GetDataTypeName() << endl;
112 cout <<
"Implicit Variant:" <<
Variant(
"IMPLITIC") << endl;
117 cout <<
"\n\n\n==========================================================\n";
118 cout <<
"Checking Basic Arithmetic operations.\n";
119 cout <<
"==========================================================\n";
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;
127 cout <<
"V3 + 'cat': [" << myVariant3 +
Variant(
"cat") <<
"] " << endl;
134 cout <<
"\n\n\n==========================================================\n";
135 cout <<
"Check Basic Arithmetic operations with Assignment\n";
136 cout <<
"==========================================================\n";
138 myVariant3 = myVariant2 + myVariant1;
139 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
141 myVariant3 = myVariant2 - myVariant1;
142 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
144 myVariant3 = myVariant2 * myVariant1;
145 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
147 myVariant3 = myVariant2 / myVariant1;
148 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
150 myVariant3 = myVariant1 *
Variant(2);
151 cout <<
"V3: " << myVariant3 <<
" " << myVariant3.
GetDataTypeName() << endl;
154 cout <<
"Testing with int" << endl;
156 cout <<
"V2: [" << myVariant2 <<
"]" << endl;
159 cout <<
"Implicit:" <<
Variant(
"Implicit") << endl;
161 myVariant2 =
"somebody ";
162 cout <<
"V2: [" << myVariant2 <<
"]" << endl;
165 myVariant2 =
Variant(
"anybody ");
166 cout <<
"V2: [" << myVariant2 <<
"]" << endl;
172 cout <<
"\n\n\n==========================================================\n";
173 cout <<
"Checking <, >, ==, etc.\n";
174 cout <<
"==========================================================\n";
177 myVariant1 = 34252.3;
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;
198 myVariant1 =
"Something";
199 myVariant2 =
"Anything";
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;
222 cout <<
"\n\n\n==========================================================\n";
223 cout <<
"Checking Variable Type\n";
224 cout <<
"==========================================================\n";
226 char* name =
"Apostrophe";
228 cout <<
"Apostrophe: "<< name <<
" " << myVariant2 << myVariant2.
GetDataTypeName() << endl;
231 cout <<
"Nonesty: "<< flush << myVariant3 << flush << myVariant3.
GetDataTypeName() << endl;
242 cout <<
"\n\n\n==========================================================\n";
243 cout <<
"Checking List Type\n";
244 cout <<
"==========================================================\n";
252 list1->PushFront(myVariant1);
253 list1->PushFront(myVariant2);
254 list1->PushFront(myVariant3);
259 cout <<
"MyVariant4 has type: " << myVariant4.
GetDataTypeName() << endl;;
262 cout <<
"Printing the list: [" << endl;
263 cout << myVariant4 << endl;
264 cout <<
"] List printed." << endl;
268 cout <<
"Testing copying...." << endl;
269 Variant myVariant5 = myVariant4;
271 cout <<
"Type of myVariant5: " << myVariant5.
GetDataTypeName() << endl;
274 cout <<
"List copied. Printing copy:" << endl;
275 cout << myVariant5 << endl;
279 cout <<
"Finished" << endl;