summaryrefslogtreecommitdiff
path: root/Examples/test-suite/lua/member_pointer_runme.lua
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2009-08-18 20:56:02 +0000
committerLorry <lorry@roadtrain.codethink.co.uk>2012-09-25 16:59:08 +0000
commit9f8a09ed743cedd9547bf0661d518647966ab114 (patch)
tree9c7803d3b27a8ec22e91792ac7f7932efa128b20 /Examples/test-suite/lua/member_pointer_runme.lua
downloadswig-tarball-master.tar.gz
Imported from /srv/lorry/lorry-area/swig-tarball/swig-1.3.40.tar.gz.HEADswig-1.3.40master
Diffstat (limited to 'Examples/test-suite/lua/member_pointer_runme.lua')
-rw-r--r--Examples/test-suite/lua/member_pointer_runme.lua43
1 files changed, 43 insertions, 0 deletions
diff --git a/Examples/test-suite/lua/member_pointer_runme.lua b/Examples/test-suite/lua/member_pointer_runme.lua
new file mode 100644
index 0000000..8dddab2
--- /dev/null
+++ b/Examples/test-suite/lua/member_pointer_runme.lua
@@ -0,0 +1,43 @@
+--Example using pointers to member functions
+
+require("import") -- the import fn
+import("member_pointer") -- import code
+
+for k,v in pairs(member_pointer) do _G[k]=v end
+
+function check(what, expected, actual)
+ assert(expected == actual,"Failed: "..what.." Expected: "..expected.." Actual: "..actual)
+end
+
+-- Get the pointers
+area_pt = areapt()
+perim_pt = perimeterpt()
+
+-- Create some objects
+s = Square(10)
+
+-- Do some calculations
+check ("Square area ", 100.0, do_op(s,area_pt))
+check ("Square perim", 40.0, do_op(s,perim_pt))
+
+-- Try the variables
+-- these have to still be part of the 'member_pointer' table
+memberPtr = member_pointer.areavar
+memberPtr = member_pointer.perimetervar
+
+check ("Square area ", 100.0, do_op(s,member_pointer.areavar))
+check ("Square perim", 40.0, do_op(s,member_pointer.perimetervar))
+
+-- Modify one of the variables
+member_pointer.areavar = perim_pt
+
+check ("Square perimeter", 40.0, do_op(s,member_pointer.areavar))
+
+-- Try the constants
+memberPtr = AREAPT
+memberPtr = PERIMPT
+memberPtr = NULLPT
+
+check ("Square area ", 100.0, do_op(s,AREAPT))
+check ("Square perim", 40.0, do_op(s,PERIMPT))
+