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
|
#include <cassert>
#include "tuple.h"
#ifndef NO_STRING
#include <string>
#endif
int main(int argc, char** argv)
{
tuple<int,int> p;
int x=0, y=0;
p = tuple<int,int>(1,2);
#ifndef NO_IO
std::cout << p << std::endl;
#endif
p = tuple<int,int>(3,4);
#ifndef NO_IO
std::cout << p << std::endl;
std::cout << x << "," << y << std::endl;
#endif
assert(x==0);
assert(y==0);
tie(x,y) = p;
#ifndef NO_IO
std::cout << x << "," << y << std::endl;
#endif
assert(x==3);
assert(y==4);
p = tuple<int,int>(5,6);
#ifndef NO_IO
std::cout << p << std::endl;
std::cout << x << "," << y << std::endl;
#endif
assert(x==3);
assert(y==4);
x = 42; y = 69;
#ifndef NO_IO
std::cout << p << std::endl;
std::cout << x << "," << y << std::endl;
#endif
assert(x==42);
assert(y==69);
tuple<bool,bool> q;
q = tuple<bool,bool>(true,false);
#ifndef NO_IO
std::cout << q << std::endl;
#endif
bool foo, bar;
tie(foo,bar) = q;
#ifndef NO_IO
std::cout << foo << " " << bar << std::endl;
#endif
assert(foo);
assert(!bar);
tuple<int> one;
one = 69;
#ifndef NO_IO
std::cout << one << std::endl;
#endif
tie(x) = one;
#ifndef NO_IO
std::cout << x << std::endl;
#endif
assert(x==69);
#ifndef NO_STRING
tuple<int,std::string,int> three;
three = tuple<int,std::string,int>(42," does not equal ",69);
#ifndef NO_IO
std::cout << three << std::endl;
#endif
tuple<std::string,int,std::string,int> four;
four = tuple<std::string,int,std::string,int>("and ", 42," is less than ",69);
#ifndef NO_IO
std::cout << four << std::endl;
#endif
tuple<std::string,std::string> msg;
msg = tuple<std::string,std::string>("hello","world");
#ifndef NO_IO
std::cout << msg << std::endl;
#endif
std::string xx,yy;
tie(xx,yy) = tuple<std::string,std::string>("hello","world");
#ifndef NO_IO
std::cout << xx << " " << yy << std::endl;
#endif
assert(xx=="hello");
assert(yy=="world");
#endif
}
|