@@ -262,6 +262,8 @@ u8str = "∀ ε > 0, ∃ δ > 0: |x-y| < δ ⇒ |f(x)-f(y)| < ε"
262262
263263# ascii search
264264for str in [astr, Base. GenericString (astr)]
265+ @test_throws BoundsError search (str, ' z' , 0 )
266+ @test_throws BoundsError search (str, ' ∀' , 0 )
265267 @test search (str, ' x' ) == 0
266268 @test search (str, ' \0 ' ) == 0
267269 @test search (str, ' \u 80' ) == 0
@@ -275,6 +277,8 @@ for str in [astr, Base.GenericString(astr)]
275277 @test search (str, ' ,' , 7 ) == 0
276278 @test search (str, ' \n ' ) == 14
277279 @test search (str, ' \n ' , 15 ) == 0
280+ @test_throws BoundsError search (str, ' ε' , nextind (str,endof (str))+ 1 )
281+ @test_throws BoundsError search (str, ' a' , nextind (str,endof (str))+ 1 )
278282end
279283
280284# ascii rsearch
@@ -297,23 +301,32 @@ end
297301
298302# utf-8 search
299303for str in (u8str, Base. GenericString (u8str))
304+ @test_throws BoundsError search (str, ' z' , 0 )
305+ @test_throws BoundsError search (str, ' ∀' , 0 )
300306 @test search (str, ' z' ) == 0
301307 @test search (str, ' \0 ' ) == 0
302308 @test search (str, ' \u 80' ) == 0
303309 @test search (str, ' ∄' ) == 0
304310 @test search (str, ' ∀' ) == 1
305- @test search (str, ' ∀' , 2 ) == 0
311+ @test_throws UnicodeError search (str, ' ∀' , 2 )
312+ @test search (str, ' ∀' , 4 ) == 0
306313 @test search (str, ' ∃' ) == 13
307- @test search (str, ' ∃' , 14 ) == 0
314+ @test_throws UnicodeError search (str, ' ∃' , 15 )
315+ @test search (str, ' ∃' , 16 ) == 0
308316 @test search (str, ' x' ) == 26
309317 @test search (str, ' x' , 27 ) == 43
310318 @test search (str, ' x' , 44 ) == 0
311319 @test search (str, ' δ' ) == 17
312- @test search (str, ' δ' , 18 ) == 33
313- @test search (str, ' δ' , 34 ) == 0
320+ @test_throws UnicodeError search (str, ' δ' , 18 )
321+ @test search (str, ' δ' , nextind (str,17 )) == 33
322+ @test search (str, ' δ' , nextind (str,33 )) == 0
314323 @test search (str, ' ε' ) == 5
315- @test search (str, ' ε' , 6 ) == 54
316- @test search (str, ' ε' , 55 ) == 0
324+ @test search (str, ' ε' , nextind (str,5 )) == 54
325+ @test search (str, ' ε' , nextind (str,54 )) == 0
326+ @test search (str, ' ε' , nextind (str,endof (str))) == 0
327+ @test search (str, ' a' , nextind (str,endof (str))) == 0
328+ @test_throws BoundsError search (str, ' ε' , nextind (str,endof (str))+ 1 )
329+ @test_throws BoundsError search (str, ' a' , nextind (str,endof (str))+ 1 )
317330end
318331
319332# utf-8 rsearch
0 commit comments