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 Tue Oct 5 01:09:21 2004 for WvStreams by doxygen 1.3.7