diff options
Diffstat (limited to 'tests/run/cpp_stl_string_cpp20.pyx')
-rw-r--r-- | tests/run/cpp_stl_string_cpp20.pyx | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/run/cpp_stl_string_cpp20.pyx b/tests/run/cpp_stl_string_cpp20.pyx new file mode 100644 index 000000000..f3a2b80d1 --- /dev/null +++ b/tests/run/cpp_stl_string_cpp20.pyx @@ -0,0 +1,61 @@ +# mode: run +# tag: cpp, werror, cpp20 + +from libcpp cimport bool +from libcpp.string cimport string + +b_A = b'A' +b_F = b'F' +b_abc = b"ABC" +b_def = b"DEF" + +def test_string_starts_with_char(bytes py_str): + """ + Test std::string.starts_with() with char type argument + >>> test_string_starts_with_char(b'A') + True + >>> test_string_starts_with_char(b'F') + False + """ + cdef char c = py_str[0] + cdef string s = b"ABCDEF" + return s.starts_with(c) + + +def test_string_starts_with_cstr(bytes py_str): + """ + Test std::string.starts_with() with c str type argument (char*) + >>> test_string_starts_with_cstr(b"ABC") + True + >>> test_string_starts_with_cstr(b"DEF") + False + """ + cdef char* c = py_str + cdef string s = b"ABCDEF" + return s.starts_with(c) + + +def test_string_ends_with_char(bytes py_str): + """ + Test std::string.ends_with() with char type argument + >>> test_string_ends_with_char(b'F') + True + >>> test_string_ends_with_char(b'A') + False + """ + cdef char c = py_str[0] + cdef string s = b"ABCDEF" + return s.ends_with(c) + + +def test_string_ends_with_cstr(bytes py_str): + """ + Test std::string.ends_with() with c str type argument (char*) + >>> test_string_ends_with_cstr(b"DEF") + True + >>> test_string_ends_with_cstr(b"ABC") + False + """ + cdef char* c = py_str + cdef string s = b"ABCDEF" + return s.ends_with(c)
\ No newline at end of file |