PageRenderTime 41ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/lua/member_pointer_runme.lua

#
Lua | 43 lines | 22 code | 13 blank | 8 comment | 2 complexity | d90476c79c980eb5f4258869357433f4 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. --Example using pointers to member functions
  2. require("import") -- the import fn
  3. import("member_pointer") -- import code
  4. for k,v in pairs(member_pointer) do _G[k]=v end
  5. function check(what, expected, actual)
  6. assert(expected == actual,"Failed: "..what.." Expected: "..expected.." Actual: "..actual)
  7. end
  8. -- Get the pointers
  9. area_pt = areapt()
  10. perim_pt = perimeterpt()
  11. -- Create some objects
  12. s = Square(10)
  13. -- Do some calculations
  14. check ("Square area ", 100.0, do_op(s,area_pt))
  15. check ("Square perim", 40.0, do_op(s,perim_pt))
  16. -- Try the variables
  17. -- these have to still be part of the 'member_pointer' table
  18. memberPtr = member_pointer.areavar
  19. memberPtr = member_pointer.perimetervar
  20. check ("Square area ", 100.0, do_op(s,member_pointer.areavar))
  21. check ("Square perim", 40.0, do_op(s,member_pointer.perimetervar))
  22. -- Modify one of the variables
  23. member_pointer.areavar = perim_pt
  24. check ("Square perimeter", 40.0, do_op(s,member_pointer.areavar))
  25. -- Try the constants
  26. memberPtr = AREAPT
  27. memberPtr = PERIMPT
  28. memberPtr = NULLPT
  29. check ("Square area ", 100.0, do_op(s,AREAPT))
  30. check ("Square perim", 40.0, do_op(s,PERIMPT))