require("import") -- the import fn import("extend") -- import lib into global e=extend --alias -- catching undefined 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}) base1 = e.Base() assert(base1.value == 0) base2 = e.Base(10) assert(base2.value == 10) assert(base1:method(5) == 5) assert(e.Base.zeroVal() == 0) assert(base2:currentValue() == 10) assert(base2:extendmethod(7) == 14) der1 = e.Derived(0) assert(der1.value == 0) assert(der1:method(5) == 10) der2 = e.Derived(17) assert(der2.value == 34) der2.extendval = 200.0 assert(math.abs(der2.actualval - 2.0) < 0.001) assert(math.abs(der2.extendval - 200.0) < 0.001)