| module member_pointer_runme; |
| |
| import std.conv; |
| import std.exception; |
| import member_pointer.member_pointer; |
| import member_pointer.Square; |
| import member_pointer.SWIGTYPE_m_Shape__f_void__double; |
| |
| void main() { |
| auto s = new Square(10); |
| |
| // Do some calculations |
| auto area_pt = areapt(); |
| auto perim_pt = perimeterpt(); |
| check("Square area", 100.0, do_op(s, area_pt)); |
| check("Square perim", 40.0, do_op(s, perim_pt)); |
| |
| SWIGTYPE_m_Shape__f_void__double memberPtr = null; |
| memberPtr = areavar; |
| memberPtr = perimetervar; |
| |
| // Try the variables |
| check("Square area", 100.0, do_op(s, areavar)); |
| check("Square perim", 40.0, do_op(s, perimetervar)); |
| |
| // Modify one of the variables |
| areavar = perim_pt; |
| check("Square perimeter", 40.0, do_op(s,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)); |
| } |
| |
| void check(string what, double expected, double actual) { |
| enforce(expected == actual, "Failed: " ~ what ~ ": expected " ~ |
| to!string(expected) ~ ", but got " ~ to!string(actual)); |
| } |