PageRenderTime 39ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/d/member_pointer_runme.1.d

#
D | 43 lines | 30 code | 9 blank | 4 comment | 2 complexity | b36816cd16b868da7bc4f49fe1897c13 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. module member_pointer_runme;
  2. import Float = tango.text.convert.Float;
  3. import member_pointer.member_pointer;
  4. import member_pointer.Square;
  5. import member_pointer.SWIGTYPE_m_Shape__f_void__double;
  6. void main() {
  7. auto s = new Square(10);
  8. // Do some calculations
  9. auto area_pt = areapt();
  10. auto perim_pt = perimeterpt();
  11. check("Square area ", 100.0, do_op(s, area_pt));
  12. check("Square perim", 40.0, do_op(s, perim_pt));
  13. SWIGTYPE_m_Shape__f_void__double memberPtr = null;
  14. memberPtr = areavar;
  15. memberPtr = perimetervar;
  16. // Try the variables
  17. check("Square area ", 100.0, do_op(s, areavar));
  18. check("Square perim", 40.0, do_op(s, perimetervar));
  19. // Modify one of the variables
  20. areavar = perim_pt;
  21. check("Square perimeter", 40.0, do_op(s,areavar));
  22. // Try the constants
  23. memberPtr = AREAPT;
  24. memberPtr = PERIMPT;
  25. memberPtr = NULLPT;
  26. check("Square area", 100.0, do_op(s, AREAPT));
  27. check("Square perim", 40.0, do_op(s, PERIMPT));
  28. }
  29. void check(char[] what, double expected, double actual) {
  30. if (expected != actual) {
  31. throw new Exception("Failed: " ~ what ~ ": expected "
  32. ~ Float.toString(expected) ~ ", but got " ~ Float.toString(actual));
  33. }
  34. }