📄 testdata2.cxx
字号:
assert(dotEleven.convertDouble() == 0.11); Data dEleven("0.11"); assert(dEleven.convertDouble() == 0.11); } { cerr << "!MatchNoReplace!" << endl; Data d("beforeZZafter"); Data 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; Data d("beforeZZafter"); Data 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; Data d("beforeZZafter"); Data 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; Data d("beforeZZafter"); Data 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; Data d("ZZbeforeafter"); Data 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; Data d("ZZZZbeforeafter"); Data 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; Data d("STUFFijijijMORE STUFFij"); bool matchFail; Data 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; Data d("STUFFiiiiiMORE STUFFi"); bool matchFail; Data result = d.parse("kj", &matchFail); assert(matchFail); assert(result == ""); assert(d == "STUFFiiiiiMORE STUFFi"); } { cerr << "parseOutsideQuotes" << endl; Data d("STUFFijijijMORE STUFFij"); bool matchFail; Data 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; Data d("STUFFiiiiiMORE STUFFi"); bool matchFail; Data result = d.parseOutsideQuotes("kj", true, false, &matchFail); assert(matchFail); assert(result == ""); assert(d == "STUFFiiiiiMORE STUFFi"); } { cerr << "parseOutsideQuotes, quotes" << endl; Data d("\"iiiiiiNOPEjjjjjj\"STUFFijijijMORE STUFFij"); bool matchFail; Data 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; Data d("\"iiiiiiNOPEjjjjjj\"STUFFiiiiiMORE STUFFii"); bool matchFail; Data result = d.parseOutsideQuotes("kj", true, false, &matchFail); assert(matchFail); assert(result == ""); assert(d == "\"iiiiiiNOPEjjjjjj\"STUFFiiiiiMORE STUFFii"); } { cerr << "parseOutsideQuotes, <>" << endl; Data d("<iiiiiiNOPEjjjjjj>STUFFijijijMORE STUFFij"); bool matchFail; Data 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; Data d("<iiiiiiNOPEjjjjjj>STUFFiiiiiMORE STUFFii"); bool matchFail; Data result = d.parseOutsideQuotes("kj", false, true, &matchFail); assert(matchFail); assert(result == ""); assert(d == "<iiiiiiNOPEjjjjjj>STUFFiiiiiMORE STUFFii"); } { cerr << "parseOutsideQuotes, <\"\">" << endl; Data d("<\"iiiiiiNOPEjjjjjj\">STUFFijijijMORE STUFFij"); bool matchFail; Data 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; Data d("<\"iiiiiiNOPEjjjjjj\">STUFFiiiiiMORE STUFFii"); bool matchFail; Data result = d.parseOutsideQuotes("kj", false, true, &matchFail); assert(matchFail); assert(result == ""); assert(d == "<\"iiiiiiNOPEjjjjjj\">STUFFiiiiiMORE STUFFii"); } { cerr << "matchChar" << endl; Data d("SKIPiiiiiMORE STUFFi"); bool matchFail; Data result = d.parse("ij", &matchFail); assert(!matchFail); assert(result == "SKIP"); assert(d == "MORE STUFFi"); } { cerr << "parseOutsideQuotes, \"<>\"" << endl; Data d("\"<iiiiiiNOPEjjjjjj>\"STUFFijijijMORE STUFFij"); bool matchFail; Data 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; Data d("\"<iiiiiiNOPEjjjjjj>\"STUFFiiiiiMORE STUFFii"); bool matchFail; Data result = d.parseOutsideQuotes("kj", true, false, &matchFail); assert(matchFail); assert(result == ""); assert(d == "\"<iiiiiiNOPEjjjjjj>\"STUFFiiiiiMORE STUFFii"); } { cerr << "matchChar" << endl; Data d("SKIPiiiiiMORE STUFFi"); bool matchFail; Data result = d.parse("ij", &matchFail); assert(!matchFail); assert(result == "SKIP"); assert(d == "MORE STUFFi"); } { cerr << "matchChar" << endl; Data d("SKIPiiiiiMORE STUFFi"); bool matchFail; Data result = d.parse("kj", &matchFail); assert(matchFail); assert(result == ""); assert(d == "SKIPiiiiiMORE STUFFi"); } { cerr << "getLine" << endl; bool matchFail; Data d("line 1\r\nline 2\r\nline 3\r\n"); Data line1 = d.getLine(&matchFail); assert(!matchFail); assert(line1 == "line 1"); Data line2 = d.getLine(&matchFail); assert(!matchFail); assert(line2 == "line 2"); Data line3 = d.getLine(&matchFail); assert(!matchFail); assert(line3 == "line 3"); Data line4 = d.getLine(&matchFail); assert(matchFail); assert(line4 == ""); } { cerr << "removeSpaces" << endl; Data d(" SPACES "); assert(d.removeSpaces() == "SPACES"); assert(d.removeSpaces() == "SPACES"); Data b(" BEFORE"); assert(b.removeSpaces() == "BEFORE"); Data a("AFTER "); assert(a.removeSpaces() == "AFTER"); Data e(" "); assert(e.removeSpaces() == ""); } { cerr << "substring" << endl; Data 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(Data("MIxed"), Data("mixed"))); assert(isEqualNoCase(Data(""), Data(""))); assert(!isEqualNoCase(Data(""), Data("a"))); assert(!isEqualNoCase(Data("b"), Data("a"))); assert(isEqualNoCase("MIxed", Data("mixed"))); assert(isEqualNoCase("", Data(""))); assert(!isEqualNoCase("", Data("a"))); assert(!isEqualNoCase("b", Data("a"))); } } { { assert(CopyOnWriteData(0) == "0"); assert(CopyOnWriteData(1) == "1"); assert(CopyOnWriteData(-1) == "-1"); assert(CopyOnWriteData(11) == "11"); assert(CopyOnWriteData(1234567) == "1234567"); assert(CopyOnWriteData(-1234567) == "-1234567"); } { CopyOnWriteData mixed("MiXed"); mixed.lowercase(); assert(mixed == "mixed"); mixed.uppercase(); assert(mixed == "MIXED"); CopyOnWriteData e; e.uppercase(); assert(e == ""); CopyOnWriteData m("1234!@#$!@aA#$2354"); m.lowercase(); assert(m == "1234!@#$!@aa#$2354"); m.uppercase(); assert(m == "1234!@#$!@AA#$2354"); } { CopyOnWriteData e(""); cerr << e.find("") << endl; assert(e.find("") == 0); assert(e.find("a") == CopyOnWriteData::npos); CopyOnWriteData d; assert(d.find("") == 0); assert(d.find("a") == CopyOnWriteData::npos); CopyOnWriteData f("asdfasdfrafs"); cerr << f.find("") << endl; assert(f.find("") == CopyOnWriteData::npos); assert(f.find("a") == 0); assert(f.find("asdfasdfrafs") == 0); assert(f.find("fs") == 10); assert(f.find("fr") == 7); assert(f.find("...") == CopyOnWriteData::npos); assert(f.find("waytoolargetofind") == CopyOnWriteData::npos); assert(f.find(CopyOnWriteData("")) == CopyOnWriteData::npos); assert(f.find(CopyOnWriteData("a")) == 0); assert(f.find(CopyOnWriteData("asdfasdfrafs")) == 0); assert(f.find(CopyOnWriteData("fs")) == 10); assert(f.find(CopyOnWriteData("fr")) == 7); } { CopyOnWriteData empt; CopyOnWriteData empt1; assert(empt.length() == 0); assert(empt == empt); assert(empt == empt1); assert(empt1 == empt); assert(empt1 == ""); assert(!(empt != empt)); assert(!(empt != empt1)); assert(!(empt1 != empt)); assert(!(empt1 != "")); assert("" == empt1); assert("sdf" != empt1); assert(CopyOnWriteData("SAfdsaf") != empt1); empt = empt; empt = empt1; empt = "sdfasf"; } { CopyOnWriteData a("a"); CopyOnWriteData b("b"); assert(a != b); assert(a < b); a = b; assert(a==b); CopyOnWriteData c(a); assert(c==a); assert(c==b); assert(a==b); } { char* tmp = "sadfasdf"; CopyOnWriteData c(tmp, strlen(tmp)); CopyOnWriteData d(c); CopyOnWriteData e(string("sdgdsg")); assert(c < e); assert(e > c); assert(c < "zzz"); assert(c > "aaa"); assert(!(c > c)); assert(!(c < c)); } { char* tmp = "sadfasdf"; CopyOnWriteData c(tmp, 4); assert(c == "sadf"); } { CopyOnWriteData d("qwerty"); char buf[10]; assert(strcmp(d.getData(buf, 10), "qwerty") == 0); assert(strcmp(d.getData(buf, 2), "q") == 0); assert(strcmp(d.getData(buf, 1), "") == 0); CopyOnWriteData e; assert(strcmp(e.getData(buf, 10), "") == 0); assert(strcmp(e.getData(buf, 2), "") == 0); assert(strcmp(e.getData(buf, 1), "") == 0); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -