summaryrefslogtreecommitdiff
path: root/test/pcre_sets.lua
diff options
context:
space:
mode:
authorshmuz <shmuz>2007-04-19 07:02:33 +0000
committershmuz <shmuz>2007-04-19 07:02:33 +0000
commit0ff6b1ed54f366b76dc74be466ead118c94e3ab4 (patch)
tree9a2338a7a7dea8b259ce8a447b293aa7d317c065 /test/pcre_sets.lua
parent63cdc5a4fa6b6f11f782c40995779a2a3af6db98 (diff)
downloadlrexlib-0ff6b1ed54f366b76dc74be466ead118c94e3ab4.tar.gz
many changes -- see Changelog
Diffstat (limited to 'test/pcre_sets.lua')
-rwxr-xr-xtest/pcre_sets.lua54
1 files changed, 54 insertions, 0 deletions
diff --git a/test/pcre_sets.lua b/test/pcre_sets.lua
index 1897398..0538d1c 100755
--- a/test/pcre_sets.lua
+++ b/test/pcre_sets.lua
@@ -26,6 +26,9 @@ local function set_named_subpatterns (lib, flg)
end
local function set_f_find (lib, flg)
+ local cp1251 =
+ "ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÜÛÚÝÞßàáâãäå¸æçèéêëìíîïðñòóôõö÷øùüûúýþÿ"
+ local loc = "Russian_Russia.1251"
return {
Name = "Function find",
Func = lib.find,
@@ -35,6 +38,8 @@ local function set_f_find (lib, flg)
{ {"abc", "aBC", N,flg.CASELESS}, { 1,3 } }, -- cf
{ {"abc", "bc", N,N,flg.ANCHORED}, { N } }, -- cf
{ {"abc", "bc", N,N,flg.ANCHORED}, { N } }, -- ef
+ { {cp1251, "[[:upper:]]+", N,N,N, loc}, { 1,33} }, -- locale
+ { {cp1251, "[[:lower:]]+", N,N,N, loc}, {34,66} }, -- locale
}
end
@@ -51,6 +56,53 @@ local function set_f_match (lib, flg)
}
end
+local function set_f_gmatch (lib, flg)
+ -- gmatch (s, p, [cf], [ef])
+ local pCSV = "(^[^,]*)|,([^,]*)"
+ local F = false
+ local function test_gmatch (subj, patt)
+ local out, guard = {}, 10
+ for a, b in lib.gmatch (subj, patt) do
+ table.insert (out, { norm(a), norm(b) })
+ guard = guard - 1
+ if guard == 0 then break end
+ end
+ return unpack (out)
+ end
+ return {
+ Name = "Function gmatch",
+ Func = test_gmatch,
+ --{ subj patt results }
+ { {"", pCSV}, {{"",F}} },
+ { {"12", pCSV}, {{"12",F}} },
+ { {",", pCSV}, {{"", F},{F,""}} },
+ { {"12,,45", pCSV}, {{"12",F},{F,""},{F,"45"}} },
+ { {",,12,45,,ab,", pCSV}, {{"",F},{F,""},{F,"12"},{F,"45"},{F,""},{F,"ab"},{F,""}} },
+ }
+end
+
+local function set_f_split (lib, flg)
+ -- split (s, p, [cf], [ef])
+ local function test_split (subj, patt)
+ local out, guard = {}, 10
+ for a, b, c in lib.split (subj, patt) do
+ table.insert (out, { norm(a), norm(b), norm(c) })
+ guard = guard - 1
+ if guard == 0 then break end
+ end
+ return unpack (out)
+ end
+ return {
+ Name = "Function split",
+ Func = test_split,
+ --{ subj patt results }
+ { {"ab", "$"}, {{"ab","",N}, {"",N,N}, } },
+ { {"ab", "^|$"}, {{"", "", N}, {"ab","",N}, {"",N,N}, } },
+ { {"ab45ab","(?<=ab).*?"}, {{"ab","",N}, {"45ab","",N},{"",N,N}, } },
+ { {"ab", "\\b"}, {{"", "", N}, {"ab","",N}, {"",N,N}, } },
+ }
+end
+
local function set_m_exec (lib, flg)
return {
Name = "Method exec",
@@ -105,6 +157,8 @@ return function (libname)
local sets = {
set_f_match (lib, flags),
set_f_find (lib, flags),
+ set_f_gmatch (lib, flags),
+ set_f_split (lib, flags),
set_m_exec (lib, flags),
set_m_tfind (lib, flags),
}