From d04ca6ef23409d95c4a8a76befdfb792e8514bf8 Mon Sep 17 00:00:00 2001 From: Parashurama Date: Wed, 11 Jan 2017 09:48:31 +0100 Subject: 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 --- tests/stdlib/tstrutil.nim | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'tests') diff --git a/tests/stdlib/tstrutil.nim b/tests/stdlib/tstrutil.nim index b97f2b1e9..b5e3db4e2 100644 --- a/tests/stdlib/tstrutil.nim +++ b/tests/stdlib/tstrutil.nim @@ -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") -- cgit 1.4.1-2-gfad0