diff options
Diffstat (limited to 'Examples/test-suite/ruby/member_pointer_runme.rb')
| -rw-r--r-- | Examples/test-suite/ruby/member_pointer_runme.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Examples/test-suite/ruby/member_pointer_runme.rb b/Examples/test-suite/ruby/member_pointer_runme.rb new file mode 100644 index 0000000..eca6f0d --- /dev/null +++ b/Examples/test-suite/ruby/member_pointer_runme.rb @@ -0,0 +1,54 @@ +#!/usr/bin/env ruby +# +# Example using pointers to member functions +# +# +# + +require 'swig_assert' + +require 'member_pointer' + +include Member_pointer + +def check(what, expected, actual) + if not expected == actual + raise RuntimeError, "Failed: #{what} Expected: #{expected} Actual: #{actual}" + end +end + +# Get the pointers + +area_pt = Member_pointer::areapt +perim_pt = Member_pointer::perimeterpt + +# Create some objects + +s = Member_pointer::Square.new(10) + +# Do some calculations + +check "Square area ", 100.0, Member_pointer::do_op(s, area_pt) +check "Square perim", 40.0, Member_pointer::do_op(s, perim_pt) + +memberPtr = Member_pointer::areavar +memberPtr = Member_pointer::perimetervar + +# Try the variables +check "Square area ", 100.0, Member_pointer::do_op(s, Member_pointer::areavar) +check "Square perim", 40.0, Member_pointer::do_op(s, Member_pointer::perimetervar) + +# Modify one of the variables +Member_pointer::areavar = perim_pt + +check "Square perimeter", 40.0, Member_pointer::do_op(s, Member_pointer::areavar) + +# Try the constants + +memberPtr = Member_pointer::AREAPT +memberPtr = Member_pointer::PERIMPT +memberPtr = Member_pointer::NULLPT + +check "Square area ", 100.0, Member_pointer::do_op(s, Member_pointer::AREAPT) +check "Square perim", 40.0, Member_pointer::do_op(s, Member_pointer::PERIMPT) + |
