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
|
#include "wvtest.h"
#include "wvstringtable.h"
// BEGIN stringtabletest.cc definition
WVTEST_MAIN("stringtabletest.cc")
{ WvString parm1("Luke\tis one\t\tsexy\tman.");
{
// Basic test
WvStringTable testTable;
WVPASS(testTable["Luke"] == NULL);
WVPASS(testTable.join(" ") == "");
testTable.split(WvString("\t"));
WVPASS(testTable.count() == 2);
WVPASS(testTable.join("\r\n") == "\r\n");
testTable.split(parm1);
WVPASS(testTable.count() == 7);
WVFAIL(testTable.isempty());
WVPASS(testTable["sexy"] != NULL);
testTable.zap();
testTable.split("", "\n ");
testTable.splitstrict("");
testTable.splitstrict(WvString(), "\n\r ");
testTable.split(WvString());
WVPASS(testTable.count() == 2);
}
{
// More complicated test
WvStringTable testTable2;
WVPASS(testTable2.isempty());
testTable2.split(WvString("\t\tTesting"), "\t");
WVFAIL(testTable2.join("\n") == "Testing");
WVPASS(testTable2.count() == 2);
testTable2.zap();
WVPASS(testTable2.isempty());
testTable2.split(WvString("Testing\t\n"), "\n\t");
WVFAIL(testTable2.join("\r\n") == "Testing");
WVPASS(testTable2.count() == 2);
testTable2.splitstrict("\r\n\t ");
WVPASS(testTable2.count() == 7);
testTable2.zap();
testTable2.splitstrict("\t\rTesting2");
WVPASS(testTable2.count() == 3);
testTable2.splitstrict("Testing2\t\r\n", " \t\r\n");
testTable2.split("\n", "\r");
WVPASS(testTable2.count() == 8);
testTable2.splitstrict(parm1, " \t");
testTable2.split(parm1, " \t\r\n", 9);
WVPASS(testTable2.count() == 19);
testTable2.split(parm1, "\t", 2);
WVPASS(testTable2.count() == 21);
WVFAIL(testTable2.join() == "");
}
{
// Different parameters on invoking
WvStringTable testTable3(19);
WVPASS(testTable3.isempty());
testTable3.split(parm1, " \t", 11);
WVPASS(testTable3.count() == 5);
testTable3.splitstrict(parm1, "\t");
WVPASS(testTable3.count() == 10);
testTable3.splitstrict(WvString(), "\r\n", 3);
testTable3.split(WvString(), "\t", 11);
WVPASS(testTable3.count() == 10);
for (int i = 0; i < 256; ++i)
testTable3.split(parm1, " \t\r\n");
WVPASS(testTable3.join(" ").len() == 5676);
WVPASS(testTable3.count() == 1290);
testTable3.split("abdagag \tgaag", "\n");
testTable3.split("\tagagagaga\t", " \t\r\n", 2);
WVPASS(testTable3.count() == 1293);
testTable3.zap();
}
{
// Heap behaviour.
WvString *heapString = new WvString("This is\t\talmost\ndone!\t");
WvStringTable *testTable4 = new WvStringTable(2101);
testTable4->split(*heapString);
WVPASS(testTable4->count() == 5);
testTable4->splitstrict(*heapString);
WVPASS(testTable4->count() == 11);
/*testTable4->zap();
testTable4->splitstrict(WvString("I rock hard"), " ", 2);
WVFAIL((*testTable4)["rock hard"] != NULL);*/
delete testTable4;
WVPASS(!strcmp(heapString->cstr(), "This is\t\talmost\ndone!\t"));
delete heapString;
}
}
// END stringtabletest.cc definition
|