summaryrefslogtreecommitdiff
path: root/tests/run/cpp_stl_string_cpp20.pyx
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/cpp_stl_string_cpp20.pyx')
-rw-r--r--tests/run/cpp_stl_string_cpp20.pyx61
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