PageRenderTime 96ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Examples/test-suite/octave/overload_simple_cast_runme.m

#
MATLAB | 229 lines | 177 code | 52 blank | 0 comment | 48 complexity | 8c72bc2ecb0ecbbcc1d76a514d429d0c MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. overload_simple_cast
  2. Ai=@(x) subclass('x',x,'__int',@(self) self.x);
  3. Ad=@(x) subclass('x',x,'__float',@(self) self.x);
  4. ai = Ai(4);
  5. ad = Ad(5.0);
  6. add = Ad(5.5);
  7. try
  8. fint(add);
  9. good = 0;
  10. catch
  11. good = 1;
  12. end_try_catch
  13. if (!good)
  14. error("fint(int)")
  15. endif
  16. if (!strcmp(fint(ad),"fint:int"))
  17. error("fint(int)")
  18. endif
  19. if (!strcmp(fdouble(ad),"fdouble:double"))
  20. error("fdouble(double)")
  21. endif
  22. if (!strcmp(fint(ai),"fint:int"))
  23. error("fint(int)")
  24. endif
  25. if (!strcmp(fint(5.0),"fint:int"))
  26. error("fint(int)")
  27. endif
  28. if (!strcmp(fint(3),"fint:int"))
  29. error("fint(int)")
  30. endif
  31. if (!strcmp(fint(3.0),"fint:int"))
  32. error("fint(int)")
  33. endif
  34. if (!strcmp(fdouble(ad),"fdouble:double"))
  35. error("fdouble(double)")
  36. endif
  37. if (!strcmp(fdouble(3),f"fdouble:double"))
  38. error("fdouble(double)")
  39. endif
  40. if (!strcmp(fdouble(3.0),"fdouble:double"))
  41. error("fdouble(double)")
  42. endif
  43. if (!strcmp(fid(3,3.0),"fid:intdouble"))
  44. error("fid:intdouble")
  45. endif
  46. if (!strcmp(fid(3.0,3),"fid:doubleint"))
  47. error("fid:doubleint")
  48. endif
  49. if (!strcmp(fid(ad,ai),"fid:doubleint"))
  50. error("fid:doubleint")
  51. endif
  52. if (!strcmp(fid(ai,ad),"fid:intdouble"))
  53. error("fid:intdouble")
  54. endif
  55. if (!strcmp(foo(3),"foo:int"))
  56. error("foo(int)")
  57. endif
  58. if (!strcmp(foo(3.0),"foo:double"))
  59. error("foo(double)")
  60. endif
  61. if (!strcmp(foo("hello"),"foo:char *"))
  62. error("foo(char *)")
  63. endif
  64. f = Foo();
  65. b = Bar();
  66. if (!strcmp(foo(f),"foo:Foo *"))
  67. error("foo(Foo *)")
  68. endif
  69. if (!strcmp(foo(b),"foo:Bar *"))
  70. error("foo(Bar *)")
  71. endif
  72. v = malloc_void(32);
  73. if (!strcmp(foo(v),"foo:void *"))
  74. error("foo(void *)")
  75. endif
  76. s = Spam();
  77. if (!strcmp(s.foo(3),"foo:int"))
  78. error("Spam::foo(int)")
  79. endif
  80. if (!strcmp(s.foo(3.0),"foo:double"))
  81. error("Spam::foo(double)")
  82. endif
  83. if (!strcmp(s.foo("hello"),"foo:char *"))
  84. error("Spam::foo(char *)")
  85. endif
  86. if (!strcmp(s.foo(f),"foo:Foo *"))
  87. error("Spam::foo(Foo *)")
  88. endif
  89. if (!strcmp(s.foo(b),"foo:Bar *"))
  90. error("Spam::foo(Bar *)")
  91. endif
  92. if (!strcmp(s.foo(v),"foo:void *"))
  93. error("Spam::foo(void *)")
  94. endif
  95. if (!strcmp(Spam_bar(3),"bar:int"))
  96. error("Spam::bar(int)")
  97. endif
  98. if (!strcmp(Spam_bar(3.0),"bar:double"))
  99. error("Spam::bar(double)")
  100. endif
  101. if (!strcmp(Spam_bar("hello"),"bar:char *"))
  102. error("Spam::bar(char *)")
  103. endif
  104. if (!strcmp(Spam_bar(f),"bar:Foo *"))
  105. error("Spam::bar(Foo *)")
  106. endif
  107. if (!strcmp(Spam_bar(b),"bar:Bar *"))
  108. error("Spam::bar(Bar *)")
  109. endif
  110. if (!strcmp(Spam_bar(v),"bar:void *"))
  111. error("Spam::bar(void *)")
  112. endif
  113. # Test constructors
  114. s = Spam();
  115. if (!strcmp(s.type,"none"))
  116. error("Spam()")
  117. endif
  118. s = Spam(3);
  119. if (!strcmp(s.type,"int"))
  120. error("Spam(int)")
  121. endif
  122. s = Spam(3.4);
  123. if (!strcmp(s.type,"double"))
  124. error("Spam(double)")
  125. endif
  126. s = Spam("hello");
  127. if (!strcmp(s.type,"char *"))
  128. error("Spam(char *)")
  129. endif
  130. s = Spam(f);
  131. if (!strcmp(s.type,"Foo *"))
  132. error("Spam(Foo *)")
  133. endif
  134. s = Spam(b);
  135. if (!strcmp(s.type,"Bar *"))
  136. error("Spam(Bar *)")
  137. endif
  138. s = Spam(v);
  139. if (!strcmp(s.type,"void *"))
  140. error("Spam(void *)")
  141. endif
  142. # unsigned long long
  143. ullmax = 9223372036854775807; #0xffffffffffffffff
  144. ullmaxd = 9007199254740992.0;
  145. ullmin = 0;
  146. ullmind = 0.0;
  147. if (ull(ullmin) != ullmin)
  148. error("ull(ullmin)")
  149. endif
  150. if (ull(ullmax) != ullmax)
  151. error("ull(ullmax)")
  152. endif
  153. if (ull(ullmind) != ullmind)
  154. error("ull(ullmind)")
  155. endif
  156. if (ull(ullmaxd) != ullmaxd)
  157. error("ull(ullmaxd)")
  158. endif
  159. # long long
  160. llmax = 9223372036854775807; #0x7fffffffffffffff
  161. llmin = -9223372036854775808;
  162. # these are near the largest floats we can still convert into long long
  163. llmaxd = 9007199254740992.0;
  164. llmind = -9007199254740992.0;
  165. if (ll(llmin) != llmin)
  166. error("ll(llmin)")
  167. endif
  168. if (ll(llmax) != llmax)
  169. error("ll(llmax)")
  170. endif
  171. if (ll(llmind) != llmind)
  172. error("ll(llmind)")
  173. endif
  174. if (ll(llmaxd) != llmaxd)
  175. error("ll(llmaxd)")
  176. endif
  177. free_void(v);