diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2019-01-08 14:22:32 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2019-01-08 14:22:32 -0200 |
commit | 264659bd53e92969a1e17d65c0266597cde24b5d (patch) | |
tree | 6aba62d2b6ac2a46dc064ea7193c8134200a7d57 /testes | |
parent | 4ace93ca6502dd1da38d5c06fa099d229e791ba8 (diff) | |
download | lua-264659bd53e92969a1e17d65c0266597cde24b5d.tar.gz lua-264659bd53e92969a1e17d65c0266597cde24b5d.tar.bz2 lua-264659bd53e92969a1e17d65c0266597cde24b5d.zip |
Optional 'init' argument to 'string.gmatch'
The function 'string.gmatch' now has an optional 'init' argument,
similar to 'string.find' and 'string.match'. Moreover, there was
some reorganization in the manipulation of indices in the string
library.
This commit also includes small janitorial work in the manual
and in comments in the interpreter loop.
Diffstat (limited to 'testes')
-rw-r--r-- | testes/pm.lua | 29 | ||||
-rw-r--r-- | testes/strings.lua | 5 | ||||
-rw-r--r-- | testes/tpack.lua | 2 |
3 files changed, 34 insertions, 2 deletions
diff --git a/testes/pm.lua b/testes/pm.lua index 1afaccf6..8cc8772e 100644 --- a/testes/pm.lua +++ b/testes/pm.lua | |||
@@ -297,6 +297,35 @@ for k,v in pairs(t) do assert(k+1 == v+0); a=a+1 end | |||
297 | assert(a == 3) | 297 | assert(a == 3) |
298 | 298 | ||
299 | 299 | ||
300 | do -- init parameter in gmatch | ||
301 | local s = 0 | ||
302 | for k in string.gmatch("10 20 30", "%d+", 3) do | ||
303 | s = s + tonumber(k) | ||
304 | end | ||
305 | assert(s == 50) | ||
306 | |||
307 | s = 0 | ||
308 | for k in string.gmatch("11 21 31", "%d+", -4) do | ||
309 | s = s + tonumber(k) | ||
310 | end | ||
311 | assert(s == 32) | ||
312 | |||
313 | -- there is an empty string at the end of the subject | ||
314 | s = 0 | ||
315 | for k in string.gmatch("11 21 31", "%w*", 9) do | ||
316 | s = s + 1 | ||
317 | end | ||
318 | assert(s == 1) | ||
319 | |||
320 | -- there are no empty strings after the end of the subject | ||
321 | s = 0 | ||
322 | for k in string.gmatch("11 21 31", "%w*", 10) do | ||
323 | s = s + 1 | ||
324 | end | ||
325 | assert(s == 0) | ||
326 | end | ||
327 | |||
328 | |||
300 | -- tests for `%f' (`frontiers') | 329 | -- tests for `%f' (`frontiers') |
301 | 330 | ||
302 | assert(string.gsub("aaa aa a aaa a", "%f[%w]a", "x") == "xaa xa x xaa x") | 331 | assert(string.gsub("aaa aa a aaa a", "%f[%w]a", "x") == "xaa xa x xaa x") |
diff --git a/testes/strings.lua b/testes/strings.lua index 587a0e06..88480924 100644 --- a/testes/strings.lua +++ b/testes/strings.lua | |||
@@ -94,6 +94,11 @@ assert(string.char(string.byte("\xe4l\0ķu", 1, -1)) == "\xe4l\0ķu") | |||
94 | assert(string.char(string.byte("\xe4l\0ķu", 1, 0)) == "") | 94 | assert(string.char(string.byte("\xe4l\0ķu", 1, 0)) == "") |
95 | assert(string.char(string.byte("\xe4l\0ķu", -10, 100)) == "\xe4l\0ķu") | 95 | assert(string.char(string.byte("\xe4l\0ķu", -10, 100)) == "\xe4l\0ķu") |
96 | 96 | ||
97 | checkerror("out of range", string.char, 256) | ||
98 | checkerror("out of range", string.char, -1) | ||
99 | checkerror("out of range", string.char, math.maxinteger) | ||
100 | checkerror("out of range", string.char, math.mininteger) | ||
101 | |||
97 | assert(string.upper("ab\0c") == "AB\0C") | 102 | assert(string.upper("ab\0c") == "AB\0C") |
98 | assert(string.lower("\0ABCc%$") == "\0abcc%$") | 103 | assert(string.lower("\0ABCc%$") == "\0abcc%$") |
99 | assert(string.rep('teste', 0) == '') | 104 | assert(string.rep('teste', 0) == '') |
diff --git a/testes/tpack.lua b/testes/tpack.lua index 4c5fc7f7..2b9953f8 100644 --- a/testes/tpack.lua +++ b/testes/tpack.lua | |||
@@ -314,9 +314,7 @@ do -- testing initial position | |||
314 | for i = 1, #x + 1 do | 314 | for i = 1, #x + 1 do |
315 | assert(unpack("c0", x, i) == "") | 315 | assert(unpack("c0", x, i) == "") |
316 | end | 316 | end |
317 | checkerror("out of string", unpack, "c0", x, 0) | ||
318 | checkerror("out of string", unpack, "c0", x, #x + 2) | 317 | checkerror("out of string", unpack, "c0", x, #x + 2) |
319 | checkerror("out of string", unpack, "c0", x, -(#x + 1)) | ||
320 | 318 | ||
321 | end | 319 | end |
322 | 320 | ||