add unit tests for new utils::strfind() function

This commit is contained in:
Axel Kohlmeyer
2021-02-25 23:05:48 -05:00
parent 92d892aa2d
commit cfc86f7a2d

View File

@ -35,11 +35,11 @@ TEST(Utils, strdup)
std::string original("some_text"); std::string original("some_text");
const char *copy = utils::strdup(original); const char *copy = utils::strdup(original);
ASSERT_THAT(original, StrEq(copy)); ASSERT_THAT(original, StrEq(copy));
ASSERT_NE(copy,original.c_str()); ASSERT_NE(copy, original.c_str());
const char *copy2 = utils::strdup(copy); const char *copy2 = utils::strdup(copy);
ASSERT_THAT(original, StrEq(copy2)); ASSERT_THAT(original, StrEq(copy2));
ASSERT_NE(copy,copy2); ASSERT_NE(copy, copy2);
delete[] copy; delete[] copy;
delete[] copy2; delete[] copy2;
@ -399,6 +399,91 @@ TEST(Utils, strmatch_whitespace_nonwhitespace)
ASSERT_TRUE(utils::strmatch(" 5.0 angles\n", "^\\s*\\S+\\s+\\S+\\s")); ASSERT_TRUE(utils::strmatch(" 5.0 angles\n", "^\\s*\\S+\\s+\\S+\\s"));
} }
TEST(Utils, strfind_beg)
{
ASSERT_THAT(utils::strfind("rigid/small/omp", "^rigid"), StrEq("rigid"));
}
TEST(Utils, strfind_mid1)
{
ASSERT_THAT(utils::strfind("rigid/small/omp", ".small."), StrEq("/small/"));
}
TEST(Utils, strfind_mid2)
{
ASSERT_THAT(utils::strfind("rigid/small/ompXXX", "omp"), StrEq("omp"));
}
TEST(Utils, strfind_end)
{
ASSERT_THAT(utils::strfind("rigid/small/omp", "/omp$"), StrEq("/omp"));
}
TEST(Utils, no_strfind_beg)
{
ASSERT_THAT(utils::strfind("rigid/small/omp", "^small"), StrEq(""));
}
TEST(Utils, no_strfind_mid)
{
ASSERT_THAT(utils::strfind("rigid/small/omp", "none"), StrEq(""));
}
TEST(Utils, no_strfind_end)
{
ASSERT_THAT(utils::strfind("rigid/small/omp", "/opt$"), StrEq(""));
}
TEST(Utils, strfind_whole_line)
{
ASSERT_THAT(utils::strfind("ITEM: UNITS\n", "^\\s*ITEM: UNITS\\s*$"), StrEq("ITEM: UNITS\n"));
}
TEST(Utils, no_strfind_whole_line)
{
ASSERT_THAT(utils::strfind("ITEM: UNITS\n", "^\\s*ITEM: UNIT\\s*$"), StrEq(""));
}
TEST(Utils, strfind_char_range)
{
ASSERT_THAT(utils::strfind("rigidXXX", "^[ip-s]+gid"), StrEq("rigid"));
}
TEST(Utils, strfind_notchar_range)
{
ASSERT_THAT(utils::strfind("rigidYYY", "^[^a-g]+gid"), StrEq("rigid"));
}
TEST(Utils, strfind_backslash)
{
ASSERT_THAT(utils::strfind("\\rigidZZZ", "^\\W\\w+gid"), StrEq("\\rigid"));
}
TEST(Utils, strfind_opt_range)
{
ASSERT_THAT(utils::strfind("rigidAAA", "^[0-9]*[\\Wp-s]igid"), StrEq("rigid"));
}
TEST(Utils, strfind_opt_char)
{
ASSERT_THAT(utils::strfind("rigid111", "^r?igid"), StrEq("rigid"));
ASSERT_THAT(utils::strfind("igid222", "^r?igid"), StrEq("igid"));
}
TEST(Utils, strfind_dot)
{
ASSERT_THAT(utils::strfind("AAArigidBBB", ".igid"), StrEq("rigid"));
ASSERT_THAT(utils::strfind("000Rigid111", ".igid"), StrEq("Rigid"));
}
TEST(Utils, strfind_kim)
{
ASSERT_THAT(utils::strfind("n3409jfse MO_004835508849_000 aslfjiaf",
"[MS][MO]_\\d\\d\\d+_\\d\\d\\d"), StrEq("MO_004835508849_000"));
ASSERT_THAT(utils::strfind("VanDuinChakraborty_2003_CHNO__SM_107643900657_000",
"[MS][MO]_\\d\\d\\d+_\\d\\d\\d"), StrEq("SM_107643900657_000"));
}
TEST(Utils, bounds_case1) TEST(Utils, bounds_case1)
{ {
int nlo, nhi; int nlo, nhi;