@@ -61,6 +61,14 @@ def do_split(s: str, sep: Optional[str] = None, max_split: Optional[int] = None)
6161 return s.split(sep)
6262 return s.split()
6363
64+ def do_rsplit(s: str, sep: Optional[str] = None, max_split: Optional[int] = None) -> List[str]:
65+ if sep is not None:
66+ if max_split is not None:
67+ return s.rsplit(sep, max_split)
68+ else:
69+ return s.rsplit(sep)
70+ return s.rsplit()
71+
6472ss = "abc abcd abcde abcdef"
6573
6674def test_split() -> None:
@@ -72,6 +80,15 @@ def test_split() -> None:
7280 assert do_split(ss, " ", 1) == ["abc", "abcd abcde abcdef"]
7381 assert do_split(ss, " ", 2) == ["abc", "abcd", "abcde abcdef"]
7482
83+ def test_rsplit() -> None:
84+ assert do_rsplit(ss) == ["abc", "abcd", "abcde", "abcdef"]
85+ assert do_rsplit(ss, " ") == ["abc", "abcd", "abcde", "abcdef"]
86+ assert do_rsplit(ss, "-") == ["abc abcd abcde abcdef"]
87+ assert do_rsplit(ss, " ", -1) == ["abc", "abcd", "abcde", "abcdef"]
88+ assert do_rsplit(ss, " ", 0) == ["abc abcd abcde abcdef"]
89+ assert do_rsplit(ss, " ", 1) == ["abc abcd abcde", "abcdef"] # different to do_split
90+ assert do_rsplit(ss, " ", 2) == ["abc abcd", "abcde", "abcdef"] # different to do_split
91+
7592def getitem(s: str, index: int) -> str:
7693 return s[index]
7794
0 commit comments