PageRenderTime 49ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

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

#
D | 94 lines | 73 code | 11 blank | 10 comment | 36 complexity | e4abac65e1b41304d83bfaced3593fac 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 li_typemaps.li_typemaps;
  4. void main() {
  5. // Check double INPUT typemaps
  6. if (in_double(22.22) != 22.22) raiseError("in_double");
  7. if (inr_double(22.22) != 22.22) raiseError("inr_double");
  8. // Check double OUTPUT typemaps
  9. {
  10. double var = 44.44;
  11. out_double(22.22, var);
  12. if (var != 22.22) raiseError("out_double");
  13. }
  14. {
  15. double var = 44.44;
  16. outr_double(22.22, var);
  17. if (var != 22.22) raiseError("outr_double");
  18. }
  19. // Check double INOUT typemaps
  20. {
  21. double var = 44.44;
  22. inout_double(var);
  23. if (var != 44.44) raiseError("inout_double");
  24. }
  25. {
  26. double var = 44.44;
  27. inoutr_double(var);
  28. if (var != 44.44) raiseError("inoutr_double");
  29. }
  30. // Check unsigned long long INPUT typemaps
  31. if (in_ulonglong(20) != 20) raiseError("in_ulonglong");
  32. if (inr_ulonglong(20) != 20) raiseError("inr_ulonglong");
  33. // Check unsigned long long OUTPUT typemaps
  34. {
  35. ulong var = 40;
  36. out_ulonglong(20, var);
  37. if (var != 20) raiseError("out_ulonglong");
  38. }
  39. {
  40. ulong var = 40;
  41. outr_ulonglong(20, var);
  42. if (var != 20) raiseError("outr_ulonglong");
  43. }
  44. // Check unsigned long long INOUT typemaps
  45. {
  46. ulong var = 40;
  47. inout_ulonglong(var);
  48. if (var != 40) raiseError("inout_ulonglong");
  49. }
  50. {
  51. ulong var = 40;
  52. inoutr_ulonglong(var);
  53. if (var != 40) raiseError("inoutr_ulonglong");
  54. }
  55. // Check unsigned bool INPUT typemaps
  56. if (in_bool(false) != false) raiseError("in_bool");
  57. if (inr_bool(false) != false) raiseError("inr_bool");
  58. // Check unsigned bool OUTPUT typemaps
  59. {
  60. bool var = false;
  61. out_bool(true, var);
  62. if (var != true) raiseError("out_bool");
  63. }
  64. {
  65. bool var = false;
  66. outr_bool(true, var);
  67. if (var != true) raiseError("outr_bool");
  68. }
  69. // Check unsigned bool INOUT typemaps
  70. {
  71. bool var = false;
  72. inout_bool(var);
  73. if (var != false) raiseError("inout_bool");
  74. }
  75. {
  76. bool var = false;
  77. inoutr_bool(var);
  78. if (var != false) raiseError("inoutr_bool");
  79. }
  80. }
  81. void raiseError(char[] funcName) {
  82. throw new Exception("Test FAILED for function " ~ funcName);
  83. }