needspeed: rpartition documentation, tests, and a bug fixes.
feel free to add more tests and improve the documentation.
This commit is contained in:
parent
b3167cbcd7
commit
9c0e9c089c
|
@ -763,6 +763,15 @@ The original string is returned if
|
||||||
\versionchanged[Support for the \var{fillchar} argument]{2.4}
|
\versionchanged[Support for the \var{fillchar} argument]{2.4}
|
||||||
\end{methoddesc}
|
\end{methoddesc}
|
||||||
|
|
||||||
|
\begin{methoddesc}[string]{rpartition}{sep}
|
||||||
|
Split the string at the last occurrence of \var{sep}, and return
|
||||||
|
a 3-tuple containing the part before the separator, the separator
|
||||||
|
itself, and the part after the separator. If the separator is not
|
||||||
|
found, return a 3-tuple containing the string itself, followed by
|
||||||
|
two empty strings.
|
||||||
|
\versionadded{2.5}
|
||||||
|
\end{methoddesc}
|
||||||
|
|
||||||
\begin{methoddesc}[string]{rsplit}{\optional{sep \optional{,maxsplit}}}
|
\begin{methoddesc}[string]{rsplit}{\optional{sep \optional{,maxsplit}}}
|
||||||
Return a list of the words in the string, using \var{sep} as the
|
Return a list of the words in the string, using \var{sep} as the
|
||||||
delimiter string. If \var{maxsplit} is given, at most \var{maxsplit}
|
delimiter string. If \var{maxsplit} is given, at most \var{maxsplit}
|
||||||
|
|
|
@ -999,8 +999,8 @@ class MixinStrUnicodeUserStringTest:
|
||||||
|
|
||||||
def test_partition(self):
|
def test_partition(self):
|
||||||
|
|
||||||
self.checkequal(('this', ' is ', 'the partition method'),
|
self.checkequal(('this is the par', 'ti', 'tion method'),
|
||||||
'this is the partition method', 'partition', ' is ')
|
'this is the partition method', 'partition', 'ti')
|
||||||
|
|
||||||
# from raymond's original specification
|
# from raymond's original specification
|
||||||
S = 'http://www.python.org'
|
S = 'http://www.python.org'
|
||||||
|
@ -1012,6 +1012,21 @@ class MixinStrUnicodeUserStringTest:
|
||||||
self.checkraises(ValueError, S, 'partition', '')
|
self.checkraises(ValueError, S, 'partition', '')
|
||||||
self.checkraises(TypeError, S, 'partition', None)
|
self.checkraises(TypeError, S, 'partition', None)
|
||||||
|
|
||||||
|
def test_rpartition(self):
|
||||||
|
|
||||||
|
self.checkequal(('this is the rparti', 'ti', 'on method'),
|
||||||
|
'this is the rpartition method', 'rpartition', 'ti')
|
||||||
|
|
||||||
|
# from raymond's original specification
|
||||||
|
S = 'http://www.python.org'
|
||||||
|
self.checkequal(('http', '://', 'www.python.org'), S, 'rpartition', '://')
|
||||||
|
self.checkequal(('http://www.python.org', '', ''), S, 'rpartition', '?')
|
||||||
|
self.checkequal(('', 'http://', 'www.python.org'), S, 'rpartition', 'http://')
|
||||||
|
self.checkequal(('http://www.python.', 'org', ''), S, 'rpartition', 'org')
|
||||||
|
|
||||||
|
self.checkraises(ValueError, S, 'rpartition', '')
|
||||||
|
self.checkraises(TypeError, S, 'rpartition', None)
|
||||||
|
|
||||||
|
|
||||||
class MixinStrStringUserStringTest:
|
class MixinStrStringUserStringTest:
|
||||||
# Additional tests for 8bit strings, i.e. str, UserString and
|
# Additional tests for 8bit strings, i.e. str, UserString and
|
||||||
|
|
|
@ -3861,8 +3861,8 @@ int PyUnicode_EncodeDecimal(Py_UNICODE *s,
|
||||||
Py_LOCAL(int)
|
Py_LOCAL(int)
|
||||||
STRINGLIB_CMP(const Py_UNICODE* str, const Py_UNICODE* other, Py_ssize_t len)
|
STRINGLIB_CMP(const Py_UNICODE* str, const Py_UNICODE* other, Py_ssize_t len)
|
||||||
{
|
{
|
||||||
if (str[0] == other[0])
|
if (str[0] != other[0])
|
||||||
return 0;
|
return 1;
|
||||||
return memcmp((void*) str, (void*) other, len * sizeof(Py_UNICODE));
|
return memcmp((void*) str, (void*) other, len * sizeof(Py_UNICODE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue