Skip to content

Commit 53e5b88

Browse files
committed
added unittests for pystring::find
This exposes two previously unknown bugs in the pystring::find implementation: pystring::find("", "") -> -1 Correct: 0 pystring::find("abcabcabc", "bc", 4, 5) -> 4 Correct: -1
1 parent 0f4ab0d commit 53e5b88

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

test.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,31 @@ PYSTRING_ADD_TEST(pystring, endswith)
3030
PYSTRING_CHECK_EQUAL(pystring::endswith("abcdef", "cdef", -10), true);
3131
}
3232

33+
PYSTRING_ADD_TEST(pystring, find)
34+
{
35+
PYSTRING_CHECK_EQUAL(pystring::find("", ""), 0);
36+
PYSTRING_CHECK_EQUAL(pystring::find("", "a"), -1);
37+
PYSTRING_CHECK_EQUAL(pystring::find("a", ""), 0);
38+
PYSTRING_CHECK_EQUAL(pystring::find("a", "a"), 0);
39+
PYSTRING_CHECK_EQUAL(pystring::find("abcdef", "def"), 3);
40+
PYSTRING_CHECK_EQUAL(pystring::find("abcdef", "def", 3), 3);
41+
PYSTRING_CHECK_EQUAL(pystring::find("abcdef", "def", 4), -1);
42+
PYSTRING_CHECK_EQUAL(pystring::find("abcdef", "def", -5), 3);
43+
PYSTRING_CHECK_EQUAL(pystring::find("abcdef", "def", -1), -1);
44+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", -2), 7);
45+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", -1), -1);
46+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 0), 1);
47+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 1), 1);
48+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 2), 4);
49+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 4), 4);
50+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 7), 7);
51+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 4, 3), -1);
52+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 4, 4), -1);
53+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 4, 5), -1);
54+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 4, -1), 4);
55+
PYSTRING_CHECK_EQUAL(pystring::find("abcabcabc", "bc", 4, 6), 4);
56+
}
57+
3358
PYSTRING_ADD_TEST(pystring, startswith)
3459
{
3560
PYSTRING_CHECK_EQUAL(pystring::startswith("", ""), true);

0 commit comments

Comments
 (0)