home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / perl / os2perl / big.t < prev    next >
Text File  |  1991-04-12  |  5KB  |  281 lines

  1. #!./perl
  2. require "../lib/bigint.pl";
  3.  
  4. $test = 0;
  5. $| = 1;
  6. print "1..246\n";
  7. while (<DATA>) {
  8.     chop;
  9.     if (/^&/) {
  10.         $f = $_;
  11.     } else {
  12.         ++$test;
  13.         @args = split(/:/,$_,99);
  14.         $ans = pop(@args);
  15.         $try = "$f('" . join("','", @args) . "');";
  16.         if (($ans1 = eval($try)) eq $ans) {
  17.             print "ok $test\n";
  18.         } else {
  19.             print "not ok $test\n";
  20.             print "# '$try' expected: '$ans' got: '$ans1'\n";
  21.         }
  22.     }
  23. }
  24. __END__
  25. &bnorm
  26. abc:NaN
  27.    1 a:NaN
  28. 1bcd2:NaN
  29. 11111b:NaN
  30. +1z:NaN
  31. -1z:NaN
  32. 0:+0
  33. +0:+0
  34. +00:+0
  35. +0 0 0:+0
  36. 000000  0000000   00000:+0
  37. -0:+0
  38. -0000:+0
  39. +1:+1
  40. +01:+1
  41. +001:+1
  42. +00000100000:+100000
  43. 123456789:+123456789
  44. -1:-1
  45. -01:-1
  46. -001:-1
  47. -123456789:-123456789
  48. -00000100000:-100000
  49. &bneg
  50. abd:NaN
  51. +0:+0
  52. +1:-1
  53. -1:+1
  54. +123456789:-123456789
  55. -123456789:+123456789
  56. &babs
  57. abc:NaN
  58. +0:+0
  59. +1:+1
  60. -1:+1
  61. +123456789:+123456789
  62. -123456789:+123456789
  63. &bcmp
  64. abc:abc:
  65. abc:+0:
  66. +0:abc:
  67. +0:+0:0
  68. -1:+0:-1
  69. +0:-1:1
  70. +1:+0:1
  71. +0:+1:-1
  72. -1:+1:-1
  73. +1:-1:1
  74. -1:-1:0
  75. +1:+1:0
  76. +123:+123:0
  77. +123:+12:1
  78. +12:+123:-1
  79. -123:-123:0
  80. -123:-12:-1
  81. -12:-123:1
  82. +123:+124:-1
  83. +124:+123:1
  84. -123:-124:1
  85. -124:-123:-1
  86. &badd
  87. abc:abc:NaN
  88. abc:+0:NaN
  89. +0:abc:NaN
  90. +0:+0:+0
  91. +1:+0:+1
  92. +0:+1:+1
  93. +1:+1:+2
  94. -1:+0:-1
  95. +0:-1:-1
  96. -1:-1:-2
  97. -1:+1:+0
  98. +1:-1:+0
  99. +9:+1:+10
  100. +99:+1:+100
  101. +999:+1:+1000
  102. +9999:+1:+10000
  103. +99999:+1:+100000
  104. +999999:+1:+1000000
  105. +9999999:+1:+10000000
  106. +99999999:+1:+100000000
  107. +999999999:+1:+1000000000
  108. +9999999999:+1:+10000000000
  109. +99999999999:+1:+100000000000
  110. +10:-1:+9
  111. +100:-1:+99
  112. +1000:-1:+999
  113. +10000:-1:+9999
  114. +100000:-1:+99999
  115. +1000000:-1:+999999
  116. +10000000:-1:+9999999
  117. +100000000:-1:+99999999
  118. +1000000000:-1:+999999999
  119. +10000000000:-1:+9999999999
  120. +123456789:+987654321:+1111111110
  121. -123456789:+987654321:+864197532
  122. -123456789:-987654321:-1111111110
  123. +123456789:-987654321:-864197532
  124. &bsub
  125. abc:abc:NaN
  126. abc:+0:NaN
  127. +0:abc:NaN
  128. +0:+0:+0
  129. +1:+0:+1
  130. +0:+1:-1
  131. +1:+1:+0
  132. -1:+0:-1
  133. +0:-1:+1
  134. -1:-1:+0
  135. -1:+1:-2
  136. +1:-1:+2
  137. +9:+1:+8
  138. +99:+1:+98
  139. +999:+1:+998
  140. +9999:+1:+9998
  141. +99999:+1:+99998
  142. +999999:+1:+999998
  143. +9999999:+1:+9999998
  144. +99999999:+1:+99999998
  145. +999999999:+1:+999999998
  146. +9999999999:+1:+9999999998
  147. +99999999999:+1:+99999999998
  148. +10:-1:+11
  149. +100:-1:+101
  150. +1000:-1:+1001
  151. +10000:-1:+10001
  152. +100000:-1:+100001
  153. +1000000:-1:+1000001
  154. +10000000:-1:+10000001
  155. +100000000:-1:+100000001
  156. +1000000000:-1:+1000000001
  157. +10000000000:-1:+10000000001
  158. +123456789:+987654321:-864197532
  159. -123456789:+987654321:-1111111110
  160. -123456789:-987654321:+864197532
  161. +123456789:-987654321:+1111111110
  162. &bmul
  163. abc:abc:NaN
  164. abc:+0:NaN
  165. +0:abc:NaN
  166. +0:+0:+0
  167. +0:+1:+0
  168. +1:+0:+0
  169. +0:-1:+0
  170. -1:+0:+0
  171. +123456789123456789:+0:+0
  172. +0:+123456789123456789:+0
  173. -1:-1:+1
  174. -1:+1:-1
  175. +1:-1:-1
  176. +1:+1:+1
  177. +2:+3:+6
  178. -2:+3:-6
  179. +2:-3:-6
  180. -2:-3:+6
  181. +111:+111:+12321
  182. +10101:+10101:+102030201
  183. +1001001:+1001001:+1002003002001
  184. +100010001:+100010001:+10002000300020001
  185. +10000100001:+10000100001:+100002000030000200001
  186. +11111111111:+9:+99999999999
  187. +22222222222:+9:+199999999998
  188. +33333333333:+9:+299999999997
  189. +44444444444:+9:+399999999996
  190. +55555555555:+9:+499999999995
  191. +66666666666:+9:+599999999994
  192. +77777777777:+9:+699999999993
  193. +88888888888:+9:+799999999992
  194. +99999999999:+9:+899999999991
  195. &bdiv
  196. abc:abc:NaN
  197. abc:+1:abc:NaN
  198. +1:abc:NaN
  199. +0:+0:NaN
  200. +0:+1:+0
  201. +1:+0:NaN
  202. +0:-1:+0
  203. -1:+0:NaN
  204. +1:+1:+1
  205. -1:-1:+1
  206. +1:-1:-1
  207. -1:+1:-1
  208. +1:+2:+0
  209. +2:+1:+2
  210. +1000000000:+9:+111111111
  211. +2000000000:+9:+222222222
  212. +3000000000:+9:+333333333
  213. +4000000000:+9:+444444444
  214. +5000000000:+9:+555555555
  215. +6000000000:+9:+666666666
  216. +7000000000:+9:+777777777
  217. +8000000000:+9:+888888888
  218. +9000000000:+9:+1000000000
  219. +35500000:+113:+314159
  220. +71000000:+226:+314159
  221. +106500000:+339:+314159
  222. +1000000000:+3:+333333333
  223. +10:+5:+2
  224. +100:+4:+25
  225. +1000:+8:+125
  226. +10000:+16:+625
  227. +999999999999:+9:+111111111111
  228. +999999999999:+99:+10101010101
  229. +999999999999:+999:+1001001001
  230. +999999999999:+9999:+100010001
  231. +999999999999999:+99999:+10000100001
  232. &bmod
  233. abc:abc:NaN
  234. abc:+1:abc:NaN
  235. +1:abc:NaN
  236. +0:+0:NaN
  237. +0:+1:+0
  238. +1:+0:NaN
  239. +0:-1:+0
  240. -1:+0:NaN
  241. +1:+1:+0
  242. -1:-1:+0
  243. +1:-1:+0
  244. -1:+1:+0
  245. +1:+2:+1
  246. +2:+1:+0
  247. +1000000000:+9:+1
  248. +2000000000:+9:+2
  249. +3000000000:+9:+3
  250. +4000000000:+9:+4
  251. +5000000000:+9:+5
  252. +6000000000:+9:+6
  253. +7000000000:+9:+7
  254. +8000000000:+9:+8
  255. +9000000000:+9:+0
  256. +35500000:+113:+33
  257. +71000000:+226:+66
  258. +106500000:+339:+99
  259. +1000000000:+3:+1
  260. +10:+5:+0
  261. +100:+4:+0
  262. +1000:+8:+0
  263. +10000:+16:+0
  264. +999999999999:+9:+0
  265. +999999999999:+99:+0
  266. +999999999999:+999:+0
  267. +999999999999:+9999:+0
  268. +999999999999999:+99999:+0
  269. &bgcd
  270. abc:abc:NaN
  271. abc:+0:NaN
  272. +0:abc:NaN
  273. +0:+0:+0
  274. +0:+1:+1
  275. +1:+0:+1
  276. +1:+1:+1
  277. +2:+3:+1
  278. +3:+2:+1
  279. +100:+625:+25
  280. +4096:+81:+1
  281.