@@ -177,3 +177,35 @@ assert_eq("abc" * 0, "")
177
177
assert_eq ("abc" * - 1 , "" )
178
178
assert_fails (lambda : "abc" * (1 << 35 ), "got 34359738368 for repeat, want value in signed 32-bit range" )
179
179
assert_fails (lambda : "abc" * (1 << 30 ), "excessive repeat \\ (3 \\ * 1073741824 characters\\ )" )
180
+
181
+ # removeprefix
182
+ assert_eq ("Apricot" .removeprefix ("Apr" ), "icot" )
183
+ assert_eq ("Apricot" .removeprefix ("apr" ), "Apricot" )
184
+ assert_eq ("Apricot" .removeprefix ("A" ), "pricot" )
185
+ assert_eq ("a" .removeprefix ("" ), "a" )
186
+ assert_eq ("" .removeprefix ("" ), "" )
187
+ assert_eq ("" .removeprefix ("a" ), "" )
188
+ assert_eq ("Apricot" .removeprefix ("pr" ), "Apricot" )
189
+ assert_eq ("AprApricot" .removeprefix ("Apr" ), "Apricot" )
190
+ def removeprefix_self_unmodified ():
191
+ original_string = "Apricot"
192
+ assert_eq (original_string .removeprefix ("Apr" ), "icot" )
193
+ assert_eq (original_string , "Apricot" )
194
+ removeprefix_self_unmodified ()
195
+ assert_fails (lambda : "1234" .removeprefix (1 ), "got value of type 'int', want 'string" )
196
+
197
+ # removesuffix
198
+ assert_eq ("Apricot" .removesuffix ("cot" ), "Apri" )
199
+ assert_eq ("Apricot" .removesuffix ("Cot" ), "Apricot" )
200
+ assert_eq ("Apricot" .removesuffix ("t" ), "Aprico" )
201
+ assert_eq ("a" .removesuffix ("" ), "a" )
202
+ assert_eq ("" .removesuffix ("" ), "" )
203
+ assert_eq ("" .removesuffix ("a" ), "" )
204
+ assert_eq ("Apricot" .removesuffix ("co" ), "Apricot" )
205
+ assert_eq ("Apricotcot" .removesuffix ("cot" ), "Apricot" )
206
+ def removesuffix_self_unmodified ():
207
+ original_string = "Apricot"
208
+ assert_eq (original_string .removesuffix ("cot" ), "Apri" )
209
+ assert_eq (original_string , "Apricot" )
210
+ removesuffix_self_unmodified ()
211
+ assert_fails (lambda : "1234" .removesuffix (4 ), "got value of type 'int', want 'string" )
0 commit comments