📄 testdata2.cxx
字号:
{ CopyOnWriteData d("qwerty"); LocalScopeAllocator lo; assert(strcmp(d.getData(lo), "qwerty") == 0); } { CopyOnWriteData e; LocalScopeAllocator lo; assert(strcmp(e.getData(lo), "") == 0); } { CopyOnWriteData d("qwerty"); assert(strcmp(d.logData(), "qwerty") == 0); } { CopyOnWriteData e; assert(strcmp(e.logData(), "") == 0); } { CopyOnWriteData c = "sadfsdf"; CopyOnWriteData d; d = c; assert(c == d); } { string f("asdasd"); CopyOnWriteData d = f; assert(d == f); } { string f("asdasd"); CopyOnWriteData d = f; assert(d.logData() == f); } { CopyOnWriteData d("123"); assert(d.length() == 3); } { CopyOnWriteData d("123"); assert(d[0] == '1'); assert(d[1] == '2'); assert(d[2] == '3'); } { CopyOnWriteData d; d.setBufferSize(7); d = "123456"; assert(d.length() == 6); } { CopyOnWriteData d("theSame1"); //assert(d.compare("theSame2", 7) == 0); } { CopyOnWriteData d("thesame1"); string s("theSame2"); //assert(d.compareNoCase(s.c_str(), s.size()-1) == 0); } { CopyOnWriteData d("theSame1"); CopyOnWriteData e("thesame1"); d.compareNoCase(e); } { CopyOnWriteData d("one"); CopyOnWriteData c("two"); d += c; assert(d == "onetwo"); CopyOnWriteData empt; assert(empt + d == d); assert(empt + d == "onetwo"); assert(empt + "three" == "three"); } { CopyOnWriteData a("one"); CopyOnWriteData b("two"); CopyOnWriteData c("three"); assert(a+b+c == "onetwothree"); } { CopyOnWriteData d("one"); cerr << "one + two = " << (d + "two") << endl; assert((d + "two") == "onetwo"); } { CopyOnWriteData d("asdasdasd"); d.erase(); assert(d.length() == 0); } { CopyOnWriteData d("asdasdasd"); string s = d.convertString(); assert(s == "asdasdasd"); } { CopyOnWriteData ten("10"); assert(ten.convertInt() == 10); CopyOnWriteData neg11(-11); //assert(-11 == neg11.convertInt()); CopyOnWriteData zero("0"); assert(0 == zero.convertInt()); CopyOnWriteData fr("fribble"); assert(0 == fr.convertInt()); CopyOnWriteData e; //assert(0 == e.convertInt()); } { cerr << "!MatchNoReplace!" << endl; CopyOnWriteData d("beforeZZafter"); CopyOnWriteData res; int k = d.match("ZZ", &res); cerr << "Retval: " << k << " res: " << res << " orig: " << d << endl; assert(res == "before"); assert(d == "beforeZZafter"); assert(k == FOUND); } { cerr << "!MatchReplace!" << endl; CopyOnWriteData d("beforeZZafter"); CopyOnWriteData res; int k = d.match("ZZ", &res, true, "YYY"); cerr << "Retval: " << k << " res: " << res << " orig: " << d << endl; assert(res == "before"); assert(d == "YYYafter"); assert(k == FOUND); } { cerr << "!MatchNotFound!" << endl; CopyOnWriteData d("beforeZZafter"); CopyOnWriteData res; int k = d.match("qq", &res); cerr << "Retval: " << k << " res: " << " orig: " << d << endl; assert(res == ""); assert(d == "beforeZZafter"); assert(k == NOT_FOUND); } { cerr << "!MatchNotFound!" << endl; CopyOnWriteData d("beforeZZafter"); CopyOnWriteData res; int k = d.match("qq", &res); cerr << "Retval: " << k << " res: " << " orig: " << d << endl; assert(res == ""); assert(d == "beforeZZafter"); assert(k == NOT_FOUND); } { cerr << "!MatchFirst!" << endl; CopyOnWriteData d("ZZbeforeafter"); CopyOnWriteData res; int k = d.match("ZZ", &res); cerr << "Retval: " << k << " res: " << " orig: " << d << endl; assert(res == ""); assert(d == "ZZbeforeafter"); assert(k == FIRST); } { cerr << "!MatchFirstReplace!" << endl; CopyOnWriteData d("ZZZZbeforeafter"); CopyOnWriteData res; int k = d.match("ZZZZ", &res, true, "QQQ"); cerr << "Retval: " << k << " res: " << res << " orig: " << d << endl; assert(res == ""); assert(d == "QQQbeforeafter"); assert(k == FIRST); } { cerr << "parse test" << endl; CopyOnWriteData d("STUFFijijijMORE STUFFij"); bool matchFail; CopyOnWriteData result = d.parse("ij", &matchFail); cerr << "result = " << result << endl; cerr << "rest = " << d << endl; assert(!matchFail); assert(result == "STUFF"); assert(d == "MORE STUFFij"); } { cerr << "parse test fail" << endl; CopyOnWriteData d("STUFFiiiiiMORE STUFFi"); bool matchFail; CopyOnWriteData result = d.parse("kj", &matchFail); assert(matchFail); assert(result == ""); assert(d == "STUFFiiiiiMORE STUFFi"); } { cerr << "parseOutsideQuotes" << endl; CopyOnWriteData d("STUFFijijijMORE STUFFij"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("ij", true, false, &matchFail); cerr << "result = " << result << endl; cerr << "rest = " << d << endl; assert(!matchFail); assert(result == "STUFF"); assert(d == "MORE STUFFij"); } { cerr << "parseOutsideQuotes test fail" << endl; CopyOnWriteData d("STUFFiiiiiMORE STUFFi"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("kj", true, false, &matchFail); assert(matchFail); assert(result == ""); assert(d == "STUFFiiiiiMORE STUFFi"); } { cerr << "parseOutsideQuotes, quotes" << endl; CopyOnWriteData d("\"iiiiiiNOPEjjjjjj\"STUFFijijijMORE STUFFij"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("ij", true, false, &matchFail); cerr << "result = " << result << endl; cerr << "rest = " << d << endl; assert(!matchFail); assert(result == "\"iiiiiiNOPEjjjjjj\"STUFF"); assert(d == "MORE STUFFij"); } { cerr << "parseOutsideQuotes test fail, quotes" << endl; CopyOnWriteData d("\"iiiiiiNOPEjjjjjj\"STUFFiiiiiMORE STUFFii"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("kj", true, false, &matchFail); assert(matchFail); assert(result == ""); assert(d == "\"iiiiiiNOPEjjjjjj\"STUFFiiiiiMORE STUFFii"); } { cerr << "parseOutsideQuotes, <>" << endl; CopyOnWriteData d("<iiiiiiNOPEjjjjjj>STUFFijijijMORE STUFFij"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("ij", false, true, &matchFail); cerr << "result = " << result << endl; cerr << "rest = " << d << endl; assert(!matchFail); assert(result == "<iiiiiiNOPEjjjjjj>STUFF"); assert(d == "MORE STUFFij"); } { cerr << "parseOutsideQuotes test fail, <>" << endl; CopyOnWriteData d("<iiiiiiNOPEjjjjjj>STUFFiiiiiMORE STUFFii"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("kj", false, true, &matchFail); assert(matchFail); assert(result == ""); assert(d == "<iiiiiiNOPEjjjjjj>STUFFiiiiiMORE STUFFii"); } { cerr << "parseOutsideQuotes, <\"\">" << endl; CopyOnWriteData d("<\"iiiiiiNOPEjjjjjj\">STUFFijijijMORE STUFFij"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("ij", false, true, &matchFail); cerr << "result = " << result << endl; cerr << "rest = " << d << endl; assert(!matchFail); assert(result == "<\"iiiiiiNOPEjjjjjj\">STUFF"); assert(d == "MORE STUFFij"); } { cerr << "parseOutsideQuotes test fail, <\"\">" << endl; CopyOnWriteData d("<\"iiiiiiNOPEjjjjjj\">STUFFiiiiiMORE STUFFii"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("kj", false, true, &matchFail); assert(matchFail); assert(result == ""); assert(d == "<\"iiiiiiNOPEjjjjjj\">STUFFiiiiiMORE STUFFii"); } { cerr << "matchChar" << endl; CopyOnWriteData d("SKIPiiiiiMORE STUFFi"); bool matchFail; CopyOnWriteData result = d.parse("ij", &matchFail); assert(!matchFail); assert(result == "SKIP"); assert(d == "MORE STUFFi"); } { cerr << "parseOutsideQuotes, \"<>\"" << endl; CopyOnWriteData d("\"<iiiiiiNOPEjjjjjj>\"STUFFijijijMORE STUFFij"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("ij", true, false, &matchFail); cerr << "result = " << result << endl; cerr << "rest = " << d << endl; assert(!matchFail); assert(result == "\"<iiiiiiNOPEjjjjjj>\"STUFF"); assert(d == "MORE STUFFij"); } { cerr << "parseOutsideQuotes test fail, \"<>\"" << endl; CopyOnWriteData d("\"<iiiiiiNOPEjjjjjj>\"STUFFiiiiiMORE STUFFii"); bool matchFail; CopyOnWriteData result = d.parseOutsideQuotes("kj", true, false, &matchFail); assert(matchFail); assert(result == ""); assert(d == "\"<iiiiiiNOPEjjjjjj>\"STUFFiiiiiMORE STUFFii"); } { cerr << "matchChar" << endl; CopyOnWriteData d("SKIPiiiiiMORE STUFFi"); bool matchFail; CopyOnWriteData result = d.parse("ij", &matchFail); assert(!matchFail); assert(result == "SKIP"); assert(d == "MORE STUFFi"); } { cerr << "matchChar" << endl; CopyOnWriteData d("SKIPiiiiiMORE STUFFi"); bool matchFail; CopyOnWriteData result = d.parse("kj", &matchFail); assert(matchFail); assert(result == ""); assert(d == "SKIPiiiiiMORE STUFFi"); } { cerr << "getLine" << endl; bool matchFail; CopyOnWriteData d("line 1\r\nline 2\r\nline 3\r\n"); CopyOnWriteData line1 = d.getLine(&matchFail); assert(!matchFail); assert(line1 == "line 1"); CopyOnWriteData line2 = d.getLine(&matchFail); assert(!matchFail); assert(line2 == "line 2"); CopyOnWriteData line3 = d.getLine(&matchFail); assert(!matchFail); assert(line3 == "line 3"); CopyOnWriteData line4 = d.getLine(&matchFail); assert(matchFail); assert(line4 == ""); } { cerr << "removeSpaces" << endl; CopyOnWriteData d(" SPACES "); d.removeSpaces(); assert(d == "SPACES"); d.removeSpaces(); assert(d == "SPACES"); CopyOnWriteData b(" BEFORE"); b.removeSpaces(); assert(b == "BEFORE"); CopyOnWriteData a("AFTER "); a.removeSpaces(); assert(a == "AFTER"); CopyOnWriteData e(" "); e.removeSpaces(); assert(e == ""); } { cerr << "substring" << endl; CopyOnWriteData d("123456789"); assert(d.substring(3, 5) == "45"); assert(d.substring(3, -1) == "456789"); assert(d.substring(3, 3) == ""); assert(d.substring(0, 3) == "123"); assert(d.substring(0, 0) == ""); assert(d.substring(0, -1) == d); } { cerr << "isEqualNoCase" << endl; assert(isEqualNoCase(CopyOnWriteData("MIxed"), CopyOnWriteData("mixed"))); assert(isEqualNoCase(CopyOnWriteData(""), CopyOnWriteData(""))); assert(!isEqualNoCase(CopyOnWriteData(""), CopyOnWriteData("a"))); assert(!isEqualNoCase(CopyOnWriteData("b"), CopyOnWriteData("a"))); assert(isEqualNoCase("MIxed", CopyOnWriteData("mixed"))); assert(isEqualNoCase("", CopyOnWriteData(""))); assert(!isEqualNoCase("", CopyOnWriteData("a"))); assert(!isEqualNoCase("b", CopyOnWriteData("a"))); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -