Tests for arrays and global vars

This commit is contained in:
Artem Serebriyskiy 2013-11-08 02:47:34 +04:00 committed by William S Fulton
parent b901979d1c
commit 14de0de5e7
3 changed files with 88 additions and 0 deletions

View File

@ -0,0 +1,30 @@
require("import") -- the import fn
import("array_member") -- import lib
am = array_member
-- catch "undefined" global variables
local env = _ENV -- Lua 5.2
if not env then env = getfenv () end -- Lua 5.1
setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end})
assert(am.get_value(am.global_data,0) == 0)
assert(am.get_value(am.global_data,7) == 7)
foo = am.Foo()
foo.data = am.global_data
assert(am.get_value(foo.data,0) == 0)
for i = 0, 7 do
assert(am.get_value(foo.data,i) == am.get_value(am.global_data,i))
end
for i = 0, 7 do
am.set_value(am.global_data,i,-i)
end
am.global_data = foo.data
for i = 0, 7 do
assert(am.get_value(foo.data,i) == am.get_value(am.global_data,i))
end

View File

@ -0,0 +1,14 @@
require("import") -- the import fn
import("arrays_global") -- import lib
ag = arrays_global
-- catch "undefined" global variables
local env = _ENV -- Lua 5.2
if not env then env = getfenv () end -- Lua 5.1
setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end})
assert(ag.BeginString_FIX44a == "FIX.a.a")
assert(ag.BeginString_FIX44b == "FIX.b.b")
assert(ag.BeginString_FIX44c == "FIX.c.c")
assert(ag.BeginString_FIX44d == "FIX.d.d")

View File

@ -0,0 +1,44 @@
require("import") -- the import fn
import("global_vars") -- import lib
gv = global_vars
-- catch "undefined" global variables
local env = _ENV -- Lua 5.2
if not env then env = getfenv () end -- Lua 5.1
setmetatable(env, {__index=function (t,i) error("undefined global variable `"..i.."'",2) end})
gv.b = "abcde"
assert(gv.b == "abcde")
gv.a.x = 7
assert(gv.a.x == 7)
a1 = gv.A()
a1.x = 11
gv.a = a1
assert(gv.a.x == 11)
gv.x = 10
assert(gv.x == 10)
assert(gv.Hi ~= nil)
assert(gv.Hola ~= nil)
gv.h = gv.Hi
assert(gv.h == gv.Hi)
-- It is not clear whether these tests should work or not
-- Currently they don't.
--
-- assert(gv.c_member == 10)
--
-- gv.c_member = 5
-- assert(gv.x == 5)
--
-- gv.h = gv.Hi
-- assert(gv.hr == gv.Hi)
--
-- gv.hr = gv.Hola
-- assert(gv.h == gv.Hola)
-- assert(gv.hr == gv.Hola)