summaryrefslogtreecommitdiff
path: root/Data/DefaultContent/Libraries/LiteJson/test
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-15 11:54:17 +0800
committerchai <chaifix@163.com>2021-11-15 11:54:17 +0800
commit30f2f46474bf4eda5f10d4c64a07cde01d469f66 (patch)
tree6ff2ed3262037b3c9bae2d2b9059a1d65773f31c /Data/DefaultContent/Libraries/LiteJson/test
parent4c36bed53fe63ae6056730b3ecad2573f03d88f8 (diff)
*rename DefaultContent -> BuiltIn
Diffstat (limited to 'Data/DefaultContent/Libraries/LiteJson/test')
-rw-r--r--Data/DefaultContent/Libraries/LiteJson/test/test.lua245
1 files changed, 0 insertions, 245 deletions
diff --git a/Data/DefaultContent/Libraries/LiteJson/test/test.lua b/Data/DefaultContent/Libraries/LiteJson/test/test.lua
deleted file mode 100644
index 74470b2..0000000
--- a/Data/DefaultContent/Libraries/LiteJson/test/test.lua
+++ /dev/null
@@ -1,245 +0,0 @@
-
-local json = loadfile("../json.lua")()
-
-
-local fmt = string.format
-
-local function test(name, func)
- xpcall(function()
- func()
- print( fmt("[pass] %s", name) )
- end, function(err)
- print( fmt("[fail] %s : %s", name, err) )
- end)
-end
-
-
-local function equal(a, b)
- -- Handle table
- if type(a) == "table" and type(b) == "table" then
- for k in pairs(a) do
- if not equal(a[k], b[k]) then
- return false
- end
- end
- for k in pairs(b) do
- if not equal(b[k], a[k]) then
- return false
- end
- end
- return true
- end
- -- Handle scalar
- return a == b
-end
-
-
-test("numbers", function()
- local t = {
- [ "123.456" ] = 123.456,
- [ "-123" ] = -123,
- [ "-567.765" ] = -567.765,
- [ "12.3" ] = 12.3,
- [ "0" ] = 0,
- [ "0.10000000012" ] = 0.10000000012,
- }
- for k, v in pairs(t) do
- local res = json.decode(k)
- assert( res == v, fmt("expected '%s', got '%s'", k, res) )
- local res = json.encode(v)
- assert( res == k, fmt("expected '%s', got '%s'", v, res) )
- end
- assert( json.decode("13e2") == 13e2 )
- assert( json.decode("13E+2") == 13e2 )
- assert( json.decode("13e-2") == 13e-2 )
-end)
-
-
-test("literals", function()
- assert( json.decode("true") == true )
- assert( json.encode(true) == "true" )
- assert( json.decode("false") == false )
- assert( json.encode(false) == "false" )
- assert( json.decode("null") == nil )
- assert( json.encode(nil) == "null")
-end)
-
-
-test("strings", function()
- local s = ""
- assert( s == json.decode( json.encode(s) ) )
- local s = "\\"
- assert( s == json.decode( json.encode(s) ) )
- local s = "Hello world"
- assert( s == json.decode( json.encode(s) ) )
- local s = "\0 \13 \27"
- assert( s == json.decode( json.encode(s) ) )
- local s = "\0\r\n\8"
- assert( s == json.decode( json.encode(s) ) )
-end)
-
-
-test("unicode", function()
- local s = "こんにちは世界"
- assert( s == json.decode( json.encode(s) ) )
-end)
-
-
-test("arrays", function()
- local t = { "cat", "dog", "owl" }
- assert( equal( t, json.decode( json.encode(t) ) ) )
-end)
-
-
-test("objects", function()
- local t = { x = 10, y = 20, z = 30 }
- assert( equal( t, json.decode( json.encode(t) ) ) )
-end)
-
-
---test("strict decode", function()
--- local t = {
--- '{x : 1}',
--- '{x : hello}',
--- "{'x' : 1}",
--- '{"x" : nil}',
--- '{"x" : 0x10}',
--- '{"x" : 001}',
--- '{"x" : .1}',
--- '{"x" : 1, }',
--- '[1, 2, 3, ]',
--- }
--- for i, v in ipairs(t) do
--- local status = pcall(json.decode, v)
--- assert( not status, fmt("'%s' was parsed without error", v) )
--- end
---end)
-
-
-test("decode invalid", function()
- local t = {
- '',
- ' ',
- '{',
- '[',
- '{"x" : ',
- '{"x" : 1',
- '{"x" : z }',
- '{"x" : 123z }',
- '{x : 123 }',
- '{10 : 123 }',
- '{]',
- '[}',
- '"a',
- '10 xx',
- '{}123'
- }
- for i, v in ipairs(t) do
- local status = pcall(json.decode, v)
- assert( not status, fmt("'%s' was parsed without error", v) )
- end
-end)
-
-
-test("decode invalid string", function()
- local t = {
- [["\z"]],
- [["\1"]],
- [["\u000z"]],
- [["\ud83d\ude0q"]],
- '"x\ny"',
- '"x\0y"',
- }
- for i, v in ipairs(t) do
- local status, err = pcall(json.decode, v)
- assert( not status, fmt("'%s' was parsed without error", v) )
- end
-end)
-
-
-test("decode escape", function()
- local t = {
- [ [["\u263a"]] ] = '☺',
- [ [["\ud83d\ude02"]] ] = '😂',
- [ [["\r\n\t\\\""]] ] = '\r\n\t\\"',
- [ [["\\"]] ] = '\\',
- [ [["\\\\"]] ] = '\\\\',
- [ [["\/"]] ] = '/',
- [ [["\\u \u263a"]] ] = [[\u ☺]],
- }
- for k, v in pairs(t) do
- local res = json.decode(k)
- assert( res == v, fmt("expected '%s', got '%s'", v, res) )
- end
-end)
-
-
-test("decode empty", function()
- local t = {
- [ '[]' ] = {},
- [ '{}' ] = {},
- [ '""' ] = "",
- }
- for k, v in pairs(t) do
- local res = json.decode(k)
- assert( equal(res, v), fmt("'%s' did not equal expected", k) )
- end
-end)
-
-
-test("decode collection", function()
- local t = {
- [ '[1, 2, 3, 4, 5, 6]' ] = {1, 2, 3, 4, 5, 6},
- [ '[1, 2, 3, "hello"]' ] = {1, 2, 3, "hello"},
- [ '{ "name": "test", "id": 231 }' ] = {name = "test", id = 231},
- [ '{"x":1,"y":2,"z":[1,2,3]}' ] = {x = 1, y = 2, z = {1, 2, 3}},
- }
- for k, v in pairs(t) do
- local res = json.decode(k)
- assert( equal(res, v), fmt("'%s' did not equal expected", k) )
- end
-end)
-
-
-test("encode invalid", function()
- local t = {
- { [1000] = "b" },
- { [ function() end ] = 12 },
- { nil, 2, 3, 4 },
- { x = 10, [1] = 2 },
- { [1] = "a", [3] = "b" },
- { x = 10, [4] = 5 },
- }
- for i, v in ipairs(t) do
- local status, res = pcall(json.encode, v)
- assert( not status, fmt("encoding idx %d did not result in an error", i) )
- end
-end)
-
-
-test("encode invalid number", function()
- local t = {
- math.huge, -- inf
- -math.huge, -- -inf
- math.huge * 0, -- NaN
- }
- for i, v in ipairs(t) do
- local status, res = pcall(json.encode, v)
- assert( not status, fmt("encoding '%s' did not result in an error", v) )
- end
-end)
-
-
-test("encode escape", function()
- local t = {
- [ '"x"' ] = [["\"x\""]],
- [ 'x\ny' ] = [["x\ny"]],
- [ 'x\0y' ] = [["x\u0000y"]],
- [ 'x\27y' ] = [["x\u001by"]],
- [ '\r\n\t\\"' ] = [["\r\n\t\\\""]],
- }
- for k, v in pairs(t) do
- local res = json.encode(k)
- assert( res == v, fmt("'%s' was not escaped properly", k) )
- end
-end)