diff options
Diffstat (limited to 'Examples/test-suite/javascript/member_pointer_const_runme.js')
-rw-r--r-- | Examples/test-suite/javascript/member_pointer_const_runme.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Examples/test-suite/javascript/member_pointer_const_runme.js b/Examples/test-suite/javascript/member_pointer_const_runme.js new file mode 100644 index 000000000..a4f0d0aa1 --- /dev/null +++ b/Examples/test-suite/javascript/member_pointer_const_runme.js @@ -0,0 +1,51 @@ +// Example using pointers to member functions +var member_pointer_const = require("member_pointer_const"); + +function check(what, expected, actual) { + if (expected != actual) { + throw new Error( + "Failed: ", what, " Expected: ", expected, " Actual: ", actual); + } +} + +// Get the pointers + +area_pt = member_pointer_const.areapt(); +perim_pt = member_pointer_const.perimeterpt(); + +// Create some objects + +s = new member_pointer_const.Square(10); + +// Do some calculations + +check("Square area ", 100.0, member_pointer_const.do_op(s, area_pt)); +check("Square perim", 40.0, member_pointer_const.do_op(s, perim_pt)); + +memberPtr = member_pointer_const.areavar; +memberPtr = member_pointer_const.perimetervar; + +// Try the variables +check("Square area ", 100.0, member_pointer_const.do_op(s, member_pointer_const.areavar)); +check("Square perim", 40.0, member_pointer_const.do_op(s, member_pointer_const.perimetervar)); + +// Modify one of the variables +member_pointer_const.areavar = perim_pt; + +check("Square perimeter", 40.0, member_pointer_const.do_op(s, member_pointer_const.areavar)); + +// Try the constants +memberPtr = member_pointer_const.AREAPT; +memberPtr = member_pointer_const.PERIMPT; +memberPtr = member_pointer_const.NULLPT; + +check("Square area ", 100.0, member_pointer_const.do_op(s, member_pointer_const.AREAPT)); +check("Square perim", 40.0, member_pointer_const.do_op(s, member_pointer_const.PERIMPT)); + +// Typedefs +check("Square perim", 40.0, member_pointer_const.do_op_td(s, perim_pt)); + +check("Add by value", 3, member_pointer_const.call1(member_pointer_const.ADD_BY_VALUE, 1, 2)); +// TODO: For some reason, these are commented out in the shared interface file? +//check("Add by pointer", 7, member_pointer_const.call2(member_pointer_const.ADD_BY_POINTER, 3, 4)); +//check("Add by reference", 11, member_pointer_const.call3(member_pointer_const.ADD_BY_REFERENCE, 5, 6)); |