/source/ruby-enterprise-1.8.7-2011.01/source/test/rational/test_rational2.rb

https://github.com/cparedes/omnibus · Ruby · 960 lines · 957 code · 3 blank · 0 comment · 0 complexity · d63146a16be8e6480aec9cbb0cc1046c MD5 · raw file

  1. require 'test/unit'
  2. require 'rational'
  3. class Rational_Test2 < Test::Unit::TestCase
  4. def test_kumi
  5. assert_equal(Rational(1, 1), +Rational(1, 1))
  6. assert_equal(Rational(-1, 1), -Rational(1, 1))
  7. assert_equal(Rational(2, 1),
  8. Rational(1, 1) + Rational(1, 1))
  9. assert_equal(Rational(0, 1),
  10. Rational(1, 1) - Rational(1, 1))
  11. assert_equal(Rational(1, 1),
  12. Rational(1, 1) * Rational(1, 1))
  13. assert_equal(Rational(1, 1),
  14. Rational(1, 1) / Rational(1, 1))
  15. assert_equal(Rational(3, 1),
  16. Rational(1, 1) + Rational(2, 1))
  17. assert_equal(Rational(-1, 1),
  18. Rational(1, 1) - Rational(2, 1))
  19. assert_equal(Rational(2, 1),
  20. Rational(1, 1) * Rational(2, 1))
  21. assert_equal(Rational(1, 2),
  22. Rational(1, 1) / Rational(2, 1))
  23. assert_equal(Rational(4, 1),
  24. Rational(1, 1) + Rational(3, 1))
  25. assert_equal(Rational(-2, 1),
  26. Rational(1, 1) - Rational(3, 1))
  27. assert_equal(Rational(3, 1),
  28. Rational(1, 1) * Rational(3, 1))
  29. assert_equal(Rational(1, 3),
  30. Rational(1, 1) / Rational(3, 1))
  31. assert_equal(Rational(1073741790, 1),
  32. Rational(1, 1) + Rational(1073741789, 1))
  33. assert_equal(Rational(-1073741788, 1),
  34. Rational(1, 1) - Rational(1073741789, 1))
  35. assert_equal(Rational(1073741789, 1),
  36. Rational(1, 1) * Rational(1073741789, 1))
  37. assert_equal(Rational(1, 1073741789),
  38. Rational(1, 1) / Rational(1073741789, 1))
  39. assert_equal(Rational(1073741828, 1),
  40. Rational(1, 1) + Rational(1073741827, 1))
  41. assert_equal(Rational(-1073741826, 1),
  42. Rational(1, 1) - Rational(1073741827, 1))
  43. assert_equal(Rational(1073741827, 1),
  44. Rational(1, 1) * Rational(1073741827, 1))
  45. assert_equal(Rational(1, 1073741827),
  46. Rational(1, 1) / Rational(1073741827, 1))
  47. assert_equal(Rational(5, 3),
  48. Rational(1, 1) + Rational(2, 3))
  49. assert_equal(Rational(1, 3),
  50. Rational(1, 1) - Rational(2, 3))
  51. assert_equal(Rational(2, 3),
  52. Rational(1, 1) * Rational(2, 3))
  53. assert_equal(Rational(3, 2),
  54. Rational(1, 1) / Rational(2, 3))
  55. assert_equal(Rational(5, 2),
  56. Rational(1, 1) + Rational(3, 2))
  57. assert_equal(Rational(-1, 2),
  58. Rational(1, 1) - Rational(3, 2))
  59. assert_equal(Rational(3, 2),
  60. Rational(1, 1) * Rational(3, 2))
  61. assert_equal(Rational(2, 3),
  62. Rational(1, 1) / Rational(3, 2))
  63. assert_equal(Rational(1073741792, 1073741789),
  64. Rational(1, 1) + Rational(3, 1073741789))
  65. assert_equal(Rational(1073741786, 1073741789),
  66. Rational(1, 1) - Rational(3, 1073741789))
  67. assert_equal(Rational(3, 1073741789),
  68. Rational(1, 1) * Rational(3, 1073741789))
  69. assert_equal(Rational(1073741789, 3),
  70. Rational(1, 1) / Rational(3, 1073741789))
  71. assert_equal(Rational(1073741792, 3),
  72. Rational(1, 1) + Rational(1073741789, 3))
  73. assert_equal(Rational(-1073741786, 3),
  74. Rational(1, 1) - Rational(1073741789, 3))
  75. assert_equal(Rational(1073741789, 3),
  76. Rational(1, 1) * Rational(1073741789, 3))
  77. assert_equal(Rational(3, 1073741789),
  78. Rational(1, 1) / Rational(1073741789, 3))
  79. assert_equal(Rational(1073741830, 1073741827),
  80. Rational(1, 1) + Rational(3, 1073741827))
  81. assert_equal(Rational(1073741824, 1073741827),
  82. Rational(1, 1) - Rational(3, 1073741827))
  83. assert_equal(Rational(3, 1073741827),
  84. Rational(1, 1) * Rational(3, 1073741827))
  85. assert_equal(Rational(1073741827, 3),
  86. Rational(1, 1) / Rational(3, 1073741827))
  87. assert_equal(Rational(1073741830, 3),
  88. Rational(1, 1) + Rational(1073741827, 3))
  89. assert_equal(Rational(-1073741824, 3),
  90. Rational(1, 1) - Rational(1073741827, 3))
  91. assert_equal(Rational(1073741827, 3),
  92. Rational(1, 1) * Rational(1073741827, 3))
  93. assert_equal(Rational(3, 1073741827),
  94. Rational(1, 1) / Rational(1073741827, 3))
  95. assert_equal(Rational(2147483616, 1073741827),
  96. Rational(1, 1) + Rational(1073741789, 1073741827))
  97. assert_equal(Rational(38, 1073741827),
  98. Rational(1, 1) - Rational(1073741789, 1073741827))
  99. assert_equal(Rational(1073741789, 1073741827),
  100. Rational(1, 1) * Rational(1073741789, 1073741827))
  101. assert_equal(Rational(1073741827, 1073741789),
  102. Rational(1, 1) / Rational(1073741789, 1073741827))
  103. assert_equal(Rational(2147483616, 1073741789),
  104. Rational(1, 1) + Rational(1073741827, 1073741789))
  105. assert_equal(Rational(-38, 1073741789),
  106. Rational(1, 1) - Rational(1073741827, 1073741789))
  107. assert_equal(Rational(1073741827, 1073741789),
  108. Rational(1, 1) * Rational(1073741827, 1073741789))
  109. assert_equal(Rational(1073741789, 1073741827),
  110. Rational(1, 1) / Rational(1073741827, 1073741789))
  111. assert_equal(Rational(2, 1), +Rational(2, 1))
  112. assert_equal(Rational(-2, 1), -Rational(2, 1))
  113. assert_equal(Rational(3, 1),
  114. Rational(2, 1) + Rational(1, 1))
  115. assert_equal(Rational(1, 1),
  116. Rational(2, 1) - Rational(1, 1))
  117. assert_equal(Rational(2, 1),
  118. Rational(2, 1) * Rational(1, 1))
  119. assert_equal(Rational(2, 1),
  120. Rational(2, 1) / Rational(1, 1))
  121. assert_equal(Rational(4, 1),
  122. Rational(2, 1) + Rational(2, 1))
  123. assert_equal(Rational(0, 1),
  124. Rational(2, 1) - Rational(2, 1))
  125. assert_equal(Rational(4, 1),
  126. Rational(2, 1) * Rational(2, 1))
  127. assert_equal(Rational(1, 1),
  128. Rational(2, 1) / Rational(2, 1))
  129. assert_equal(Rational(5, 1),
  130. Rational(2, 1) + Rational(3, 1))
  131. assert_equal(Rational(-1, 1),
  132. Rational(2, 1) - Rational(3, 1))
  133. assert_equal(Rational(6, 1),
  134. Rational(2, 1) * Rational(3, 1))
  135. assert_equal(Rational(2, 3),
  136. Rational(2, 1) / Rational(3, 1))
  137. assert_equal(Rational(1073741791, 1),
  138. Rational(2, 1) + Rational(1073741789, 1))
  139. assert_equal(Rational(-1073741787, 1),
  140. Rational(2, 1) - Rational(1073741789, 1))
  141. assert_equal(Rational(2147483578, 1),
  142. Rational(2, 1) * Rational(1073741789, 1))
  143. assert_equal(Rational(2, 1073741789),
  144. Rational(2, 1) / Rational(1073741789, 1))
  145. assert_equal(Rational(1073741829, 1),
  146. Rational(2, 1) + Rational(1073741827, 1))
  147. assert_equal(Rational(-1073741825, 1),
  148. Rational(2, 1) - Rational(1073741827, 1))
  149. assert_equal(Rational(2147483654, 1),
  150. Rational(2, 1) * Rational(1073741827, 1))
  151. assert_equal(Rational(2, 1073741827),
  152. Rational(2, 1) / Rational(1073741827, 1))
  153. assert_equal(Rational(8, 3),
  154. Rational(2, 1) + Rational(2, 3))
  155. assert_equal(Rational(4, 3),
  156. Rational(2, 1) - Rational(2, 3))
  157. assert_equal(Rational(4, 3),
  158. Rational(2, 1) * Rational(2, 3))
  159. assert_equal(Rational(3, 1),
  160. Rational(2, 1) / Rational(2, 3))
  161. assert_equal(Rational(7, 2),
  162. Rational(2, 1) + Rational(3, 2))
  163. assert_equal(Rational(1, 2),
  164. Rational(2, 1) - Rational(3, 2))
  165. assert_equal(Rational(3, 1),
  166. Rational(2, 1) * Rational(3, 2))
  167. assert_equal(Rational(4, 3),
  168. Rational(2, 1) / Rational(3, 2))
  169. assert_equal(Rational(2147483581, 1073741789),
  170. Rational(2, 1) + Rational(3, 1073741789))
  171. assert_equal(Rational(2147483575, 1073741789),
  172. Rational(2, 1) - Rational(3, 1073741789))
  173. assert_equal(Rational(6, 1073741789),
  174. Rational(2, 1) * Rational(3, 1073741789))
  175. assert_equal(Rational(2147483578, 3),
  176. Rational(2, 1) / Rational(3, 1073741789))
  177. assert_equal(Rational(1073741795, 3),
  178. Rational(2, 1) + Rational(1073741789, 3))
  179. assert_equal(Rational(-1073741783, 3),
  180. Rational(2, 1) - Rational(1073741789, 3))
  181. assert_equal(Rational(2147483578, 3),
  182. Rational(2, 1) * Rational(1073741789, 3))
  183. assert_equal(Rational(6, 1073741789),
  184. Rational(2, 1) / Rational(1073741789, 3))
  185. assert_equal(Rational(2147483657, 1073741827),
  186. Rational(2, 1) + Rational(3, 1073741827))
  187. assert_equal(Rational(2147483651, 1073741827),
  188. Rational(2, 1) - Rational(3, 1073741827))
  189. assert_equal(Rational(6, 1073741827),
  190. Rational(2, 1) * Rational(3, 1073741827))
  191. assert_equal(Rational(2147483654, 3),
  192. Rational(2, 1) / Rational(3, 1073741827))
  193. assert_equal(Rational(1073741833, 3),
  194. Rational(2, 1) + Rational(1073741827, 3))
  195. assert_equal(Rational(-1073741821, 3),
  196. Rational(2, 1) - Rational(1073741827, 3))
  197. assert_equal(Rational(2147483654, 3),
  198. Rational(2, 1) * Rational(1073741827, 3))
  199. assert_equal(Rational(6, 1073741827),
  200. Rational(2, 1) / Rational(1073741827, 3))
  201. assert_equal(Rational(3221225443, 1073741827),
  202. Rational(2, 1) + Rational(1073741789, 1073741827))
  203. assert_equal(Rational(1073741865, 1073741827),
  204. Rational(2, 1) - Rational(1073741789, 1073741827))
  205. assert_equal(Rational(2147483578, 1073741827),
  206. Rational(2, 1) * Rational(1073741789, 1073741827))
  207. assert_equal(Rational(2147483654, 1073741789),
  208. Rational(2, 1) / Rational(1073741789, 1073741827))
  209. assert_equal(Rational(3221225405, 1073741789),
  210. Rational(2, 1) + Rational(1073741827, 1073741789))
  211. assert_equal(Rational(1073741751, 1073741789),
  212. Rational(2, 1) - Rational(1073741827, 1073741789))
  213. assert_equal(Rational(2147483654, 1073741789),
  214. Rational(2, 1) * Rational(1073741827, 1073741789))
  215. assert_equal(Rational(2147483578, 1073741827),
  216. Rational(2, 1) / Rational(1073741827, 1073741789))
  217. assert_equal(Rational(3, 1), +Rational(3, 1))
  218. assert_equal(Rational(-3, 1), -Rational(3, 1))
  219. assert_equal(Rational(4, 1),
  220. Rational(3, 1) + Rational(1, 1))
  221. assert_equal(Rational(2, 1),
  222. Rational(3, 1) - Rational(1, 1))
  223. assert_equal(Rational(3, 1),
  224. Rational(3, 1) * Rational(1, 1))
  225. assert_equal(Rational(3, 1),
  226. Rational(3, 1) / Rational(1, 1))
  227. assert_equal(Rational(5, 1),
  228. Rational(3, 1) + Rational(2, 1))
  229. assert_equal(Rational(1, 1),
  230. Rational(3, 1) - Rational(2, 1))
  231. assert_equal(Rational(6, 1),
  232. Rational(3, 1) * Rational(2, 1))
  233. assert_equal(Rational(3, 2),
  234. Rational(3, 1) / Rational(2, 1))
  235. assert_equal(Rational(6, 1),
  236. Rational(3, 1) + Rational(3, 1))
  237. assert_equal(Rational(0, 1),
  238. Rational(3, 1) - Rational(3, 1))
  239. assert_equal(Rational(9, 1),
  240. Rational(3, 1) * Rational(3, 1))
  241. assert_equal(Rational(1, 1),
  242. Rational(3, 1) / Rational(3, 1))
  243. assert_equal(Rational(1073741792, 1),
  244. Rational(3, 1) + Rational(1073741789, 1))
  245. assert_equal(Rational(-1073741786, 1),
  246. Rational(3, 1) - Rational(1073741789, 1))
  247. assert_equal(Rational(3221225367, 1),
  248. Rational(3, 1) * Rational(1073741789, 1))
  249. assert_equal(Rational(3, 1073741789),
  250. Rational(3, 1) / Rational(1073741789, 1))
  251. assert_equal(Rational(1073741830, 1),
  252. Rational(3, 1) + Rational(1073741827, 1))
  253. assert_equal(Rational(-1073741824, 1),
  254. Rational(3, 1) - Rational(1073741827, 1))
  255. assert_equal(Rational(3221225481, 1),
  256. Rational(3, 1) * Rational(1073741827, 1))
  257. assert_equal(Rational(3, 1073741827),
  258. Rational(3, 1) / Rational(1073741827, 1))
  259. assert_equal(Rational(11, 3),
  260. Rational(3, 1) + Rational(2, 3))
  261. assert_equal(Rational(7, 3),
  262. Rational(3, 1) - Rational(2, 3))
  263. assert_equal(Rational(2, 1),
  264. Rational(3, 1) * Rational(2, 3))
  265. assert_equal(Rational(9, 2),
  266. Rational(3, 1) / Rational(2, 3))
  267. assert_equal(Rational(9, 2),
  268. Rational(3, 1) + Rational(3, 2))
  269. assert_equal(Rational(3, 2),
  270. Rational(3, 1) - Rational(3, 2))
  271. assert_equal(Rational(9, 2),
  272. Rational(3, 1) * Rational(3, 2))
  273. assert_equal(Rational(2, 1),
  274. Rational(3, 1) / Rational(3, 2))
  275. assert_equal(Rational(3221225370, 1073741789),
  276. Rational(3, 1) + Rational(3, 1073741789))
  277. assert_equal(Rational(3221225364, 1073741789),
  278. Rational(3, 1) - Rational(3, 1073741789))
  279. assert_equal(Rational(9, 1073741789),
  280. Rational(3, 1) * Rational(3, 1073741789))
  281. assert_equal(Rational(1073741789, 1),
  282. Rational(3, 1) / Rational(3, 1073741789))
  283. assert_equal(Rational(1073741798, 3),
  284. Rational(3, 1) + Rational(1073741789, 3))
  285. assert_equal(Rational(-1073741780, 3),
  286. Rational(3, 1) - Rational(1073741789, 3))
  287. assert_equal(Rational(1073741789, 1),
  288. Rational(3, 1) * Rational(1073741789, 3))
  289. assert_equal(Rational(9, 1073741789),
  290. Rational(3, 1) / Rational(1073741789, 3))
  291. assert_equal(Rational(3221225484, 1073741827),
  292. Rational(3, 1) + Rational(3, 1073741827))
  293. assert_equal(Rational(3221225478, 1073741827),
  294. Rational(3, 1) - Rational(3, 1073741827))
  295. assert_equal(Rational(9, 1073741827),
  296. Rational(3, 1) * Rational(3, 1073741827))
  297. assert_equal(Rational(1073741827, 1),
  298. Rational(3, 1) / Rational(3, 1073741827))
  299. assert_equal(Rational(1073741836, 3),
  300. Rational(3, 1) + Rational(1073741827, 3))
  301. assert_equal(Rational(-1073741818, 3),
  302. Rational(3, 1) - Rational(1073741827, 3))
  303. assert_equal(Rational(1073741827, 1),
  304. Rational(3, 1) * Rational(1073741827, 3))
  305. assert_equal(Rational(9, 1073741827),
  306. Rational(3, 1) / Rational(1073741827, 3))
  307. assert_equal(Rational(4294967270, 1073741827),
  308. Rational(3, 1) + Rational(1073741789, 1073741827))
  309. assert_equal(Rational(2147483692, 1073741827),
  310. Rational(3, 1) - Rational(1073741789, 1073741827))
  311. assert_equal(Rational(3221225367, 1073741827),
  312. Rational(3, 1) * Rational(1073741789, 1073741827))
  313. assert_equal(Rational(3221225481, 1073741789),
  314. Rational(3, 1) / Rational(1073741789, 1073741827))
  315. assert_equal(Rational(4294967194, 1073741789),
  316. Rational(3, 1) + Rational(1073741827, 1073741789))
  317. assert_equal(Rational(2147483540, 1073741789),
  318. Rational(3, 1) - Rational(1073741827, 1073741789))
  319. assert_equal(Rational(3221225481, 1073741789),
  320. Rational(3, 1) * Rational(1073741827, 1073741789))
  321. assert_equal(Rational(3221225367, 1073741827),
  322. Rational(3, 1) / Rational(1073741827, 1073741789))
  323. assert_equal(Rational(1073741789, 1), +Rational(1073741789, 1))
  324. assert_equal(Rational(-1073741789, 1), -Rational(1073741789, 1))
  325. assert_equal(Rational(1073741790, 1),
  326. Rational(1073741789, 1) + Rational(1, 1))
  327. assert_equal(Rational(1073741788, 1),
  328. Rational(1073741789, 1) - Rational(1, 1))
  329. assert_equal(Rational(1073741789, 1),
  330. Rational(1073741789, 1) * Rational(1, 1))
  331. assert_equal(Rational(1073741789, 1),
  332. Rational(1073741789, 1) / Rational(1, 1))
  333. assert_equal(Rational(1073741791, 1),
  334. Rational(1073741789, 1) + Rational(2, 1))
  335. assert_equal(Rational(1073741787, 1),
  336. Rational(1073741789, 1) - Rational(2, 1))
  337. assert_equal(Rational(2147483578, 1),
  338. Rational(1073741789, 1) * Rational(2, 1))
  339. assert_equal(Rational(1073741789, 2),
  340. Rational(1073741789, 1) / Rational(2, 1))
  341. assert_equal(Rational(1073741792, 1),
  342. Rational(1073741789, 1) + Rational(3, 1))
  343. assert_equal(Rational(1073741786, 1),
  344. Rational(1073741789, 1) - Rational(3, 1))
  345. assert_equal(Rational(3221225367, 1),
  346. Rational(1073741789, 1) * Rational(3, 1))
  347. assert_equal(Rational(1073741789, 3),
  348. Rational(1073741789, 1) / Rational(3, 1))
  349. assert_equal(Rational(2147483578, 1),
  350. Rational(1073741789, 1) + Rational(1073741789, 1))
  351. assert_equal(Rational(0, 1),
  352. Rational(1073741789, 1) - Rational(1073741789, 1))
  353. assert_equal(Rational(1152921429444920521, 1),
  354. Rational(1073741789, 1) * Rational(1073741789, 1))
  355. assert_equal(Rational(1, 1),
  356. Rational(1073741789, 1) / Rational(1073741789, 1))
  357. assert_equal(Rational(2147483616, 1),
  358. Rational(1073741789, 1) + Rational(1073741827, 1))
  359. assert_equal(Rational(-38, 1),
  360. Rational(1073741789, 1) - Rational(1073741827, 1))
  361. assert_equal(Rational(1152921470247108503, 1),
  362. Rational(1073741789, 1) * Rational(1073741827, 1))
  363. assert_equal(Rational(1073741789, 1073741827),
  364. Rational(1073741789, 1) / Rational(1073741827, 1))
  365. assert_equal(Rational(3221225369, 3),
  366. Rational(1073741789, 1) + Rational(2, 3))
  367. assert_equal(Rational(3221225365, 3),
  368. Rational(1073741789, 1) - Rational(2, 3))
  369. assert_equal(Rational(2147483578, 3),
  370. Rational(1073741789, 1) * Rational(2, 3))
  371. assert_equal(Rational(3221225367, 2),
  372. Rational(1073741789, 1) / Rational(2, 3))
  373. assert_equal(Rational(2147483581, 2),
  374. Rational(1073741789, 1) + Rational(3, 2))
  375. assert_equal(Rational(2147483575, 2),
  376. Rational(1073741789, 1) - Rational(3, 2))
  377. assert_equal(Rational(3221225367, 2),
  378. Rational(1073741789, 1) * Rational(3, 2))
  379. assert_equal(Rational(2147483578, 3),
  380. Rational(1073741789, 1) / Rational(3, 2))
  381. assert_equal(Rational(1152921429444920524, 1073741789),
  382. Rational(1073741789, 1) + Rational(3, 1073741789))
  383. assert_equal(Rational(1152921429444920518, 1073741789),
  384. Rational(1073741789, 1) - Rational(3, 1073741789))
  385. assert_equal(Rational(3, 1),
  386. Rational(1073741789, 1) * Rational(3, 1073741789))
  387. assert_equal(Rational(1152921429444920521, 3),
  388. Rational(1073741789, 1) / Rational(3, 1073741789))
  389. assert_equal(Rational(4294967156, 3),
  390. Rational(1073741789, 1) + Rational(1073741789, 3))
  391. assert_equal(Rational(2147483578, 3),
  392. Rational(1073741789, 1) - Rational(1073741789, 3))
  393. assert_equal(Rational(1152921429444920521, 3),
  394. Rational(1073741789, 1) * Rational(1073741789, 3))
  395. assert_equal(Rational(3, 1),
  396. Rational(1073741789, 1) / Rational(1073741789, 3))
  397. assert_equal(Rational(1152921470247108506, 1073741827),
  398. Rational(1073741789, 1) + Rational(3, 1073741827))
  399. assert_equal(Rational(1152921470247108500, 1073741827),
  400. Rational(1073741789, 1) - Rational(3, 1073741827))
  401. assert_equal(Rational(3221225367, 1073741827),
  402. Rational(1073741789, 1) * Rational(3, 1073741827))
  403. assert_equal(Rational(1152921470247108503, 3),
  404. Rational(1073741789, 1) / Rational(3, 1073741827))
  405. assert_equal(Rational(4294967194, 3),
  406. Rational(1073741789, 1) + Rational(1073741827, 3))
  407. assert_equal(Rational(2147483540, 3),
  408. Rational(1073741789, 1) - Rational(1073741827, 3))
  409. assert_equal(Rational(1152921470247108503, 3),
  410. Rational(1073741789, 1) * Rational(1073741827, 3))
  411. assert_equal(Rational(3221225367, 1073741827),
  412. Rational(1073741789, 1) / Rational(1073741827, 3))
  413. assert_equal(Rational(1152921471320850292, 1073741827),
  414. Rational(1073741789, 1) + Rational(1073741789, 1073741827))
  415. assert_equal(Rational(1152921469173366714, 1073741827),
  416. Rational(1073741789, 1) - Rational(1073741789, 1073741827))
  417. assert_equal(Rational(1152921429444920521, 1073741827),
  418. Rational(1073741789, 1) * Rational(1073741789, 1073741827))
  419. assert_equal(Rational(1073741827, 1),
  420. Rational(1073741789, 1) / Rational(1073741789, 1073741827))
  421. assert_equal(Rational(1152921430518662348, 1073741789),
  422. Rational(1073741789, 1) + Rational(1073741827, 1073741789))
  423. assert_equal(Rational(1152921428371178694, 1073741789),
  424. Rational(1073741789, 1) - Rational(1073741827, 1073741789))
  425. assert_equal(Rational(1073741827, 1),
  426. Rational(1073741789, 1) * Rational(1073741827, 1073741789))
  427. assert_equal(Rational(1152921429444920521, 1073741827),
  428. Rational(1073741789, 1) / Rational(1073741827, 1073741789))
  429. assert_equal(Rational(1073741827, 1), +Rational(1073741827, 1))
  430. assert_equal(Rational(-1073741827, 1), -Rational(1073741827, 1))
  431. assert_equal(Rational(1073741828, 1),
  432. Rational(1073741827, 1) + Rational(1, 1))
  433. assert_equal(Rational(1073741826, 1),
  434. Rational(1073741827, 1) - Rational(1, 1))
  435. assert_equal(Rational(1073741827, 1),
  436. Rational(1073741827, 1) * Rational(1, 1))
  437. assert_equal(Rational(1073741827, 1),
  438. Rational(1073741827, 1) / Rational(1, 1))
  439. assert_equal(Rational(1073741829, 1),
  440. Rational(1073741827, 1) + Rational(2, 1))
  441. assert_equal(Rational(1073741825, 1),
  442. Rational(1073741827, 1) - Rational(2, 1))
  443. assert_equal(Rational(2147483654, 1),
  444. Rational(1073741827, 1) * Rational(2, 1))
  445. assert_equal(Rational(1073741827, 2),
  446. Rational(1073741827, 1) / Rational(2, 1))
  447. assert_equal(Rational(1073741830, 1),
  448. Rational(1073741827, 1) + Rational(3, 1))
  449. assert_equal(Rational(1073741824, 1),
  450. Rational(1073741827, 1) - Rational(3, 1))
  451. assert_equal(Rational(3221225481, 1),
  452. Rational(1073741827, 1) * Rational(3, 1))
  453. assert_equal(Rational(1073741827, 3),
  454. Rational(1073741827, 1) / Rational(3, 1))
  455. assert_equal(Rational(2147483616, 1),
  456. Rational(1073741827, 1) + Rational(1073741789, 1))
  457. assert_equal(Rational(38, 1),
  458. Rational(1073741827, 1) - Rational(1073741789, 1))
  459. assert_equal(Rational(1152921470247108503, 1),
  460. Rational(1073741827, 1) * Rational(1073741789, 1))
  461. assert_equal(Rational(1073741827, 1073741789),
  462. Rational(1073741827, 1) / Rational(1073741789, 1))
  463. assert_equal(Rational(2147483654, 1),
  464. Rational(1073741827, 1) + Rational(1073741827, 1))
  465. assert_equal(Rational(0, 1),
  466. Rational(1073741827, 1) - Rational(1073741827, 1))
  467. assert_equal(Rational(1152921511049297929, 1),
  468. Rational(1073741827, 1) * Rational(1073741827, 1))
  469. assert_equal(Rational(1, 1),
  470. Rational(1073741827, 1) / Rational(1073741827, 1))
  471. assert_equal(Rational(3221225483, 3),
  472. Rational(1073741827, 1) + Rational(2, 3))
  473. assert_equal(Rational(3221225479, 3),
  474. Rational(1073741827, 1) - Rational(2, 3))
  475. assert_equal(Rational(2147483654, 3),
  476. Rational(1073741827, 1) * Rational(2, 3))
  477. assert_equal(Rational(3221225481, 2),
  478. Rational(1073741827, 1) / Rational(2, 3))
  479. assert_equal(Rational(2147483657, 2),
  480. Rational(1073741827, 1) + Rational(3, 2))
  481. assert_equal(Rational(2147483651, 2),
  482. Rational(1073741827, 1) - Rational(3, 2))
  483. assert_equal(Rational(3221225481, 2),
  484. Rational(1073741827, 1) * Rational(3, 2))
  485. assert_equal(Rational(2147483654, 3),
  486. Rational(1073741827, 1) / Rational(3, 2))
  487. assert_equal(Rational(1152921470247108506, 1073741789),
  488. Rational(1073741827, 1) + Rational(3, 1073741789))
  489. assert_equal(Rational(1152921470247108500, 1073741789),
  490. Rational(1073741827, 1) - Rational(3, 1073741789))
  491. assert_equal(Rational(3221225481, 1073741789),
  492. Rational(1073741827, 1) * Rational(3, 1073741789))
  493. assert_equal(Rational(1152921470247108503, 3),
  494. Rational(1073741827, 1) / Rational(3, 1073741789))
  495. assert_equal(Rational(4294967270, 3),
  496. Rational(1073741827, 1) + Rational(1073741789, 3))
  497. assert_equal(Rational(2147483692, 3),
  498. Rational(1073741827, 1) - Rational(1073741789, 3))
  499. assert_equal(Rational(1152921470247108503, 3),
  500. Rational(1073741827, 1) * Rational(1073741789, 3))
  501. assert_equal(Rational(3221225481, 1073741789),
  502. Rational(1073741827, 1) / Rational(1073741789, 3))
  503. assert_equal(Rational(1152921511049297932, 1073741827),
  504. Rational(1073741827, 1) + Rational(3, 1073741827))
  505. assert_equal(Rational(1152921511049297926, 1073741827),
  506. Rational(1073741827, 1) - Rational(3, 1073741827))
  507. assert_equal(Rational(3, 1),
  508. Rational(1073741827, 1) * Rational(3, 1073741827))
  509. assert_equal(Rational(1152921511049297929, 3),
  510. Rational(1073741827, 1) / Rational(3, 1073741827))
  511. assert_equal(Rational(4294967308, 3),
  512. Rational(1073741827, 1) + Rational(1073741827, 3))
  513. assert_equal(Rational(2147483654, 3),
  514. Rational(1073741827, 1) - Rational(1073741827, 3))
  515. assert_equal(Rational(1152921511049297929, 3),
  516. Rational(1073741827, 1) * Rational(1073741827, 3))
  517. assert_equal(Rational(3, 1),
  518. Rational(1073741827, 1) / Rational(1073741827, 3))
  519. assert_equal(Rational(1152921512123039718, 1073741827),
  520. Rational(1073741827, 1) + Rational(1073741789, 1073741827))
  521. assert_equal(Rational(1152921509975556140, 1073741827),
  522. Rational(1073741827, 1) - Rational(1073741789, 1073741827))
  523. assert_equal(Rational(1073741789, 1),
  524. Rational(1073741827, 1) * Rational(1073741789, 1073741827))
  525. assert_equal(Rational(1152921511049297929, 1073741789),
  526. Rational(1073741827, 1) / Rational(1073741789, 1073741827))
  527. assert_equal(Rational(1152921471320850330, 1073741789),
  528. Rational(1073741827, 1) + Rational(1073741827, 1073741789))
  529. assert_equal(Rational(1152921469173366676, 1073741789),
  530. Rational(1073741827, 1) - Rational(1073741827, 1073741789))
  531. assert_equal(Rational(1152921511049297929, 1073741789),
  532. Rational(1073741827, 1) * Rational(1073741827, 1073741789))
  533. assert_equal(Rational(1073741789, 1),
  534. Rational(1073741827, 1) / Rational(1073741827, 1073741789))
  535. assert_equal(Rational(2, 3), +Rational(2, 3))
  536. assert_equal(Rational(-2, 3), -Rational(2, 3))
  537. assert_equal(Rational(5, 3),
  538. Rational(2, 3) + Rational(1, 1))
  539. assert_equal(Rational(-1, 3),
  540. Rational(2, 3) - Rational(1, 1))
  541. assert_equal(Rational(2, 3),
  542. Rational(2, 3) * Rational(1, 1))
  543. assert_equal(Rational(2, 3),
  544. Rational(2, 3) / Rational(1, 1))
  545. assert_equal(Rational(8, 3),
  546. Rational(2, 3) + Rational(2, 1))
  547. assert_equal(Rational(-4, 3),
  548. Rational(2, 3) - Rational(2, 1))
  549. assert_equal(Rational(4, 3),
  550. Rational(2, 3) * Rational(2, 1))
  551. assert_equal(Rational(1, 3),
  552. Rational(2, 3) / Rational(2, 1))
  553. assert_equal(Rational(11, 3),
  554. Rational(2, 3) + Rational(3, 1))
  555. assert_equal(Rational(-7, 3),
  556. Rational(2, 3) - Rational(3, 1))
  557. assert_equal(Rational(2, 1),
  558. Rational(2, 3) * Rational(3, 1))
  559. assert_equal(Rational(2, 9),
  560. Rational(2, 3) / Rational(3, 1))
  561. assert_equal(Rational(3221225369, 3),
  562. Rational(2, 3) + Rational(1073741789, 1))
  563. assert_equal(Rational(-3221225365, 3),
  564. Rational(2, 3) - Rational(1073741789, 1))
  565. assert_equal(Rational(2147483578, 3),
  566. Rational(2, 3) * Rational(1073741789, 1))
  567. assert_equal(Rational(2, 3221225367),
  568. Rational(2, 3) / Rational(1073741789, 1))
  569. assert_equal(Rational(3221225483, 3),
  570. Rational(2, 3) + Rational(1073741827, 1))
  571. assert_equal(Rational(-3221225479, 3),
  572. Rational(2, 3) - Rational(1073741827, 1))
  573. assert_equal(Rational(2147483654, 3),
  574. Rational(2, 3) * Rational(1073741827, 1))
  575. assert_equal(Rational(2, 3221225481),
  576. Rational(2, 3) / Rational(1073741827, 1))
  577. assert_equal(Rational(4, 3),
  578. Rational(2, 3) + Rational(2, 3))
  579. assert_equal(Rational(0, 1),
  580. Rational(2, 3) - Rational(2, 3))
  581. assert_equal(Rational(4, 9),
  582. Rational(2, 3) * Rational(2, 3))
  583. assert_equal(Rational(1, 1),
  584. Rational(2, 3) / Rational(2, 3))
  585. assert_equal(Rational(13, 6),
  586. Rational(2, 3) + Rational(3, 2))
  587. assert_equal(Rational(-5, 6),
  588. Rational(2, 3) - Rational(3, 2))
  589. assert_equal(Rational(1, 1),
  590. Rational(2, 3) * Rational(3, 2))
  591. assert_equal(Rational(4, 9),
  592. Rational(2, 3) / Rational(3, 2))
  593. assert_equal(Rational(2147483587, 3221225367),
  594. Rational(2, 3) + Rational(3, 1073741789))
  595. assert_equal(Rational(2147483569, 3221225367),
  596. Rational(2, 3) - Rational(3, 1073741789))
  597. assert_equal(Rational(2, 1073741789),
  598. Rational(2, 3) * Rational(3, 1073741789))
  599. assert_equal(Rational(2147483578, 9),
  600. Rational(2, 3) / Rational(3, 1073741789))
  601. assert_equal(Rational(1073741791, 3),
  602. Rational(2, 3) + Rational(1073741789, 3))
  603. assert_equal(Rational(-357913929, 1),
  604. Rational(2, 3) - Rational(1073741789, 3))
  605. assert_equal(Rational(2147483578, 9),
  606. Rational(2, 3) * Rational(1073741789, 3))
  607. assert_equal(Rational(2, 1073741789),
  608. Rational(2, 3) / Rational(1073741789, 3))
  609. assert_equal(Rational(2147483663, 3221225481),
  610. Rational(2, 3) + Rational(3, 1073741827))
  611. assert_equal(Rational(2147483645, 3221225481),
  612. Rational(2, 3) - Rational(3, 1073741827))
  613. assert_equal(Rational(2, 1073741827),
  614. Rational(2, 3) * Rational(3, 1073741827))
  615. assert_equal(Rational(2147483654, 9),
  616. Rational(2, 3) / Rational(3, 1073741827))
  617. assert_equal(Rational(357913943, 1),
  618. Rational(2, 3) + Rational(1073741827, 3))
  619. assert_equal(Rational(-1073741825, 3),
  620. Rational(2, 3) - Rational(1073741827, 3))
  621. assert_equal(Rational(2147483654, 9),
  622. Rational(2, 3) * Rational(1073741827, 3))
  623. assert_equal(Rational(2, 1073741827),
  624. Rational(2, 3) / Rational(1073741827, 3))
  625. assert_equal(Rational(5368709021, 3221225481),
  626. Rational(2, 3) + Rational(1073741789, 1073741827))
  627. assert_equal(Rational(-1073741713, 3221225481),
  628. Rational(2, 3) - Rational(1073741789, 1073741827))
  629. assert_equal(Rational(2147483578, 3221225481),
  630. Rational(2, 3) * Rational(1073741789, 1073741827))
  631. assert_equal(Rational(2147483654, 3221225367),
  632. Rational(2, 3) / Rational(1073741789, 1073741827))
  633. assert_equal(Rational(5368709059, 3221225367),
  634. Rational(2, 3) + Rational(1073741827, 1073741789))
  635. assert_equal(Rational(-1073741903, 3221225367),
  636. Rational(2, 3) - Rational(1073741827, 1073741789))
  637. assert_equal(Rational(2147483654, 3221225367),
  638. Rational(2, 3) * Rational(1073741827, 1073741789))
  639. assert_equal(Rational(2147483578, 3221225481),
  640. Rational(2, 3) / Rational(1073741827, 1073741789))
  641. assert_equal(Rational(3, 2), +Rational(3, 2))
  642. assert_equal(Rational(-3, 2), -Rational(3, 2))
  643. assert_equal(Rational(5, 2),
  644. Rational(3, 2) + Rational(1, 1))
  645. assert_equal(Rational(1, 2),
  646. Rational(3, 2) - Rational(1, 1))
  647. assert_equal(Rational(3, 2),
  648. Rational(3, 2) * Rational(1, 1))
  649. assert_equal(Rational(3, 2),
  650. Rational(3, 2) / Rational(1, 1))
  651. assert_equal(Rational(7, 2),
  652. Rational(3, 2) + Rational(2, 1))
  653. assert_equal(Rational(-1, 2),
  654. Rational(3, 2) - Rational(2, 1))
  655. assert_equal(Rational(3, 1),
  656. Rational(3, 2) * Rational(2, 1))
  657. assert_equal(Rational(3, 4),
  658. Rational(3, 2) / Rational(2, 1))
  659. assert_equal(Rational(9, 2),
  660. Rational(3, 2) + Rational(3, 1))
  661. assert_equal(Rational(-3, 2),
  662. Rational(3, 2) - Rational(3, 1))
  663. assert_equal(Rational(9, 2),
  664. Rational(3, 2) * Rational(3, 1))
  665. assert_equal(Rational(1, 2),
  666. Rational(3, 2) / Rational(3, 1))
  667. assert_equal(Rational(2147483581, 2),
  668. Rational(3, 2) + Rational(1073741789, 1))
  669. assert_equal(Rational(-2147483575, 2),
  670. Rational(3, 2) - Rational(1073741789, 1))
  671. assert_equal(Rational(3221225367, 2),
  672. Rational(3, 2) * Rational(1073741789, 1))
  673. assert_equal(Rational(3, 2147483578),
  674. Rational(3, 2) / Rational(1073741789, 1))
  675. assert_equal(Rational(2147483657, 2),
  676. Rational(3, 2) + Rational(1073741827, 1))
  677. assert_equal(Rational(-2147483651, 2),
  678. Rational(3, 2) - Rational(1073741827, 1))
  679. assert_equal(Rational(3221225481, 2),
  680. Rational(3, 2) * Rational(1073741827, 1))
  681. assert_equal(Rational(3, 2147483654),
  682. Rational(3, 2) / Rational(1073741827, 1))
  683. assert_equal(Rational(13, 6),
  684. Rational(3, 2) + Rational(2, 3))
  685. assert_equal(Rational(5, 6),
  686. Rational(3, 2) - Rational(2, 3))
  687. assert_equal(Rational(1, 1),
  688. Rational(3, 2) * Rational(2, 3))
  689. assert_equal(Rational(9, 4),
  690. Rational(3, 2) / Rational(2, 3))
  691. assert_equal(Rational(3, 1),
  692. Rational(3, 2) + Rational(3, 2))
  693. assert_equal(Rational(0, 1),
  694. Rational(3, 2) - Rational(3, 2))
  695. assert_equal(Rational(9, 4),
  696. Rational(3, 2) * Rational(3, 2))
  697. assert_equal(Rational(1, 1),
  698. Rational(3, 2) / Rational(3, 2))
  699. assert_equal(Rational(3221225373, 2147483578),
  700. Rational(3, 2) + Rational(3, 1073741789))
  701. assert_equal(Rational(3221225361, 2147483578),
  702. Rational(3, 2) - Rational(3, 1073741789))
  703. assert_equal(Rational(9, 2147483578),
  704. Rational(3, 2) * Rational(3, 1073741789))
  705. assert_equal(Rational(1073741789, 2),
  706. Rational(3, 2) / Rational(3, 1073741789))
  707. assert_equal(Rational(2147483587, 6),
  708. Rational(3, 2) + Rational(1073741789, 3))
  709. assert_equal(Rational(-2147483569, 6),
  710. Rational(3, 2) - Rational(1073741789, 3))
  711. assert_equal(Rational(1073741789, 2),
  712. Rational(3, 2) * Rational(1073741789, 3))
  713. assert_equal(Rational(9, 2147483578),
  714. Rational(3, 2) / Rational(1073741789, 3))
  715. assert_equal(Rational(3221225487, 2147483654),
  716. Rational(3, 2) + Rational(3, 1073741827))
  717. assert_equal(Rational(3221225475, 2147483654),
  718. Rational(3, 2) - Rational(3, 1073741827))
  719. assert_equal(Rational(9, 2147483654),
  720. Rational(3, 2) * Rational(3, 1073741827))
  721. assert_equal(Rational(1073741827, 2),
  722. Rational(3, 2) / Rational(3, 1073741827))
  723. assert_equal(Rational(2147483663, 6),
  724. Rational(3, 2) + Rational(1073741827, 3))
  725. assert_equal(Rational(-2147483645, 6),
  726. Rational(3, 2) - Rational(1073741827, 3))
  727. assert_equal(Rational(1073741827, 2),
  728. Rational(3, 2) * Rational(1073741827, 3))
  729. assert_equal(Rational(9, 2147483654),
  730. Rational(3, 2) / Rational(1073741827, 3))
  731. assert_equal(Rational(5368709059, 2147483654),
  732. Rational(3, 2) + Rational(1073741789, 1073741827))
  733. assert_equal(Rational(1073741903, 2147483654),
  734. Rational(3, 2) - Rational(1073741789, 1073741827))
  735. assert_equal(Rational(3221225367, 2147483654),
  736. Rational(3, 2) * Rational(1073741789, 1073741827))
  737. assert_equal(Rational(3221225481, 2147483578),
  738. Rational(3, 2) / Rational(1073741789, 1073741827))
  739. assert_equal(Rational(5368709021, 2147483578),
  740. Rational(3, 2) + Rational(1073741827, 1073741789))
  741. assert_equal(Rational(1073741713, 2147483578),
  742. Rational(3, 2) - Rational(1073741827, 1073741789))
  743. assert_equal(Rational(3221225481, 2147483578),
  744. Rational(3, 2) * Rational(1073741827, 1073741789))
  745. assert_equal(Rational(3221225367, 2147483654),
  746. Rational(3, 2) / Rational(1073741827, 1073741789))
  747. assert_equal(Rational(3, 1073741789), +Rational(3, 1073741789))
  748. assert_equal(Rational(-3, 1073741789), -Rational(3, 1073741789))
  749. assert_equal(Rational(1073741792, 1073741789),
  750. Rational(3, 1073741789) + Rational(1, 1))
  751. assert_equal(Rational(-1073741786, 1073741789),
  752. Rational(3, 1073741789) - Rational(1, 1))
  753. assert_equal(Rational(3, 1073741789),
  754. Rational(3, 1073741789) * Rational(1, 1))
  755. assert_equal(Rational(3, 1073741789),
  756. Rational(3, 1073741789) / Rational(1, 1))
  757. assert_equal(Rational(2147483581, 1073741789),
  758. Rational(3, 1073741789) + Rational(2, 1))
  759. assert_equal(Rational(-2147483575, 1073741789),
  760. Rational(3, 1073741789) - Rational(2, 1))
  761. assert_equal(Rational(6, 1073741789),
  762. Rational(3, 1073741789) * Rational(2, 1))
  763. assert_equal(Rational(3, 2147483578),
  764. Rational(3, 1073741789) / Rational(2, 1))
  765. assert_equal(Rational(3221225370, 1073741789),
  766. Rational(3, 1073741789) + Rational(3, 1))
  767. assert_equal(Rational(-3221225364, 1073741789),
  768. Rational(3, 1073741789) - Rational(3, 1))
  769. assert_equal(Rational(9, 1073741789),
  770. Rational(3, 1073741789) * Rational(3, 1))
  771. assert_equal(Rational(1, 1073741789),
  772. Rational(3, 1073741789) / Rational(3, 1))
  773. assert_equal(Rational(1152921429444920524, 1073741789),
  774. Rational(3, 1073741789) + Rational(1073741789, 1))
  775. assert_equal(Rational(-1152921429444920518, 1073741789),
  776. Rational(3, 1073741789) - Rational(1073741789, 1))
  777. assert_equal(Rational(3, 1),
  778. Rational(3, 1073741789) * Rational(1073741789, 1))
  779. assert_equal(Rational(3, 1152921429444920521),
  780. Rational(3, 1073741789) / Rational(1073741789, 1))
  781. assert_equal(Rational(1152921470247108506, 1073741789),
  782. Rational(3, 1073741789) + Rational(1073741827, 1))
  783. assert_equal(Rational(-1152921470247108500, 1073741789),
  784. Rational(3, 1073741789) - Rational(1073741827, 1))
  785. assert_equal(Rational(3221225481, 1073741789),
  786. Rational(3, 1073741789) * Rational(1073741827, 1))
  787. assert_equal(Rational(3, 1152921470247108503),
  788. Rational(3, 1073741789) / Rational(1073741827, 1))
  789. assert_equal(Rational(2147483587, 3221225367),
  790. Rational(3, 1073741789) + Rational(2, 3))
  791. assert_equal(Rational(-2147483569, 3221225367),
  792. Rational(3, 1073741789) - Rational(2, 3))
  793. assert_equal(Rational(2, 1073741789),
  794. Rational(3, 1073741789) * Rational(2, 3))
  795. assert_equal(Rational(9, 2147483578),
  796. Rational(3, 1073741789) / Rational(2, 3))
  797. assert_equal(Rational(3221225373, 2147483578),
  798. Rational(3, 1073741789) + Rational(3, 2))
  799. assert_equal(Rational(-3221225361, 2147483578),
  800. Rational(3, 1073741789) - Rational(3, 2))
  801. assert_equal(Rational(9, 2147483578),
  802. Rational(3, 1073741789) * Rational(3, 2))
  803. assert_equal(Rational(2, 1073741789),
  804. Rational(3, 1073741789) / Rational(3, 2))
  805. assert_equal(Rational(6, 1073741789),
  806. Rational(3, 1073741789) + Rational(3, 1073741789))
  807. assert_equal(Rational(0, 1),
  808. Rational(3, 1073741789) - Rational(3, 1073741789))
  809. assert_equal(Rational(9, 1152921429444920521),
  810. Rational(3, 1073741789) * Rational(3, 1073741789))
  811. assert_equal(Rational(1, 1),
  812. Rational(3, 1073741789) / Rational(3, 1073741789))
  813. assert_equal(Rational(1152921429444920530, 3221225367),
  814. Rational(3, 1073741789) + Rational(1073741789, 3))
  815. assert_equal(Rational(-1152921429444920512, 3221225367),
  816. Rational(3, 1073741789) - Rational(1073741789, 3))
  817. assert_equal(Rational(1, 1),
  818. Rational(3, 1073741789) * Rational(1073741789, 3))
  819. assert_equal(Rational(9, 1152921429444920521),
  820. Rational(3, 1073741789) / Rational(1073741789, 3))
  821. assert_equal(Rational(6442450848, 1152921470247108503),
  822. Rational(3, 1073741789) + Rational(3, 1073741827))
  823. assert_equal(Rational(114, 1152921470247108503),
  824. Rational(3, 1073741789) - Rational(3, 1073741827))
  825. assert_equal(Rational(9, 1152921470247108503),
  826. Rational(3, 1073741789) * Rational(3, 1073741827))
  827. assert_equal(Rational(1073741827, 1073741789),
  828. Rational(3, 1073741789) / Rational(3, 1073741827))
  829. assert_equal(Rational(1152921470247108512, 3221225367),
  830. Rational(3, 1073741789) + Rational(1073741827, 3))
  831. assert_equal(Rational(-1152921470247108494, 3221225367),
  832. Rational(3, 1073741789) - Rational(1073741827, 3))
  833. assert_equal(Rational(1073741827, 1073741789),
  834. Rational(3, 1073741789) * Rational(1073741827, 3))
  835. assert_equal(Rational(9, 1152921470247108503),
  836. Rational(3, 1073741789) / Rational(1073741827, 3))
  837. assert_equal(Rational(1152921432666146002, 1152921470247108503),
  838. Rational(3, 1073741789) + Rational(1073741789, 1073741827))
  839. assert_equal(Rational(-1152921426223695040, 1152921470247108503),
  840. Rational(3, 1073741789) - Rational(1073741789, 1073741827))
  841. assert_equal(Rational(3, 1073741827),
  842. Rational(3, 1073741789) * Rational(1073741789, 1073741827))
  843. assert_equal(Rational(3221225481, 1152921429444920521),
  844. Rational(3, 1073741789) / Rational(1073741789, 1073741827))
  845. assert_equal(Rational(1073741830, 1073741789),
  846. Rational(3, 1073741789) + Rational(1073741827, 1073741789))
  847. assert_equal(Rational(-1073741824, 1073741789),
  848. Rational(3, 1073741789) - Rational(1073741827, 1073741789))
  849. assert_equal(Rational(3221225481, 1152921429444920521),
  850. Rational(3, 1073741789) * Rational(1073741827, 1073741789))
  851. assert_equal(Rational(3, 1073741827),
  852. Rational(3, 1073741789) / Rational(1073741827, 1073741789))
  853. assert_equal(Rational(1073741789, 3), +Rational(1073741789, 3))
  854. assert_equal(Rational(-1073741789, 3), -Rational(1073741789, 3))
  855. assert_equal(Rational(1073741792, 3),
  856. Rational(1073741789, 3) + Rational(1, 1))
  857. assert_equal(Rational(1073741786, 3),
  858. Rational(1073741789, 3) - Rational(1, 1))
  859. assert_equal(Rational(1073741789, 3),
  860. Rational(1073741789, 3) * Rational(1, 1))
  861. assert_equal(Rational(1073741789, 3),
  862. Rational(1073741789, 3) / Rational(1, 1))
  863. assert_equal(Rational(1073741795, 3),
  864. Rational(1073741789, 3) + Rational(2, 1))
  865. assert_equal(Rational(1073741783, 3),
  866. Rational(1073741789, 3) - Rational(2, 1))
  867. assert_equal(Rational(2147483578, 3),
  868. Rational(1073741789, 3) * Rational(2, 1))
  869. assert_equal(Rational(1073741789, 6),
  870. Rational(1073741789, 3) / Rational(2, 1))
  871. assert_equal(Rational(1073741798, 3),
  872. Rational(1073741789, 3) + Rational(3, 1))
  873. assert_equal(Rational(1073741780, 3),
  874. Rational(1073741789, 3) - Rational(3, 1))
  875. assert_equal(Rational(1073741789, 1),
  876. Rational(1073741789, 3) * Rational(3, 1))
  877. assert_equal(Rational(1073741789, 9),
  878. Rational(1073741789, 3) / Rational(3, 1))
  879. assert_equal(Rational(4294967156, 3),
  880. Rational(1073741789, 3) + Rational(1073741789, 1))
  881. assert_equal(Rational(-2147483578, 3),
  882. Rational(1073741789, 3) - Rational(1073741789, 1))
  883. assert_equal(Rational(1152921429444920521, 3),
  884. Rational(1073741789, 3) * Rational(1073741789, 1))
  885. assert_equal(Rational(1, 3),
  886. Rational(1073741789, 3) / Rational(1073741789, 1))
  887. assert_equal(Rational(4294967270, 3),
  888. Rational(1073741789, 3) + Rational(1073741827, 1))
  889. assert_equal(Rational(-2147483692, 3),
  890. Rational(1073741789, 3) - Rational(1073741827, 1))
  891. assert_equal(Rational(1152921470247108503, 3),
  892. Rational(1073741789, 3) * Rational(1073741827, 1))
  893. assert_equal(Rational(1073741789, 3221225481),
  894. Rational(1073741789, 3) / Rational(1073741827, 1))
  895. assert_equal(Rational(1073741791, 3),
  896. Rational(1073741789, 3) + Rational(2, 3))
  897. assert_equal(Rational(357913929, 1),
  898. Rational(1073741789, 3) - Rational(2, 3))
  899. assert_equal(Rational(2147483578, 9),
  900. Rational(1073741789, 3) * Rational(2, 3))
  901. assert_equal(Rational(1073741789, 2),
  902. Rational(1073741789, 3) / Rational(2, 3))
  903. assert_equal(Rational(2147483587, 6),
  904. Rational(1073741789, 3) + Rational(3, 2))
  905. assert_equal(Rational(2147483569, 6),
  906. Rational(1073741789, 3) - Rational(3, 2))
  907. assert_equal(Rational(1073741789, 2),
  908. Rational(1073741789, 3) * Rational(3, 2))
  909. assert_equal(Rational(2147483578, 9),
  910. Rational(1073741789, 3) / Rational(3, 2))
  911. assert_equal(Rational(1152921429444920530, 3221225367),
  912. Rational(1073741789, 3) + Rational(3, 1073741789))
  913. assert_equal(Rational(1152921429444920512, 3221225367),
  914. Rational(1073741789, 3) - Rational(3, 1073741789))
  915. assert_equal(Rational(1, 1),
  916. Rational(1073741789, 3) * Rational(3, 1073741789))
  917. assert_equal(Rational(1152921429444920521, 9),
  918. Rational(1073741789, 3) / Rational(3, 1073741789))
  919. assert_equal(Rational(2147483578, 3),
  920. Rational(1073741789, 3) + Rational(1073741789, 3))
  921. assert_equal(Rational(0, 1),
  922. Rational(1073741789, 3) - Rational(1073741789, 3))
  923. assert_equal(Rational(1152921429444920521, 9),
  924. Rational(1073741789, 3) * Rational(1073741789, 3))
  925. assert_equal(Rational(1, 1),
  926. Rational(1073741789, 3) / Rational(1073741789, 3))
  927. assert_equal(Rational(1152921470247108512, 3221225481),
  928. Rational(1073741789, 3) + Rational(3, 1073741827))
  929. assert_equal(Rational(1152921470247108494, 3221225481),
  930. Rational(1073741789, 3) - Rational(3, 1073741827))
  931. assert_equal(Rational(1073741789, 1073741827),
  932. Rational(1073741789, 3) * Rational(3, 1073741827))
  933. assert_equal(Rational(1152921470247108503, 9),
  934. Rational(1073741789, 3) / Rational(3, 1073741827))
  935. assert_equal(Rational(715827872, 1),
  936. Rational(1073741789, 3) + Rational(1073741827, 3))
  937. assert_equal(Rational(-38, 3),
  938. Rational(1073741789, 3) - Rational(1073741827, 3))
  939. assert_equal(Rational(1152921470247108503, 9),
  940. Rational(1073741789, 3) * Rational(1073741827, 3))
  941. assert_equal(Rational(1073741789, 1073741827),
  942. Rational(1073741789, 3) / Rational(1073741827, 3))
  943. assert_equal(Rational(1152921473468333870, 3221225481),
  944. Rational(1073741789, 3) + Rational(1073741789, 1073741827))
  945. assert_equal(Rational(1152921467025883136, 3221225481),
  946. Rational(1073741789, 3) - Rational(1073741789, 1073741827))
  947. assert_equal(Rational(1152921429444920521, 3221225481),
  948. Rational(1073741789, 3) * Rational(1073741789, 1073741827))
  949. assert_equal(Rational(1073741827, 3),
  950. Rational(1073741789, 3) / Rational(1073741789, 1073741827))
  951. assert_equal(Rational(1152921432666146002, 3221225367),
  952. Rational(1073741789, 3) + Rational(1073741827, 1073741789))
  953. assert_equal(Rational(1152921426223695040, 3221225367),
  954. Rational(1073741789, 3) - Rational(1073741827, 1073741789))
  955. assert_equal(Rational(1073741827, 3),
  956. Rational(1073741789, 3) * Rational(1073741827, 1073741789))
  957. assert_equal(Rational(1152921429444920521, 3221225481),