PageRenderTime 42ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Examples/test-suite/d/li_typemaps_runme.2.d

#
D | 91 lines | 71 code | 10 blank | 10 comment | 18 complexity | de15f9b3865a58f3aa5038b9d7c1dc0c MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. /// Tests correct handling of a few INPUT/OUTPUT/INOUT-typemapped functions.
  2. module li_typemaps_runme;
  3. import std.exception;
  4. import li_typemaps.li_typemaps;
  5. void main() {
  6. // Check double INPUT typemaps
  7. enforce(in_double(22.22) == 22.22, "in_double");
  8. enforce(inr_double(22.22) == 22.22, "inr_double");
  9. // Check double OUTPUT typemaps
  10. {
  11. double var = 44.44;
  12. out_double(22.22, var);
  13. enforce(var == 22.22, "out_double");
  14. }
  15. {
  16. double var = 44.44;
  17. outr_double(22.22, var);
  18. enforce(var == 22.22, "outr_double");
  19. }
  20. // Check double INOUT typemaps
  21. {
  22. double var = 44.44;
  23. inout_double(var);
  24. enforce(var == 44.44, "inout_double");
  25. }
  26. {
  27. double var = 44.44;
  28. inoutr_double(var);
  29. enforce(var == 44.44, "inoutr_double");
  30. }
  31. // Check unsigned long long INPUT typemaps
  32. enforce(in_ulonglong(20) == 20, "in_ulonglong");
  33. enforce(inr_ulonglong(20) == 20, "inr_ulonglong");
  34. // Check unsigned long long OUTPUT typemaps
  35. {
  36. ulong var = 40;
  37. out_ulonglong(20, var);
  38. enforce(var == 20, "out_ulonglong");
  39. }
  40. {
  41. ulong var = 40;
  42. outr_ulonglong(20, var);
  43. enforce(var == 20, "outr_ulonglong");
  44. }
  45. // Check unsigned long long INOUT typemaps
  46. {
  47. ulong var = 40;
  48. inout_ulonglong(var);
  49. enforce(var == 40, "inout_ulonglong");
  50. }
  51. {
  52. ulong var = 40;
  53. inoutr_ulonglong(var);
  54. enforce(var == 40, "inoutr_ulonglong");
  55. }
  56. // Check unsigned bool INPUT typemaps
  57. enforce(in_bool(false) == false, "in_bool");
  58. enforce(inr_bool(false) == false, "inr_bool");
  59. // Check unsigned bool OUTPUT typemaps
  60. {
  61. bool var = false;
  62. out_bool(true, var);
  63. enforce(var == true, "out_bool");
  64. }
  65. {
  66. bool var = false;
  67. outr_bool(true, var);
  68. enforce(var == true, "outr_bool");
  69. }
  70. // Check unsigned bool INOUT typemaps
  71. {
  72. bool var = false;
  73. inout_bool(var);
  74. enforce(var == false, "inout_bool");
  75. }
  76. {
  77. bool var = false;
  78. inoutr_bool(var);
  79. enforce(var == false, "inoutr_bool");
  80. }
  81. }