mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-23 19:36:53 +00:00
Improve & optimize strutils 'find' procs (#5196)
* add 'last' argument to 'find' procs in strutils * add 'rfind' proc for looking up set[char] in strutils * use optimised C function 'memchr' when available
This commit is contained in:
committed by
Andreas Rumpf
parent
abe5cb82a0
commit
d04ca6ef23
@@ -64,7 +64,34 @@ proc testDelete =
|
||||
delete(s, 0, 0)
|
||||
assert s == "1236789ABCDEFG"
|
||||
|
||||
proc testFind =
|
||||
assert "0123456789ABCDEFGH".find('A') == 10
|
||||
assert "0123456789ABCDEFGH".find('A', 5) == 10
|
||||
assert "0123456789ABCDEFGH".find('A', 5, 10) == 10
|
||||
assert "0123456789ABCDEFGH".find('A', 5, 9) == -1
|
||||
assert "0123456789ABCDEFGH".find("A") == 10
|
||||
assert "0123456789ABCDEFGH".find("A", 5) == 10
|
||||
assert "0123456789ABCDEFGH".find("A", 5, 10) == 10
|
||||
assert "0123456789ABCDEFGH".find("A", 5, 9) == -1
|
||||
assert "0123456789ABCDEFGH".find({'A'..'C'}) == 10
|
||||
assert "0123456789ABCDEFGH".find({'A'..'C'}, 5) == 10
|
||||
assert "0123456789ABCDEFGH".find({'A'..'C'}, 5, 10) == 10
|
||||
assert "0123456789ABCDEFGH".find({'A'..'C'}, 5, 9) == -1
|
||||
|
||||
proc testRFind =
|
||||
assert "0123456789ABCDEFGAH".rfind('A') == 17
|
||||
assert "0123456789ABCDEFGAH".rfind('A', 13) == 10
|
||||
assert "0123456789ABCDEFGAH".rfind('H', 13) == -1
|
||||
assert "0123456789ABCDEFGAH".rfind("A") == 17
|
||||
assert "0123456789ABCDEFGAH".rfind("A", 13) == 10
|
||||
assert "0123456789ABCDEFGAH".rfind("H", 13) == -1
|
||||
assert "0123456789ABCDEFGAH".rfind({'A'..'C'}) == 17
|
||||
assert "0123456789ABCDEFGAH".rfind({'A'..'C'}, 13) == 12
|
||||
assert "0123456789ABCDEFGAH".rfind({'G'..'H'}, 13) == -1
|
||||
|
||||
testDelete()
|
||||
testFind()
|
||||
testRFind()
|
||||
|
||||
assert(insertSep($1000_000) == "1_000_000")
|
||||
assert(insertSep($232) == "232")
|
||||
|
||||
Reference in New Issue
Block a user