@@ -5,7 +5,6 @@ from ExtraMojo.bstr.bstr import (
55 to_ascii_uppercase,
66)
77from ExtraMojo.bstr.memchr import memchr, memchr_wide
8- from memory import Span
98from testing import *
109
1110
@@ -28,30 +27,36 @@ fn s(bytes: Span[UInt8]) -> String:
2827
2928
3029fn test_memchr () raises :
31- var cases = List[(StringLiteral, Int)](
32- (
33- " enlivened,unleavened,Arnulfo's,Unilever's,unloved|Anouilh,analogue,analogy" ,
34- 49 ,
35- ),
36- (
37- " enlivened,unleavened,Arnulfo's,Unilever's,unloved,Anouilh,analogue,analogy,enlivened,unleavened,Arnulfo's,Unilever's,unloved|Anouilh,analogue,analogy" ,
38- 124 ,
39- ),
40- )
41-
42- for kase in cases:
43- var index = memchr(kase[][0 ].as_bytes(), ord (" |" ))
44- assert_equal(
45- index,
46- kase[][1 ],
47- " Expected "
48- + String(kase[][1 ])
49- + " Found "
50- + String(index)
51- + " in "
52- + kase[][0 ],
30+ alias check = InlineArray[Bool, 2 ](True , False )
31+
32+ @parameter
33+ for do_alignment in range (0 , len (check)):
34+ var cases = List[(StringLiteral, Int)](
35+ (
36+ " enlivened,unleavened,Arnulfo's,Unilever's,unloved|Anouilh,analogue,analogy" ,
37+ 49 ,
38+ ),
39+ (
40+ " enlivened,unleavened,Arnulfo's,Unilever's,unloved,Anouilh,analogue,analogy,enlivened,unleavened,Arnulfo's,Unilever's,unloved|Anouilh,analogue,analogy" ,
41+ 124 ,
42+ ),
5343 )
5444
45+ for kase in cases:
46+ var index = memchr[do_alignment = check[do_alignment]](
47+ kase[][0 ].as_bytes(), ord (" |" )
48+ )
49+ assert_equal(
50+ index,
51+ kase[][1 ],
52+ " Expected "
53+ + String(kase[][1 ])
54+ + " Found "
55+ + String(index)
56+ + " in "
57+ + kase[][0 ],
58+ )
59+
5560
5661fn test_memchr_wide () raises :
5762 var cases = List[(StringLiteral, Int)](
0 commit comments