Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

wvstring.t.cc

Go to the documentation of this file.
00001 #include "wvtest.h"
00002 #include "wvstring.h"
00003 
00004 
00005 WVTEST_MAIN()
00006 {
00007     WvString a, b, c(""), d(""), e("hello"), f("Hello"), g(0), h(1), i(1.0),
00008              j(NULL);
00009     
00010     // null
00011     WVFAIL(a);
00012     WVPASS(a == NULL);
00013     WVFAIL(a == "");
00014     WVPASS(a.isnull());
00015     WVPASS(!a);
00016     WVFAIL(!!a);
00017     WVFAIL(a != NULL);
00018     WVPASS(a == b);
00019     WVFAIL(a != b);
00020     WVPASS(a.len() == 0);
00021     
00022     // blank
00023     WVPASS(c);
00024     WVPASS(c == "");
00025     WVFAIL(c == NULL);
00026     WVFAIL(c.isnull());
00027     WVPASS(!c);
00028     WVFAIL(!!c);
00029     WVPASS(c == d);
00030     WVFAIL(c != d);
00031     WVFAIL(c == a);
00032     WVPASS(c != a);
00033     
00034     // real
00035     WVPASS(e);
00036     WVPASS(e == "hello");
00037     WVFAIL(e == "Hello");
00038     WVFAIL(e == f);
00039     WVFAIL(e+0 == f+0); // not a wvstring, == now compares pointers!
00040     WVPASS(e+0 == e+0);
00041     WVPASS(WvString(e+1) == "ello");
00042     WVPASS(WvString(e+1) == f+1);
00043     
00044     // numbers
00045     WVPASS(g == "0");
00046     WVPASS(h == "1");
00047     WVPASS(i == "1");
00048     WVFAIL(h != i);
00049     WVPASS(i.num() == 1);
00050     WVPASS(WvString(-1).num() == -1);
00051     
00052     // silly NULL crap should at least be well-defined
00053     WVPASS(j == "0");
00054 }
00055 
00056 
00057 WVTEST_MAIN()
00058 {
00059     WvString a1, b1, c1(""), d1(""), e1("hello"), f1("Hello"), g1(0),
00060                 h1(1), i1(1.0);
00061     WvString a2(a1), b2(b1), c2(c1), d2(d1), e2(e1), f2(f1), g2(g1), 
00062                 h2(h1), i2(i1);
00063     
00064     // if we didn't crash yet, we're halfway there!
00065     
00066     // equivalent pointers
00067     WVPASS(e1+0 == e2+0);
00068     WVPASS(e1.edit()+0 != e2+0);
00069     const char *olde1 = e1;
00070     { WvString x(e1); } // copy and destroy
00071     WVPASS(e1.edit() == olde1); // no unnecessary copies
00072     
00073     // make sure values are equivalent
00074     WVPASS(a1 == a2);
00075     WVPASS(b1 == b2);
00076     WVPASS(c1 == c2);
00077     WVPASS(d1 == d2);
00078     WVPASS(e1 == e2);
00079     WVPASS(f1 == f2);
00080     WVPASS(g1 == g2);
00081     WVPASS(h1 == h2);
00082     WVPASS(i1 == i2);
00083     WVFAIL(a2 == c2);
00084     
00085     // null/empty assignment
00086     a2 = c2;
00087     WVPASS(a2 == d1);
00088     d2 = b2;
00089     WVPASS(d2 == a1);
00090 }
00091 
00092 
00093 WVTEST_MAIN()
00094 {
00095     WvString a, b, c(""), d("hello");
00096     
00097     // append
00098     a.append(b);
00099     b.append(c);
00100     c.append(d);
00101     d.append(a);
00102     WVPASS(a == NULL);
00103     WVPASS(b == "");
00104     WVPASS(c == "hello");
00105     WVPASS(d == "hello");
00106 }
00107 
00108 
00109 WVTEST_MAIN()
00110 {
00111     WvString a, b, c(""), d("hello");
00112     
00113     // basic formatter
00114     WvString x("%s%s", a, b); // undefined, but shouldn't crash
00115     WVPASS(WvString("%s%s", c, d) == "hello");
00116     WVPASS(WvString("%s%s", d, d) == "hellohello");
00117     
00118     // format d, then assign to d
00119     d = WvString("%s%s%s%s", d, d, d, d);
00120     WVPASS(d == "hellohellohellohello");
00121     d = WvString(d);
00122     WVPASS(d == "hellohellohellohello");
00123     WVPASS(d.len() == 20);
00124 }
00125 
00126 
00127 WVTEST_MAIN()
00128 {
00129     // fancy formatter tests
00130     WVPASS(WvString("%s") == "%s");
00131     WVPASS(WvString("%%s") == "%%s");
00132     WVPASS(WvString("%s", "x") == "x");
00133     WVPASS(WvString("%%s", "x") == "%s");
00134     WVPASS(WvString("%-5s", "a") == "a    ");
00135     WVPASS(WvString("%5s", "a") == "    a");
00136     WVPASS(WvString("%3s", "hello") == "hello");
00137     WVPASS(WvString("%-3s", "hello") == "hello");
00138     WVPASS(WvString("%.3s", "hello") == "hel");
00139     WVPASS(WvString("%-6.3s", "hello") == "hel   ");
00140     WVPASS(WvString("%6.3s", "hello") == "   hel");
00141     WVPASS(WvString("%6.3s", "a") == "     a");
00142 }

Generated on Sat Mar 13 14:55:58 2004 for WvStreams by doxygen 1.3.6-20040222