/
lasersquad
/
DynamicArrays
Обзор
Документация
Войти
/
lasersquad
/
DynamicArrays
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
dynamicarrays/tests/FunctionsTest.cpp
701 строка
24 KB
lasersquad0
Added tests for ExctractFileExt, DelSPCRLF, DelCRLF, Trim functions
12 май 2025, 17:38
12 май 2025, 17:38
5f569f9
Код
Авторство
О чём код?
#include "gtest/gtest.h" #include "DynamicArrays.h" TEST(Functions, StringToArray1) { THArrayString arr; StringToArray("", arr); EXPECT_EQ(arr.Count(), 0u); arr.Clear(); StringToArray("\n", arr); EXPECT_EQ(arr.Count(), 0u); arr.Clear(); StringToArray(" ", arr); EXPECT_EQ(arr.Count(), 1u); EXPECT_EQ(arr[0], " "); arr.Clear(); StringToArray(" \n", arr); EXPECT_EQ(arr.Count(), 1u); EXPECT_EQ(arr[0], " "); arr.Clear(); StringToArray("\n ", arr); EXPECT_EQ(arr.Count(), 1u); EXPECT_EQ(arr[0], " "); } TEST(Functions, StringToArray2) { THArrayString arr; StringToArray(",,,,,", arr, ','); EXPECT_EQ(arr.Count(), 0u); arr.Clear(); StringToArray(" ,,,,, ", arr, ','); EXPECT_EQ(arr.Count(), 2u); EXPECT_EQ(arr[0], " "); EXPECT_EQ(arr[1], " "); arr.Clear(); StringToArray("1,2,3", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "1"); EXPECT_EQ(arr[1], "2"); EXPECT_EQ(arr[2], "3"); arr.Clear(); StringToArray("1,,2,,3,", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "1"); EXPECT_EQ(arr[1], "2"); EXPECT_EQ(arr[2], "3"); arr.Clear(); StringToArray(",1,2,,3", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "1"); EXPECT_EQ(arr[1], "2"); EXPECT_EQ(arr[2], "3"); arr.Clear(); StringToArray(",,1,,2,3", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "1"); EXPECT_EQ(arr[1], "2"); EXPECT_EQ(arr[2], "3"); arr.Clear(); StringToArray(",,,1,2,,,3,", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "1"); EXPECT_EQ(arr[1], "2"); EXPECT_EQ(arr[2], "3"); arr.Clear(); StringToArray("1,2,,3,", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "1"); EXPECT_EQ(arr[1], "2"); EXPECT_EQ(arr[2], "3"); arr.Clear(); StringToArray("1,,2,3,,,,", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "1"); EXPECT_EQ(arr[1], "2"); EXPECT_EQ(arr[2], "3"); } TEST(Functions, StringToArray3) { THArrayString arr; StringToArray("12,34,56", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "12"); EXPECT_EQ(arr[1], "34"); EXPECT_EQ(arr[2], "56"); arr.Clear(); StringToArray("1,,23,5,", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "1"); EXPECT_EQ(arr[1], "23"); EXPECT_EQ(arr[2], "5"); arr.Clear(); StringToArray(",123,4,55", arr, ','); EXPECT_EQ(arr.Count(), 3u); EXPECT_EQ(arr[0], "123"); EXPECT_EQ(arr[1], "4"); EXPECT_EQ(arr[2], "55"); } TEST(Functions, testStripFileExt) { EXPECT_EQ(StripFileExt(""), ""); EXPECT_EQ(StripFileExt("."), ""); EXPECT_EQ(StripFileExt(".."), "."); EXPECT_EQ(StripFileExt("..."), ".."); EXPECT_EQ(StripFileExt("...."), "..."); EXPECT_EQ(StripFileExt("1.234"), "1"); EXPECT_EQ(StripFileExt("a"), "a"); EXPECT_EQ(StripFileExt("aa"), "aa"); EXPECT_EQ(StripFileExt("1234"), "1234"); EXPECT_EQ(StripFileExt("1234."), "1234"); EXPECT_EQ(StripFileExt("123.4"), "123"); EXPECT_EQ(StripFileExt("12.34"), "12"); EXPECT_EQ(StripFileExt("1.234"), "1"); EXPECT_EQ(StripFileExt(".1234"), ""); EXPECT_EQ(StripFileExt("12.3.4"), "12.3"); EXPECT_EQ(StripFileExt(".12.34"), ".12"); EXPECT_EQ(StripFileExt("g.hjk."), "g.hjk"); EXPECT_EQ(StripFileExt("qwertyuioplkjhgfdsa.bvnb"), "qwertyuioplkjhgfdsa"); } TEST(Functions, testStripFileExt2) { EXPECT_EQ(StripFileExt("c:\\aaa\\bbb\\pp.log"), "c:\\aaa\\bbb\\pp"); EXPECT_EQ(StripFileExt("c:\\aaa\\bbb\\pp."), "c:\\aaa\\bbb\\pp"); EXPECT_EQ(StripFileExt(""), ""); EXPECT_EQ(StripFileExt("\\"), "\\"); EXPECT_EQ(StripFileExt("/"), "/"); EXPECT_EQ(StripFileExt("c:"), "c:"); EXPECT_EQ(StripFileExt("\\sssss.ss\\dsd\\ffffff"), "\\sssss.ss\\dsd\\ffffff"); EXPECT_EQ(StripFileExt("\\sssss.ss\\dsd\\ffffff."), "\\sssss.ss\\dsd\\ffffff"); EXPECT_EQ(StripFileExt("\\sssss.ss\\dsd\\ffffff.a"), "\\sssss.ss\\dsd\\ffffff"); EXPECT_EQ(StripFileExt("\\sssss.ss\\dsd\\a. rrffffff "), "\\sssss.ss\\dsd\\a"); EXPECT_EQ(StripFileExt("/dfdfd/dfdf/gfg/dffff/"), "/dfdfd/dfdf/gfg/dffff/"); EXPECT_EQ(StripFileExt("/dfdfd/dfdf/gfg/d4444.rrr.ttt.y"), "/dfdfd/dfdf/gfg/d4444.rrr.ttt"); EXPECT_EQ(StripFileExt("c:\\.aaa"), "c:\\"); EXPECT_EQ(StripFileExt(".bbb"), ""); EXPECT_EQ(StripFileExt("/.deps"), "/"); EXPECT_EQ(StripFileExt("app.log.fgh"), "app.log"); EXPECT_EQ(StripFileExt("app.log.fgh."), "app.log.fgh"); EXPECT_EQ(StripFileExt("a.b"), "a"); EXPECT_EQ(StripFileExt("a"), "a"); } TEST(Functions, testStringReplace) { EXPECT_EQ(StringReplace("", "", "").size(), 0ul); EXPECT_EQ(StringReplace("", "a", "b").size(), 0ul); EXPECT_EQ(StringReplace("", "", "bbbb").size(), 0ul); EXPECT_EQ(StringReplace("", "zzz", "bbb").size(), 0ul); EXPECT_EQ(StringReplace("", "zzz", "").size(), 0ul); EXPECT_EQ(StringReplace("gaaah vvvvb aa aaa hghg4aaa54", "aaa", "ZZZZ"), "gZZZZh vvvvb aa ZZZZ hghg4ZZZZ54"); EXPECT_EQ(StringReplace("gaaah vvvvb aa aaa hghg4aaa", "aaa", ""), "gh vvvvb aa hghg4"); EXPECT_EQ(StringReplace("", "\r", "\n"), ""); EXPECT_EQ(StringReplace("\r\r", "\r", ""), ""); EXPECT_EQ(StringReplace("\r", "\r", "\n"), "\n"); EXPECT_EQ(StringReplace("\r\n", "\r", ""), "\n"); EXPECT_EQ(StringReplace("\r\n", "\r", "\n"), "\n\n"); EXPECT_EQ(StringReplace("\r\n", "\r\n", "\n"), "\n"); EXPECT_EQ(StringReplace("\r\n\r", "\r\n", "\n"), "\n\r"); EXPECT_EQ(StringReplace("\r\n\n\r", "\r\n", "\n"), "\n\n\r"); EXPECT_EQ(StringReplace("\r\n dfdf fgfg\r\n", "\r\n", "\n"), "\n dfdf fgfg\n"); } TEST(Functions, testExtractFileName) { EXPECT_EQ(ExtractFileName("c:\\aaa\\bbb\\pp.log"), "pp.log"); EXPECT_EQ(ExtractFileName("\\sssss.ss\\dsd\\ffffff"), "ffffff"); EXPECT_EQ(ExtractFileName("/dfdfd/dfdf/gfg/dffff/"), ""); EXPECT_EQ(ExtractFileName("app.log.fgh"), "app.log.fgh"); } TEST(Functions, testExtractFileDir1) { EXPECT_EQ(ExtractFileDir("\\sssss.ss\\dsd\\ffffff"), "\\sssss.ss\\dsd\\"); EXPECT_EQ(ExtractFileDir("\\sssss.ss\\dsd\\ffffff."), "\\sssss.ss\\dsd\\"); EXPECT_EQ(ExtractFileDir("\\sssss.ss\\dsd\\ffffff.a"), "\\sssss.ss\\dsd\\"); EXPECT_EQ(ExtractFileDir("\\sssss.ss\\dsd\\a. rrffffff "), "\\sssss.ss\\dsd\\"); EXPECT_EQ(ExtractFileDir("/dfdfd/dfdf/gfg/dffff/"), "/dfdfd/dfdf/gfg/dffff/"); EXPECT_EQ(ExtractFileDir("c:/dfdfd/dfdf/gfg/d4444.rrr.ttt.y"), "c:/dfdfd/dfdf/gfg/"); EXPECT_EQ(ExtractFileDir("app.log.fgh"), ""); EXPECT_EQ(ExtractFileDir("/app.log.fgh."), "/"); EXPECT_EQ(ExtractFileDir("a.b/"), "a.b/"); EXPECT_EQ(ExtractFileDir(""), ""); EXPECT_EQ(ExtractFileDir("a"), ""); EXPECT_EQ(ExtractFileDir("/"), "/"); EXPECT_EQ(ExtractFileDir("\\"), "\\"); } char mytoupper(int c) // to eliminate compile warning "warning C4244: '=': conversion from 'int' to 'char', possible loss of data" { return (char)toupper(c); } std::string ToUpper(const std::string& str) // TODO what if we have \t in the beginning (end) of string? { std::string dest;// = "1234567890"; dest.resize(str.size()); transform(str.begin(), str.end(), dest.begin(), ::mytoupper); return dest; } // can be removed, see CompareNCaseParamTest TEST(Functions, testEqualNCase) { #define EqualNCaseTest EqualNCase<std::string> EXPECT_FALSE(EqualNCaseTest("�", "�")); // non latin symbols EXPECT_FALSE(EqualNCaseTest("A", "�")); // latin and non-latin symbols EXPECT_FALSE(EqualNCaseTest("f", "")); EXPECT_FALSE(EqualNCaseTest("", "5")); EXPECT_FALSE(EqualNCaseTest("\n", "\r")); EXPECT_FALSE(EqualNCaseTest("", " ")); EXPECT_FALSE(EqualNCaseTest(" ", "")); EXPECT_FALSE(EqualNCaseTest(" ", "")); EXPECT_FALSE(EqualNCaseTest("", " ")); EXPECT_FALSE(EqualNCaseTest(" ", " ")); EXPECT_FALSE(EqualNCaseTest("\n\n", "\n")); EXPECT_FALSE(EqualNCaseTest("\n\r", "\n")); EXPECT_FALSE(EqualNCaseTest("abc", "ab")); EXPECT_FALSE(EqualNCaseTest("ab", "abc")); EXPECT_FALSE(EqualNCaseTest(" ab", "ab")); EXPECT_FALSE(EqualNCaseTest("ab\n", "ab")); EXPECT_TRUE(EqualNCaseTest("", "")); EXPECT_TRUE(EqualNCaseTest(" ", " ")); EXPECT_TRUE(EqualNCaseTest("\r", "\r")); EXPECT_TRUE(EqualNCaseTest("\n", "\n")); EXPECT_TRUE(EqualNCaseTest("ab", "AB")); EXPECT_TRUE(EqualNCaseTest("ABC", "ABc")); EXPECT_TRUE(EqualNCaseTest("ANDREY", "Andrey")); //EXPECT_TRUE(EqualNCase("����", ToUpper("����"))); EXPECT_TRUE(EqualNCaseTest("����", "����")); //EXPECT_TRUE(EqualNCase("����", "����")); //EXPECT_TRUE(EqualNCase("����", "����")); EXPECT_TRUE(EqualNCaseTest("�", "�")); EXPECT_TRUE(EqualNCaseTest("\0", "\0")); } // can be removed, see CompareNCaseParamTest TEST(Functions, testEqualNCaseWSTRING) { #define EqualNCaseTestW EqualNCase<std::wstring> EXPECT_FALSE(EqualNCaseTestW(L"�", L"�")); // non latin symbols EXPECT_FALSE(EqualNCaseTestW(L"A", L"�")); // latin and non-latin symbols EXPECT_FALSE(EqualNCaseTestW(L"f", L"")); EXPECT_FALSE(EqualNCaseTestW(L"", L"5")); EXPECT_FALSE(EqualNCaseTestW(L"\n", L"\r")); EXPECT_FALSE(EqualNCaseTestW(L"", L" ")); EXPECT_FALSE(EqualNCaseTestW(L" ", L"")); EXPECT_FALSE(EqualNCaseTestW(L" ", L"")); EXPECT_FALSE(EqualNCaseTestW(L"", L" ")); EXPECT_FALSE(EqualNCaseTestW(L" ", L" ")); EXPECT_FALSE(EqualNCaseTestW(L"\n\n", L"\n")); EXPECT_FALSE(EqualNCaseTestW(L"\n\r", L"\n")); EXPECT_FALSE(EqualNCaseTestW(L"abc", L"ab")); EXPECT_FALSE(EqualNCaseTestW(L"ab", L"abc")); EXPECT_FALSE(EqualNCaseTestW(L" ab", L"ab")); EXPECT_FALSE(EqualNCaseTestW(L"ab\n", L"ab")); EXPECT_TRUE(EqualNCaseTestW(L"", L"")); EXPECT_TRUE(EqualNCaseTestW(L" ", L" ")); EXPECT_TRUE(EqualNCaseTestW(L"\r", L"\r")); EXPECT_TRUE(EqualNCaseTestW(L"\n", L"\n")); EXPECT_TRUE(EqualNCaseTestW(L"ab", L"AB")); EXPECT_TRUE(EqualNCaseTestW(L"ABC", L"ABc")); EXPECT_TRUE(EqualNCaseTestW(L"ANDREY", L"Andrey")); //EXPECT_TRUE(EqualNCase("����", ToUpper("����"))); EXPECT_TRUE(EqualNCaseTestW(L"����", L"����")); //EXPECT_TRUE(EqualNCase("����", "����")); //EXPECT_TRUE(EqualNCase("����", "����")); EXPECT_TRUE(EqualNCaseTestW(L"�", L"�")); EXPECT_TRUE(EqualNCaseTestW(L"\0", L"\0")); } //can be removed see CompareNCaseParamTest TEST(Functions, testCompareNCase) { #define CompareNCaseTest CompareNCase<std::string> EXPECT_EQ(CompareNCaseTest("�", "�"), 1); // non latin symbols EXPECT_EQ(CompareNCaseTest("A", "�"), -1); // latin and non-latin symbols EXPECT_EQ(CompareNCaseTest("f", ""), 1); EXPECT_EQ(CompareNCaseTest("", "5"), -1); EXPECT_EQ(CompareNCaseTest("\n", "\r"), -1); EXPECT_EQ(CompareNCaseTest("", " "), -1); EXPECT_EQ(CompareNCaseTest(" ", ""), 1); EXPECT_EQ(CompareNCaseTest(" ", ""), 1); EXPECT_EQ(CompareNCaseTest("", " "), -1); EXPECT_EQ(CompareNCaseTest(" ", " "), -1); EXPECT_EQ(CompareNCaseTest("\n\n", "\n"), 1); EXPECT_EQ(CompareNCaseTest("\n\r", "\n"), 1); EXPECT_EQ(CompareNCaseTest("abc", "ab"), 1); EXPECT_EQ(CompareNCaseTest("ab", "abc"), -1); EXPECT_EQ(CompareNCaseTest(" ab", "ab"), -1); EXPECT_EQ(CompareNCaseTest("ab\n", "ab"), 1); EXPECT_EQ(CompareNCaseTest("", ""), 0); EXPECT_EQ(CompareNCaseTest(" ", " "), 0); EXPECT_EQ(CompareNCaseTest("\r", "\r"), 0); EXPECT_EQ(CompareNCaseTest("\n", "\n"), 0); EXPECT_EQ(CompareNCaseTest("ABC", "ABC"), 0); EXPECT_EQ(CompareNCaseTest("����", "����"), 0); EXPECT_EQ(CompareNCaseTest("�", "�"), 0); EXPECT_EQ(CompareNCaseTest("\0", "\0"), 0); } //can be removed see CompareNCaseParamTest TEST(Functions, testCompareNCaseWSTRING) { #define CompareNCaseTestW CompareNCase<std::wstring> EXPECT_EQ(CompareNCaseTestW(L"�", L"�"), 1); // non latin symbols EXPECT_EQ(CompareNCaseTestW(L"A", L"�"), -1); // latin and non-latin symbols EXPECT_EQ(CompareNCaseTestW(L"f", L""), 1); EXPECT_EQ(CompareNCaseTestW(L"", L"5"), -1); EXPECT_EQ(CompareNCaseTestW(L"\n", L"\r"), -1); EXPECT_EQ(CompareNCaseTestW(L"", L" "), -1); EXPECT_EQ(CompareNCaseTestW(L" ", L""), 1); EXPECT_EQ(CompareNCaseTestW(L" ", L""), 1); EXPECT_EQ(CompareNCaseTestW(L"", L" "), -1); EXPECT_EQ(CompareNCaseTestW(L" ", L" "), -1); EXPECT_EQ(CompareNCaseTestW(L"\n\n", L"\n"), 1); EXPECT_EQ(CompareNCaseTestW(L"\n\r", L"\n"), 1); EXPECT_EQ(CompareNCaseTestW(L"abc", L"ab"), 1); EXPECT_EQ(CompareNCaseTestW(L"ab", L"abc"), -1); EXPECT_EQ(CompareNCaseTestW(L" ab", L"ab"), -1); EXPECT_EQ(CompareNCaseTestW(L"ab\n", L"ab"), 1); EXPECT_EQ(CompareNCaseTestW(L"", L""), 0); EXPECT_EQ(CompareNCaseTestW(L" ", L" "), 0); EXPECT_EQ(CompareNCaseTestW(L"\r", L"\r"), 0); EXPECT_EQ(CompareNCaseTestW(L"\n", L"\n"), 0); EXPECT_EQ(CompareNCaseTestW(L"ABC", L"ABC"), 0); EXPECT_EQ(CompareNCaseTestW(L"����", L"����"), 0); EXPECT_EQ(CompareNCaseTestW(L"�", L"�"), 0); EXPECT_EQ(CompareNCaseTestW(L"\0", L"\0"), 0); } TEST(Functions, testExtractFileExt1) { std::string s = ExtractFileExt(""); EXPECT_EQ(std::string{ "" }, s); s = ExtractFileExt("a"); ASSERT_EQ(std::string(""), s); s = ExtractFileExt("/"); ASSERT_EQ(std::string(""), s); s = ExtractFileExt("\\"); ASSERT_EQ(std::string(""), s); } TEST(Functions, testExtractFileExt2) { std::string s = ExtractFileExt("\\sssss.ss\\dsd\\ffffff"); ASSERT_EQ(std::string{ "" }, s); s = ExtractFileExt("\\ffffff."); ASSERT_EQ(std::string{ "." }, s); s = ExtractFileExt("\\sssss.ss\\dsd\\ffffff.a"); ASSERT_EQ(std::string{ ".a" }, s); s = ExtractFileExt("\\sssss.ss\\dsd\\a. rrffffff "); ASSERT_EQ(std::string{ ". rrffffff " }, s); } TEST(Functions, testExtractFileExt3) { std::string s = ExtractFileExt("/gfg/dffff/"); ASSERT_EQ(std::string(""), s); s = ExtractFileExt("/gfg/dffff\\"); ASSERT_EQ(std::string(""), s); s = ExtractFileExt("/gfg/dffff"); ASSERT_EQ(std::string(""), s); s = ExtractFileExt("/gfg\\dffff"); ASSERT_EQ(std::string(""), s); s = ExtractFileExt(".dffff"); ASSERT_EQ(std::string(".dffff"), s); s = ExtractFileExt("c:/gfg/d4444.rrr.ttt.y"); ASSERT_EQ(std::string(".y"), s); s = ExtractFileExt("c:/gfg/d4444.rrr.Ttt"); ASSERT_EQ(std::string(".Ttt"), s); s = ExtractFileExt("c:/gfg/d4444.rrr.ttt.."); ASSERT_EQ(std::string("."), s); } TEST(Functions, testExtractFileExt4) { std::string s = ExtractFileExt("app.log.fgh"); ASSERT_EQ(std::string(".fgh"), s); s = ExtractFileExt("/app.log.fgh..f"); ASSERT_EQ(std::string(".f"), s); s = ExtractFileExt("a.b/"); ASSERT_EQ(std::string(""), s); s = ExtractFileExt("1234"); ASSERT_EQ(std::string(""), s); } TEST(Functions, testDelSPCRLF1) { ASSERT_EQ(std::string(""), DelSPCRLF("")); ASSERT_EQ(std::string(""), DelSPCRLF(" ")); ASSERT_EQ(std::string(""), DelSPCRLF("\r")); ASSERT_EQ(std::string(""), DelSPCRLF("\n")); ASSERT_EQ(std::string(""), DelSPCRLF(" ")); // SP + tab ASSERT_EQ(std::string(""), DelSPCRLF(" ")); // tab + SP ASSERT_EQ(std::string(""), DelSPCRLF(" ")); // two tabs ASSERT_EQ(std::string(""), DelSPCRLF(" ")); // two spaces ASSERT_EQ(std::string(""), DelSPCRLF("\r\r")); ASSERT_EQ(std::string(""), DelSPCRLF("\r\n")); ASSERT_EQ(std::string(""), DelSPCRLF("\r \n")); ASSERT_EQ(std::string(""), DelSPCRLF("\n\r")); ASSERT_EQ(std::string(""), DelSPCRLF("\n \r")); ASSERT_EQ(std::string(""), DelSPCRLF(" \n \r ")); ASSERT_EQ(std::string(""), DelSPCRLF("\r\r\r\r\r\r\r")); ASSERT_EQ(std::string(""), DelSPCRLF("\n\n\n\n\n\n")); ASSERT_EQ(std::string(""), DelSPCRLF("\r\n\r\n\r\r\n\n")); } TEST(Functions, testDelSPCRLF2) { ASSERT_EQ(std::string("A"), DelSPCRLF("A")); ASSERT_EQ(std::string("A"), DelSPCRLF("A ")); ASSERT_EQ(std::string("A"), DelSPCRLF("A\r")); ASSERT_EQ(std::string("A"), DelSPCRLF("A\n")); ASSERT_EQ(std::string("A"), DelSPCRLF("A ")); // SP + tab ASSERT_EQ(std::string("A"), DelSPCRLF("A ")); // tab + SP ASSERT_EQ(std::string("A"), DelSPCRLF("A ")); // two tabs ASSERT_EQ(std::string("A"), DelSPCRLF("A ")); // two spaces ASSERT_EQ(std::string("A"), DelSPCRLF("A\r\r")); ASSERT_EQ(std::string("A"), DelSPCRLF("A\r\n")); ASSERT_EQ(std::string("A"), DelSPCRLF("A\r \n")); ASSERT_EQ(std::string("A"), DelSPCRLF("A\n\r")); ASSERT_EQ(std::string("A"), DelSPCRLF("A\n \r")); ASSERT_EQ(std::string("A"), DelSPCRLF("A \n \r ")); ASSERT_EQ(std::string("A"), DelSPCRLF("A\r\r\r\r\r\r\r")); ASSERT_EQ(std::string("A"), DelSPCRLF("A\n\n\n\n\n\n")); ASSERT_EQ(std::string("A"), DelSPCRLF("A\r\n\r\n\r\r\n\n")); ASSERT_EQ(std::string("A"), DelSPCRLF("A")); ASSERT_EQ(std::string("A"), DelSPCRLF(" A")); ASSERT_EQ(std::string("A"), DelSPCRLF("\rA")); ASSERT_EQ(std::string("A"), DelSPCRLF("\nA")); ASSERT_EQ(std::string("A"), DelSPCRLF(" A")); // SP + tab ASSERT_EQ(std::string("A"), DelSPCRLF(" A")); // tab + SP ASSERT_EQ(std::string("A"), DelSPCRLF(" A")); // two tabs ASSERT_EQ(std::string("A"), DelSPCRLF(" A")); // two spaces ASSERT_EQ(std::string("A"), DelSPCRLF("\r\rA")); ASSERT_EQ(std::string("A"), DelSPCRLF("\r\nA")); ASSERT_EQ(std::string("A"), DelSPCRLF("\r \nA")); ASSERT_EQ(std::string("A"), DelSPCRLF("\n\rA")); ASSERT_EQ(std::string("A"), DelSPCRLF("\n \rA")); ASSERT_EQ(std::string("A"), DelSPCRLF(" \n \r A")); ASSERT_EQ(std::string("A"), DelSPCRLF("\r\r\r\r\r\r\rA")); ASSERT_EQ(std::string("A"), DelSPCRLF("\n\n\n\n\n\nA")); ASSERT_EQ(std::string("A"), DelSPCRLF("\r\n\r\n\r\r\n\nA")); } TEST(Functions, testDelSPCRLF3) { ASSERT_EQ(std::string("A"), DelSPCRLF("A")); ASSERT_EQ(std::string("A"), DelSPCRLF(" A ")); ASSERT_EQ(std::string("A"), DelSPCRLF("\nA\r")); ASSERT_EQ(std::string("A"), DelSPCRLF(" A\n")); ASSERT_EQ(std::string("A"), DelSPCRLF("\nA ")); // SP + tab ASSERT_EQ(std::string("A"), DelSPCRLF("\r\nA ")); // tab + SP ASSERT_EQ(std::string("A"), DelSPCRLF(" A ")); // two tabs ASSERT_EQ(std::string("A"), DelSPCRLF(" A ")); // two spaces ASSERT_EQ(std::string("A"), DelSPCRLF("\r A\r\r")); ASSERT_EQ(std::string("A"), DelSPCRLF(" \n A\r\n")); ASSERT_EQ(std::string("A"), DelSPCRLF(" A\r \n")); ASSERT_EQ(std::string("A"), DelSPCRLF("\r\r A\n\r")); ASSERT_EQ(std::string("A"), DelSPCRLF(" \nA\n \r")); ASSERT_EQ(std::string("A"), DelSPCRLF(" A \n \r ")); ASSERT_EQ(std::string("A"), DelSPCRLF("\r\r\r\r\r\rA\r\r\r\r\r\r\r")); ASSERT_EQ(std::string("A"), DelSPCRLF("\n\n\nA\n\n\n\n\n\n")); ASSERT_EQ(std::string("A"), DelSPCRLF(" A\r\n\r\n\r\r\n\n")); } TEST(Functions, testDelCRLF1) { ASSERT_EQ(std::string(""), DelCRLF("")); ASSERT_EQ(std::string(" "), DelCRLF(" ")); ASSERT_EQ(std::string(""), DelCRLF("\r")); ASSERT_EQ(std::string(""), DelCRLF("\n")); ASSERT_EQ(std::string(" "), DelCRLF(" ")); // SP + tab ASSERT_EQ(std::string(" "), DelCRLF(" ")); // tab + SP ASSERT_EQ(std::string(" "), DelCRLF(" ")); // two tabs ASSERT_EQ(std::string(" "), DelCRLF(" ")); // two spaces ASSERT_EQ(std::string(""), DelCRLF("\r\r")); ASSERT_EQ(std::string(""), DelCRLF("\r\n")); ASSERT_EQ(std::string(" "), DelCRLF("\r \n")); // tab between ASSERT_EQ(std::string(""), DelCRLF("\n\r")); ASSERT_EQ(std::string(" "), DelCRLF("\n \r")); ASSERT_EQ(std::string(" \n \r "), DelCRLF(" \n \r ")); ASSERT_EQ(std::string(""), DelCRLF("\r\r\r\r\r\r\r")); ASSERT_EQ(std::string(""), DelCRLF("\n\n\n\n\n\n")); ASSERT_EQ(std::string(""), DelCRLF("\r\n\r\n\r\r\n\n")); } TEST(Functions, testDelCRLF2) { ASSERT_EQ(std::string("A"), DelCRLF("A")); ASSERT_EQ(std::string("A "), DelCRLF("A ")); ASSERT_EQ(std::string("A"), DelCRLF("A\r")); ASSERT_EQ(std::string("A"), DelCRLF("A\n")); ASSERT_EQ(std::string("A "), DelCRLF("A ")); // tab ASSERT_EQ(std::string("A "), DelCRLF("A ")); // tab + SP ASSERT_EQ(std::string("A "), DelCRLF("A ")); // two tabs ASSERT_EQ(std::string("A "), DelCRLF("A ")); // two spaces ASSERT_EQ(std::string("A"), DelCRLF("A\r\r")); ASSERT_EQ(std::string("A"), DelCRLF("A\r\n")); ASSERT_EQ(std::string("A\r "), DelCRLF("A\r \n")); ASSERT_EQ(std::string("A"), DelCRLF("A\n\r")); ASSERT_EQ(std::string("A\n "), DelCRLF("A\n \r")); ASSERT_EQ(std::string("A \n \r "), DelCRLF("A \n \r ")); ASSERT_EQ(std::string("A"), DelCRLF("A\r\r\r\r\r\r\r")); ASSERT_EQ(std::string("A"), DelCRLF("A\n\n\n\n\n\n")); ASSERT_EQ(std::string("A"), DelCRLF("A\r\n\r\n\r\r\n\n")); ASSERT_EQ(std::string("A"), DelCRLF("A")); ASSERT_EQ(std::string(" A"), DelCRLF(" A")); ASSERT_EQ(std::string("A"), DelCRLF("\rA")); ASSERT_EQ(std::string("A"), DelCRLF("\nA")); ASSERT_EQ(std::string(" A"), DelCRLF(" A")); // tab ASSERT_EQ(std::string(" A"), DelCRLF(" A")); // tab + SP ASSERT_EQ(std::string(" A"), DelCRLF(" A")); // two tabs ASSERT_EQ(std::string(" A"), DelCRLF(" A")); // two spaces ASSERT_EQ(std::string("A"), DelCRLF("\r\rA")); ASSERT_EQ(std::string("A"), DelCRLF("\r\nA")); ASSERT_EQ(std::string(" \nA"), DelCRLF("\r \nA")); ASSERT_EQ(std::string("A"), DelCRLF("\n\rA")); ASSERT_EQ(std::string(" \rA"), DelCRLF("\n \rA")); ASSERT_EQ(std::string(" \n \r A"), DelCRLF(" \n \r A")); ASSERT_EQ(std::string("A"), DelCRLF("\r\r\r\r\r\r\rA")); ASSERT_EQ(std::string("A"), DelCRLF("\n\n\n\n\n\nA")); ASSERT_EQ(std::string("A"), DelCRLF("\r\n\r\n\r\r\n\nA")); } TEST(Functions, testDelCRLF3) { ASSERT_EQ(std::string("A"), DelCRLF("A")); ASSERT_EQ(std::string(" A "), DelCRLF(" A ")); ASSERT_EQ(std::string("A"), DelCRLF("\nA\r")); ASSERT_EQ(std::string(" A"), DelCRLF(" A\n")); ASSERT_EQ(std::string("A "), DelCRLF("\nA ")); // SP + tab ASSERT_EQ(std::string("A "), DelCRLF("\r\nA ")); // tab + SP ASSERT_EQ(std::string(" A "), DelCRLF(" A ")); // two tabs ASSERT_EQ(std::string(" A "), DelCRLF(" A ")); // two spaces ASSERT_EQ(std::string(" A"), DelCRLF("\r A\r\r")); ASSERT_EQ(std::string(" \n A"), DelCRLF(" \n A\r\n")); ASSERT_EQ(std::string(" A\r "), DelCRLF(" A\r \n")); ASSERT_EQ(std::string(" A"), DelCRLF("\r\r A\n\r")); ASSERT_EQ(std::string(" \nA\n "), DelCRLF(" \nA\n \r")); ASSERT_EQ(std::string(" A \n \r "), DelCRLF(" A \n \r ")); ASSERT_EQ(std::string("A"), DelCRLF("\r\r\r\r\r\rA\r\r\r\r\r\r\r")); ASSERT_EQ(std::string("A"), DelCRLF("\n\n\nA\n\n\n\n\n\n")); ASSERT_EQ(std::string(" A"), DelCRLF(" A\r\n\r\n\r\r\n\n")); } TEST(Functions, testTrim1) { ASSERT_EQ(std::string(""), Trim("")); ASSERT_EQ(std::string(""), Trim(" ")); ASSERT_EQ(std::string(""), Trim("\t")); ASSERT_EQ(std::string(""), Trim(" ")); // SP + tab ASSERT_EQ(std::string(""), Trim(" ")); // tab + SP ASSERT_EQ(std::string(""), Trim(" ")); // two tabs ASSERT_EQ(std::string(""), Trim(" ")); // two spaces ASSERT_EQ(std::string(""), Trim("\t\t")); ASSERT_EQ(std::string(""), Trim("\t \t")); // tab between ASSERT_EQ(std::string(""), Trim("\t\t")); ASSERT_EQ(std::string(""), Trim("\t \t")); ASSERT_EQ(std::string(""), Trim(" \t \t ")); ASSERT_EQ(std::string("\r\r"), Trim("\t\t\r\r\t\t\t")); ASSERT_EQ(std::string("\n\t\n"), Trim("\t\n\t\n \t")); ASSERT_EQ(std::string("\r\n\r\n\r\r\n\n"), Trim("\r\n\r\n\r\r\n\n")); ASSERT_EQ(std::string("abc"), Trim("abc ")); } TEST(Functions, testTrim2) { ASSERT_EQ(std::string("A"), Trim("A")); ASSERT_EQ(std::string("A"), Trim("A ")); ASSERT_EQ(std::string("A"), Trim("A\t")); ASSERT_EQ(std::string("A"), Trim("A ")); // tab ASSERT_EQ(std::string("A"), Trim("A ")); // tab + SP ASSERT_EQ(std::string("A"), Trim("A ")); // two tabs ASSERT_EQ(std::string("A"), Trim("A ")); // two spaces ASSERT_EQ(std::string("A"), Trim("A\t\t")); ASSERT_EQ(std::string("A"), Trim("A\t\t")); ASSERT_EQ(std::string("A\r"), Trim("A\r \t")); ASSERT_EQ(std::string("A\t\r"), Trim("A\t\r")); ASSERT_EQ(std::string("A"), Trim("A\t \t")); ASSERT_EQ(std::string("A A"), Trim("A A ")); ASSERT_EQ(std::string("A"), Trim("A\t\t\t \t\t \t\t")); ASSERT_EQ(std::string("A"), Trim("A \t\t\t \t\t\t ")); ASSERT_EQ(std::string("A"), Trim("A\t \t \t \t \t")); ASSERT_EQ(std::string("A"), Trim("A")); ASSERT_EQ(std::string("A"), Trim(" A")); ASSERT_EQ(std::string("A"), Trim("\tA")); ASSERT_EQ(std::string("A"), Trim(" A")); // tab ASSERT_EQ(std::string("A"), Trim(" A")); // tab + SP ASSERT_EQ(std::string("A"), Trim(" A")); // two tabs ASSERT_EQ(std::string("A"), Trim(" A")); // two spaces ASSERT_EQ(std::string("A"), Trim("\t\tA")); ASSERT_EQ(std::string("A"), Trim("\t A")); ASSERT_EQ(std::string("A"), Trim(" \tA")); ASSERT_EQ(std::string("A"), Trim("\t\tA")); ASSERT_EQ(std::string("A"), Trim("\t A")); ASSERT_EQ(std::string("A"), Trim(" \t \t A")); ASSERT_EQ(std::string("A"), Trim("\t\t\t\t\t\t A")); ASSERT_EQ(std::string("A"), Trim("\t \t \t A")); } TEST(Functions, testTrim3) { ASSERT_EQ(std::string("A"), Trim("A")); ASSERT_EQ(std::string("A"), Trim(" A ")); ASSERT_EQ(std::string("A"), Trim("\tA\t")); ASSERT_EQ(std::string("A"), Trim(" A\t")); ASSERT_EQ(std::string("A"), Trim("\tA ")); // SP + tab ASSERT_EQ(std::string("A"), Trim("\t\tA ")); // tab + SP ASSERT_EQ(std::string("A"), Trim(" A ")); // two tabs ASSERT_EQ(std::string("A"), Trim(" A ")); // two spaces ASSERT_EQ(std::string("A"), Trim("\t A\t\t")); ASSERT_EQ(std::string("A"), Trim(" \t A\t\t ")); ASSERT_EQ(std::string("A\r"), Trim(" A\r \t")); ASSERT_EQ(std::string("A"), Trim("\t\t A \t")); ASSERT_EQ(std::string("A"), Trim(" \t A\t \t ")); ASSERT_EQ(std::string("A \n"), Trim(" A \n \t ")); ASSERT_EQ(std::string("A"), Trim("\t\t\t\t \t\tA\t\t\t\t \t\t\t ")); ASSERT_EQ(std::string("A"), Trim(" \t \t \tA \t \t \t \t \t ")); ASSERT_EQ(std::string("A"), Trim(" A\t\t ")); }