summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--tests/test-suite/pm-classes.lua9
-rw-r--r--tests/test-suite/pm-gsub.lua17
-rw-r--r--tests/test-suite/pm.js (renamed from tests/test-suite/inprogress/pm.js)40
4 files changed, 36 insertions, 32 deletions
diff --git a/README.md b/README.md
index a4e8b7e..d99b100 100644
--- a/README.md
+++ b/README.md
@@ -68,12 +68,12 @@
- [x] `locals.lua` (10/10)
- [x] `math.lua` (68/68)
- [x] `nextvar.lua` (44/44)
+ - [x] `pm.lua` (36/36)
- [x] `sort.lua` (24/24)
- [x] `strings.lua` (34/34)
- [x] `utf8.lua` (18/18)
- [x] `vararg.lua` (8/8)
- [ ] `db.lua` (46/54)
- - [ ] `pm.lua` (34/36)
- [ ] `tpack.lua` (20/32)
- [ ] `big.lua`
- [ ] `verybig.lua`
diff --git a/tests/test-suite/pm-classes.lua b/tests/test-suite/pm-classes.lua
new file mode 100644
index 0000000..59cca12
--- /dev/null
+++ b/tests/test-suite/pm-classes.lua
@@ -0,0 +1,9 @@
+assert(string.match("alo xyzK", "(%w+)K") == "xyz")
+assert(string.match("254 K", "(%d*)K") == "")
+assert(string.match("alo ", "(%w*)$") == "")
+assert(string.match("alo ", "(%w+)$") == nil)
+assert(string.find("(álo)", "%(á") == 1)
+local a, b, c, d, e = string.match("âlo alo", "^(((.).).* (%w*))$")
+assert(a == 'âlo alo' and b == 'âl' and c == 'â' and d == 'alo' and e == nil)
+a, b, c, d = string.match('0123456789', '(.+(.?)())')
+assert(a == '0123456789' and b == '' and c == 11 and d == nil)
diff --git a/tests/test-suite/pm-gsub.lua b/tests/test-suite/pm-gsub.lua
new file mode 100644
index 0000000..d873cce
--- /dev/null
+++ b/tests/test-suite/pm-gsub.lua
@@ -0,0 +1,17 @@
+assert(string.gsub('ülo ülo', 'ü', 'x') == 'xlo xlo')
+assert(string.gsub('alo úlo ', ' +$', '') == 'alo úlo') -- trim
+assert(string.gsub(' alo alo ', '^%s*(.-)%s*$', '%1') == 'alo alo') -- double trim
+assert(string.gsub('alo alo \n 123\n ', '%s+', ' ') == 'alo alo 123 ')
+t = "abç d"
+a, b = string.gsub(t, '(.)', '%1@')
+assert('@'..a == string.gsub(t, '', '@') and b == 5)
+a, b = string.gsub('abçd', '(.)', '%0@', 2)
+assert(a == 'a@b@çd' and b == 2)
+assert(string.gsub('alo alo', '()[al]', '%1') == '12o 56o')
+assert(string.gsub("abc=xyz", "(%w*)(%p)(%w+)", "%3%2%1-%0") ==
+ "xyz=abc-abc=xyz")
+assert(string.gsub("abc", "%w", "%1%0") == "aabbcc")
+assert(string.gsub("abc", "%w+", "%0%1") == "abcabc")
+assert(string.gsub('áéí', '$', '\0óú') == 'áéí\0óú')
+assert(string.gsub('', '^', 'r') == 'r')
+assert(string.gsub('', '$', 'r') == 'r')
diff --git a/tests/test-suite/inprogress/pm.js b/tests/test-suite/pm.js
index d54a848..a8a58cd 100644
--- a/tests/test-suite/inprogress/pm.js
+++ b/tests/test-suite/pm.js
@@ -4,9 +4,9 @@ const test = require('tape');
global.WEB = false;
-const lua = require('../../../src/lua.js');
-const lauxlib = require('../../../src/lauxlib.js');
-const lualib = require('../../../src/lualib.js');
+const lua = require('../../src/lua.js');
+const lauxlib = require('../../src/lauxlib.js');
+const lualib = require('../../src/lualib.js');
test("[test-suite] pm: pattern matching", function (t) {
@@ -200,18 +200,11 @@ test("[test-suite] pm: range", function (t) {
});
-
+// Can't be represented by JS string, testing from actual lua file
test("[test-suite] pm: classes", function (t) {
let luaCode = `
- assert(string.match("alo xyzK", "(%w+)K") == "xyz")
- assert(string.match("254 K", "(%d*)K") == "")
- assert(string.match("alo ", "(%w*)$") == "")
- assert(string.match("alo ", "(%w+)$") == nil)
- assert(string.find("(álo)", "%(á") == 1)
- local a, b, c, d, e = string.match("âlo alo", "^(((.).).* (%w*))$")
- assert(a == 'âlo alo' and b == 'âl' and c == 'â' and d == 'alo' and e == nil)
- a, b, c, d = string.match('0123456789', '(.+(.?)())')
- assert(a == '0123456789' and b == '' and c == 11 and d == nil)
+ local f = loadfile("tests/test-suite/pm-classes.lua")
+ return f()
`, L;
t.plan(2);
@@ -234,26 +227,11 @@ test("[test-suite] pm: classes", function (t) {
});
-
+// Can't be represented by JS string, testing from actual lua file
test("[test-suite] pm: gsub", function (t) {
let luaCode = `
- assert(string.gsub('ülo ülo', 'ü', 'x') == 'xlo xlo')
- assert(string.gsub('alo úlo ', ' +$', '') == 'alo úlo') -- trim
- assert(string.gsub(' alo alo ', '^%s*(.-)%s*$', '%1') == 'alo alo') -- double trim
- assert(string.gsub('alo alo \\n 123\\n ', '%s+', ' ') == 'alo alo 123 ')
- t = "abç d"
- a, b = string.gsub(t, '(.)', '%1@')
- assert('@'..a == string.gsub(t, '', '@') and b == 5)
- a, b = string.gsub('abçd', '(.)', '%0@', 2)
- assert(a == 'a@b@çd' and b == 2)
- assert(string.gsub('alo alo', '()[al]', '%1') == '12o 56o')
- assert(string.gsub("abc=xyz", "(%w*)(%p)(%w+)", "%3%2%1-%0") ==
- "xyz=abc-abc=xyz")
- assert(string.gsub("abc", "%w", "%1%0") == "aabbcc")
- assert(string.gsub("abc", "%w+", "%0%1") == "abcabc")
- assert(string.gsub('áéí', '$', '\\0óú') == 'áéí\\0óú')
- assert(string.gsub('', '^', 'r') == 'r')
- assert(string.gsub('', '$', 'r') == 'r')
+ local f = loadfile("tests/test-suite/pm-gsub.lua")
+ return f()
`, L;
t.plan(2);