1
0

010_int.py 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874
  1. # test int literals
  2. assert 0xffff == 65535
  3. assert 0xAAFFFF == 11206655
  4. assert 0x7fffffff == 2147483647
  5. assert -0xffff == -65535
  6. assert -0xAAFFFF == -11206655
  7. assert -0x7fffffff == -2147483647
  8. # test 64-bit
  9. assert 2**60-1 + 546 - 0xfffffffffffff == 1148417904979477026
  10. # test oct literals
  11. assert 0o1234 == 668
  12. assert 0o17777777777 == 2147483647
  13. assert -0o1234 == -668
  14. assert -0o17777777777 == -2147483647
  15. # test binary literals
  16. assert 0b10010 == 18
  17. assert -0b10010 == -18
  18. assert 0b11111111111111111111111111111111 == 4294967295
  19. assert -0b11111 == -31
  20. # test == != >= <= < >
  21. assert -1 == -1
  22. assert -1 != 1
  23. assert -1 >= -1
  24. assert -1 <= -1
  25. assert -1 < 1
  26. assert -1 > -2
  27. # test + - * % ** //
  28. assert -1 + 1 == 0
  29. assert -1 - 1 == -2
  30. assert 4 * -1 == -4
  31. assert 5 % 2 == 1
  32. assert 2 ** 3 == 8
  33. assert 4 // 2 == 2
  34. assert 5 // 2 == 2
  35. # test += -= *= //=
  36. x = 3
  37. x += 1
  38. assert x == 4
  39. x -= 1
  40. assert x == 3
  41. x *= 2
  42. assert x == 6
  43. x //= 2
  44. assert x == 3
  45. # test bit_length
  46. assert (1).bit_length() == 1
  47. assert (2).bit_length() == 2
  48. assert (3).bit_length() == 2
  49. assert (-1).bit_length() == 1
  50. assert (-2).bit_length() == 2
  51. assert (-3).bit_length() == 2
  52. assert (123123123123123).bit_length() == 47
  53. assert (-3123123123).bit_length() == 32
  54. # test int()
  55. assert int() == 0
  56. assert int(True) == 1
  57. assert int(False) == 0
  58. assert int(1) == 1
  59. assert int(1.0) == 1
  60. assert int(1.1) == 1
  61. assert int(1.9) == 1
  62. assert int(-1.9) == -1
  63. assert int(1.5) == 1
  64. assert int(-1.5) == -1
  65. assert int("123") == 123
  66. assert int("0x123", 16) == 291
  67. assert int("0o123", 8) == 83
  68. assert int("-0x123", 16) == -291
  69. assert int("-0o123", 8) == -83
  70. assert int("-123") == -123
  71. assert int("+123") == 123
  72. # test >> << & | ^
  73. assert 12 >> 1 == 6
  74. assert 12 << 1 == 24
  75. assert 12 & 1 == 0
  76. assert 12 | 1 == 13
  77. assert 12 ^ 1 == 13
  78. # test high precision int pow
  79. assert 7**21 == 558545864083284007
  80. assert 2**60 == 1152921504606846976
  81. assert -2**60 == -1152921504606846976
  82. assert 4**13 == 67108864
  83. assert (-4)**13 == -67108864
  84. assert ~3 == -4
  85. assert ~-3 == 2
  86. assert ~0 == -1
  87. # test __str__, __repr__
  88. assert str(1) == '1'
  89. assert repr(1) == '1'
  90. assert 1 < 2 < 3
  91. assert 4 > 3 >= 3
  92. assert not 1 < 2 > 3
  93. assert abs(0) == 0
  94. assert abs(1) == 1
  95. assert abs(-1) == 1
  96. # test negative % and //
  97. assert -10 % -10 == 0
  98. assert -10 // -10 == 1
  99. assert -10 % -9 == -1
  100. assert -10 // -9 == 1
  101. assert -10 % -8 == -2
  102. assert -10 // -8 == 1
  103. assert -10 % -7 == -3
  104. assert -10 // -7 == 1
  105. assert -10 % -6 == -4
  106. assert -10 // -6 == 1
  107. assert -10 % -5 == 0
  108. assert -10 // -5 == 2
  109. assert -10 % -4 == -2
  110. assert -10 // -4 == 2
  111. assert -10 % -3 == -1
  112. assert -10 // -3 == 3
  113. assert -10 % -2 == 0
  114. assert -10 // -2 == 5
  115. assert -10 % -1 == 0
  116. assert -10 // -1 == 10
  117. assert -10 % 1 == 0
  118. assert -10 // 1 == -10
  119. assert -10 % 2 == 0
  120. assert -10 // 2 == -5
  121. assert -10 % 3 == 2
  122. assert -10 // 3 == -4
  123. assert -10 % 4 == 2
  124. assert -10 // 4 == -3
  125. assert -10 % 5 == 0
  126. assert -10 // 5 == -2
  127. assert -10 % 6 == 2
  128. assert -10 // 6 == -2
  129. assert -10 % 7 == 4
  130. assert -10 // 7 == -2
  131. assert -10 % 8 == 6
  132. assert -10 // 8 == -2
  133. assert -10 % 9 == 8
  134. assert -10 // 9 == -2
  135. assert -9 % -10 == -9
  136. assert -9 // -10 == 0
  137. assert -9 % -9 == 0
  138. assert -9 // -9 == 1
  139. assert -9 % -8 == -1
  140. assert -9 // -8 == 1
  141. assert -9 % -7 == -2
  142. assert -9 // -7 == 1
  143. assert -9 % -6 == -3
  144. assert -9 // -6 == 1
  145. assert -9 % -5 == -4
  146. assert -9 // -5 == 1
  147. assert -9 % -4 == -1
  148. assert -9 // -4 == 2
  149. assert -9 % -3 == 0
  150. assert -9 // -3 == 3
  151. assert -9 % -2 == -1
  152. assert -9 // -2 == 4
  153. assert -9 % -1 == 0
  154. assert -9 // -1 == 9
  155. assert -9 % 1 == 0
  156. assert -9 // 1 == -9
  157. assert -9 % 2 == 1
  158. assert -9 // 2 == -5
  159. assert -9 % 3 == 0
  160. assert -9 // 3 == -3
  161. assert -9 % 4 == 3
  162. assert -9 // 4 == -3
  163. assert -9 % 5 == 1
  164. assert -9 // 5 == -2
  165. assert -9 % 6 == 3
  166. assert -9 // 6 == -2
  167. assert -9 % 7 == 5
  168. assert -9 // 7 == -2
  169. assert -9 % 8 == 7
  170. assert -9 // 8 == -2
  171. assert -9 % 9 == 0
  172. assert -9 // 9 == -1
  173. assert -8 % -10 == -8
  174. assert -8 // -10 == 0
  175. assert -8 % -9 == -8
  176. assert -8 // -9 == 0
  177. assert -8 % -8 == 0
  178. assert -8 // -8 == 1
  179. assert -8 % -7 == -1
  180. assert -8 // -7 == 1
  181. assert -8 % -6 == -2
  182. assert -8 // -6 == 1
  183. assert -8 % -5 == -3
  184. assert -8 // -5 == 1
  185. assert -8 % -4 == 0
  186. assert -8 // -4 == 2
  187. assert -8 % -3 == -2
  188. assert -8 // -3 == 2
  189. assert -8 % -2 == 0
  190. assert -8 // -2 == 4
  191. assert -8 % -1 == 0
  192. assert -8 // -1 == 8
  193. assert -8 % 1 == 0
  194. assert -8 // 1 == -8
  195. assert -8 % 2 == 0
  196. assert -8 // 2 == -4
  197. assert -8 % 3 == 1
  198. assert -8 // 3 == -3
  199. assert -8 % 4 == 0
  200. assert -8 // 4 == -2
  201. assert -8 % 5 == 2
  202. assert -8 // 5 == -2
  203. assert -8 % 6 == 4
  204. assert -8 // 6 == -2
  205. assert -8 % 7 == 6
  206. assert -8 // 7 == -2
  207. assert -8 % 8 == 0
  208. assert -8 // 8 == -1
  209. assert -8 % 9 == 1
  210. assert -8 // 9 == -1
  211. assert -7 % -10 == -7
  212. assert -7 // -10 == 0
  213. assert -7 % -9 == -7
  214. assert -7 // -9 == 0
  215. assert -7 % -8 == -7
  216. assert -7 // -8 == 0
  217. assert -7 % -7 == 0
  218. assert -7 // -7 == 1
  219. assert -7 % -6 == -1
  220. assert -7 // -6 == 1
  221. assert -7 % -5 == -2
  222. assert -7 // -5 == 1
  223. assert -7 % -4 == -3
  224. assert -7 // -4 == 1
  225. assert -7 % -3 == -1
  226. assert -7 // -3 == 2
  227. assert -7 % -2 == -1
  228. assert -7 // -2 == 3
  229. assert -7 % -1 == 0
  230. assert -7 // -1 == 7
  231. assert -7 % 1 == 0
  232. assert -7 // 1 == -7
  233. assert -7 % 2 == 1
  234. assert -7 // 2 == -4
  235. assert -7 % 3 == 2
  236. assert -7 // 3 == -3
  237. assert -7 % 4 == 1
  238. assert -7 // 4 == -2
  239. assert -7 % 5 == 3
  240. assert -7 // 5 == -2
  241. assert -7 % 6 == 5
  242. assert -7 // 6 == -2
  243. assert -7 % 7 == 0
  244. assert -7 // 7 == -1
  245. assert -7 % 8 == 1
  246. assert -7 // 8 == -1
  247. assert -7 % 9 == 2
  248. assert -7 // 9 == -1
  249. assert -6 % -10 == -6
  250. assert -6 // -10 == 0
  251. assert -6 % -9 == -6
  252. assert -6 // -9 == 0
  253. assert -6 % -8 == -6
  254. assert -6 // -8 == 0
  255. assert -6 % -7 == -6
  256. assert -6 // -7 == 0
  257. assert -6 % -6 == 0
  258. assert -6 // -6 == 1
  259. assert -6 % -5 == -1
  260. assert -6 // -5 == 1
  261. assert -6 % -4 == -2
  262. assert -6 // -4 == 1
  263. assert -6 % -3 == 0
  264. assert -6 // -3 == 2
  265. assert -6 % -2 == 0
  266. assert -6 // -2 == 3
  267. assert -6 % -1 == 0
  268. assert -6 // -1 == 6
  269. assert -6 % 1 == 0
  270. assert -6 // 1 == -6
  271. assert -6 % 2 == 0
  272. assert -6 // 2 == -3
  273. assert -6 % 3 == 0
  274. assert -6 // 3 == -2
  275. assert -6 % 4 == 2
  276. assert -6 // 4 == -2
  277. assert -6 % 5 == 4
  278. assert -6 // 5 == -2
  279. assert -6 % 6 == 0
  280. assert -6 // 6 == -1
  281. assert -6 % 7 == 1
  282. assert -6 // 7 == -1
  283. assert -6 % 8 == 2
  284. assert -6 // 8 == -1
  285. assert -6 % 9 == 3
  286. assert -6 // 9 == -1
  287. assert -5 % -10 == -5
  288. assert -5 // -10 == 0
  289. assert -5 % -9 == -5
  290. assert -5 // -9 == 0
  291. assert -5 % -8 == -5
  292. assert -5 // -8 == 0
  293. assert -5 % -7 == -5
  294. assert -5 // -7 == 0
  295. assert -5 % -6 == -5
  296. assert -5 // -6 == 0
  297. assert -5 % -5 == 0
  298. assert -5 // -5 == 1
  299. assert -5 % -4 == -1
  300. assert -5 // -4 == 1
  301. assert -5 % -3 == -2
  302. assert -5 // -3 == 1
  303. assert -5 % -2 == -1
  304. assert -5 // -2 == 2
  305. assert -5 % -1 == 0
  306. assert -5 // -1 == 5
  307. assert -5 % 1 == 0
  308. assert -5 // 1 == -5
  309. assert -5 % 2 == 1
  310. assert -5 // 2 == -3
  311. assert -5 % 3 == 1
  312. assert -5 // 3 == -2
  313. assert -5 % 4 == 3
  314. assert -5 // 4 == -2
  315. assert -5 % 5 == 0
  316. assert -5 // 5 == -1
  317. assert -5 % 6 == 1
  318. assert -5 // 6 == -1
  319. assert -5 % 7 == 2
  320. assert -5 // 7 == -1
  321. assert -5 % 8 == 3
  322. assert -5 // 8 == -1
  323. assert -5 % 9 == 4
  324. assert -5 // 9 == -1
  325. assert -4 % -10 == -4
  326. assert -4 // -10 == 0
  327. assert -4 % -9 == -4
  328. assert -4 // -9 == 0
  329. assert -4 % -8 == -4
  330. assert -4 // -8 == 0
  331. assert -4 % -7 == -4
  332. assert -4 // -7 == 0
  333. assert -4 % -6 == -4
  334. assert -4 // -6 == 0
  335. assert -4 % -5 == -4
  336. assert -4 // -5 == 0
  337. assert -4 % -4 == 0
  338. assert -4 // -4 == 1
  339. assert -4 % -3 == -1
  340. assert -4 // -3 == 1
  341. assert -4 % -2 == 0
  342. assert -4 // -2 == 2
  343. assert -4 % -1 == 0
  344. assert -4 // -1 == 4
  345. assert -4 % 1 == 0
  346. assert -4 // 1 == -4
  347. assert -4 % 2 == 0
  348. assert -4 // 2 == -2
  349. assert -4 % 3 == 2
  350. assert -4 // 3 == -2
  351. assert -4 % 4 == 0
  352. assert -4 // 4 == -1
  353. assert -4 % 5 == 1
  354. assert -4 // 5 == -1
  355. assert -4 % 6 == 2
  356. assert -4 // 6 == -1
  357. assert -4 % 7 == 3
  358. assert -4 // 7 == -1
  359. assert -4 % 8 == 4
  360. assert -4 // 8 == -1
  361. assert -4 % 9 == 5
  362. assert -4 // 9 == -1
  363. assert -3 % -10 == -3
  364. assert -3 // -10 == 0
  365. assert -3 % -9 == -3
  366. assert -3 // -9 == 0
  367. assert -3 % -8 == -3
  368. assert -3 // -8 == 0
  369. assert -3 % -7 == -3
  370. assert -3 // -7 == 0
  371. assert -3 % -6 == -3
  372. assert -3 // -6 == 0
  373. assert -3 % -5 == -3
  374. assert -3 // -5 == 0
  375. assert -3 % -4 == -3
  376. assert -3 // -4 == 0
  377. assert -3 % -3 == 0
  378. assert -3 // -3 == 1
  379. assert -3 % -2 == -1
  380. assert -3 // -2 == 1
  381. assert -3 % -1 == 0
  382. assert -3 // -1 == 3
  383. assert -3 % 1 == 0
  384. assert -3 // 1 == -3
  385. assert -3 % 2 == 1
  386. assert -3 // 2 == -2
  387. assert -3 % 3 == 0
  388. assert -3 // 3 == -1
  389. assert -3 % 4 == 1
  390. assert -3 // 4 == -1
  391. assert -3 % 5 == 2
  392. assert -3 // 5 == -1
  393. assert -3 % 6 == 3
  394. assert -3 // 6 == -1
  395. assert -3 % 7 == 4
  396. assert -3 // 7 == -1
  397. assert -3 % 8 == 5
  398. assert -3 // 8 == -1
  399. assert -3 % 9 == 6
  400. assert -3 // 9 == -1
  401. assert -2 % -10 == -2
  402. assert -2 // -10 == 0
  403. assert -2 % -9 == -2
  404. assert -2 // -9 == 0
  405. assert -2 % -8 == -2
  406. assert -2 // -8 == 0
  407. assert -2 % -7 == -2
  408. assert -2 // -7 == 0
  409. assert -2 % -6 == -2
  410. assert -2 // -6 == 0
  411. assert -2 % -5 == -2
  412. assert -2 // -5 == 0
  413. assert -2 % -4 == -2
  414. assert -2 // -4 == 0
  415. assert -2 % -3 == -2
  416. assert -2 // -3 == 0
  417. assert -2 % -2 == 0
  418. assert -2 // -2 == 1
  419. assert -2 % -1 == 0
  420. assert -2 // -1 == 2
  421. assert -2 % 1 == 0
  422. assert -2 // 1 == -2
  423. assert -2 % 2 == 0
  424. assert -2 // 2 == -1
  425. assert -2 % 3 == 1
  426. assert -2 // 3 == -1
  427. assert -2 % 4 == 2
  428. assert -2 // 4 == -1
  429. assert -2 % 5 == 3
  430. assert -2 // 5 == -1
  431. assert -2 % 6 == 4
  432. assert -2 // 6 == -1
  433. assert -2 % 7 == 5
  434. assert -2 // 7 == -1
  435. assert -2 % 8 == 6
  436. assert -2 // 8 == -1
  437. assert -2 % 9 == 7
  438. assert -2 // 9 == -1
  439. assert -1 % -10 == -1
  440. assert -1 // -10 == 0
  441. assert -1 % -9 == -1
  442. assert -1 // -9 == 0
  443. assert -1 % -8 == -1
  444. assert -1 // -8 == 0
  445. assert -1 % -7 == -1
  446. assert -1 // -7 == 0
  447. assert -1 % -6 == -1
  448. assert -1 // -6 == 0
  449. assert -1 % -5 == -1
  450. assert -1 // -5 == 0
  451. assert -1 % -4 == -1
  452. assert -1 // -4 == 0
  453. assert -1 % -3 == -1
  454. assert -1 // -3 == 0
  455. assert -1 % -2 == -1
  456. assert -1 // -2 == 0
  457. assert -1 % -1 == 0
  458. assert -1 // -1 == 1
  459. assert -1 % 1 == 0
  460. assert -1 // 1 == -1
  461. assert -1 % 2 == 1
  462. assert -1 // 2 == -1
  463. assert -1 % 3 == 2
  464. assert -1 // 3 == -1
  465. assert -1 % 4 == 3
  466. assert -1 // 4 == -1
  467. assert -1 % 5 == 4
  468. assert -1 // 5 == -1
  469. assert -1 % 6 == 5
  470. assert -1 // 6 == -1
  471. assert -1 % 7 == 6
  472. assert -1 // 7 == -1
  473. assert -1 % 8 == 7
  474. assert -1 // 8 == -1
  475. assert -1 % 9 == 8
  476. assert -1 // 9 == -1
  477. assert 0 % -10 == 0
  478. assert 0 // -10 == 0
  479. assert 0 % -9 == 0
  480. assert 0 // -9 == 0
  481. assert 0 % -8 == 0
  482. assert 0 // -8 == 0
  483. assert 0 % -7 == 0
  484. assert 0 // -7 == 0
  485. assert 0 % -6 == 0
  486. assert 0 // -6 == 0
  487. assert 0 % -5 == 0
  488. assert 0 // -5 == 0
  489. assert 0 % -4 == 0
  490. assert 0 // -4 == 0
  491. assert 0 % -3 == 0
  492. assert 0 // -3 == 0
  493. assert 0 % -2 == 0
  494. assert 0 // -2 == 0
  495. assert 0 % -1 == 0
  496. assert 0 // -1 == 0
  497. assert 0 % 1 == 0
  498. assert 0 // 1 == 0
  499. assert 0 % 2 == 0
  500. assert 0 // 2 == 0
  501. assert 0 % 3 == 0
  502. assert 0 // 3 == 0
  503. assert 0 % 4 == 0
  504. assert 0 // 4 == 0
  505. assert 0 % 5 == 0
  506. assert 0 // 5 == 0
  507. assert 0 % 6 == 0
  508. assert 0 // 6 == 0
  509. assert 0 % 7 == 0
  510. assert 0 // 7 == 0
  511. assert 0 % 8 == 0
  512. assert 0 // 8 == 0
  513. assert 0 % 9 == 0
  514. assert 0 // 9 == 0
  515. assert 1 % -10 == -9
  516. assert 1 // -10 == -1
  517. assert 1 % -9 == -8
  518. assert 1 // -9 == -1
  519. assert 1 % -8 == -7
  520. assert 1 // -8 == -1
  521. assert 1 % -7 == -6
  522. assert 1 // -7 == -1
  523. assert 1 % -6 == -5
  524. assert 1 // -6 == -1
  525. assert 1 % -5 == -4
  526. assert 1 // -5 == -1
  527. assert 1 % -4 == -3
  528. assert 1 // -4 == -1
  529. assert 1 % -3 == -2
  530. assert 1 // -3 == -1
  531. assert 1 % -2 == -1
  532. assert 1 // -2 == -1
  533. assert 1 % -1 == 0
  534. assert 1 // -1 == -1
  535. assert 1 % 1 == 0
  536. assert 1 // 1 == 1
  537. assert 1 % 2 == 1
  538. assert 1 // 2 == 0
  539. assert 1 % 3 == 1
  540. assert 1 // 3 == 0
  541. assert 1 % 4 == 1
  542. assert 1 // 4 == 0
  543. assert 1 % 5 == 1
  544. assert 1 // 5 == 0
  545. assert 1 % 6 == 1
  546. assert 1 // 6 == 0
  547. assert 1 % 7 == 1
  548. assert 1 // 7 == 0
  549. assert 1 % 8 == 1
  550. assert 1 // 8 == 0
  551. assert 1 % 9 == 1
  552. assert 1 // 9 == 0
  553. assert 2 % -10 == -8
  554. assert 2 // -10 == -1
  555. assert 2 % -9 == -7
  556. assert 2 // -9 == -1
  557. assert 2 % -8 == -6
  558. assert 2 // -8 == -1
  559. assert 2 % -7 == -5
  560. assert 2 // -7 == -1
  561. assert 2 % -6 == -4
  562. assert 2 // -6 == -1
  563. assert 2 % -5 == -3
  564. assert 2 // -5 == -1
  565. assert 2 % -4 == -2
  566. assert 2 // -4 == -1
  567. assert 2 % -3 == -1
  568. assert 2 // -3 == -1
  569. assert 2 % -2 == 0
  570. assert 2 // -2 == -1
  571. assert 2 % -1 == 0
  572. assert 2 // -1 == -2
  573. assert 2 % 1 == 0
  574. assert 2 // 1 == 2
  575. assert 2 % 2 == 0
  576. assert 2 // 2 == 1
  577. assert 2 % 3 == 2
  578. assert 2 // 3 == 0
  579. assert 2 % 4 == 2
  580. assert 2 // 4 == 0
  581. assert 2 % 5 == 2
  582. assert 2 // 5 == 0
  583. assert 2 % 6 == 2
  584. assert 2 // 6 == 0
  585. assert 2 % 7 == 2
  586. assert 2 // 7 == 0
  587. assert 2 % 8 == 2
  588. assert 2 // 8 == 0
  589. assert 2 % 9 == 2
  590. assert 2 // 9 == 0
  591. assert 3 % -10 == -7
  592. assert 3 // -10 == -1
  593. assert 3 % -9 == -6
  594. assert 3 // -9 == -1
  595. assert 3 % -8 == -5
  596. assert 3 // -8 == -1
  597. assert 3 % -7 == -4
  598. assert 3 // -7 == -1
  599. assert 3 % -6 == -3
  600. assert 3 // -6 == -1
  601. assert 3 % -5 == -2
  602. assert 3 // -5 == -1
  603. assert 3 % -4 == -1
  604. assert 3 // -4 == -1
  605. assert 3 % -3 == 0
  606. assert 3 // -3 == -1
  607. assert 3 % -2 == -1
  608. assert 3 // -2 == -2
  609. assert 3 % -1 == 0
  610. assert 3 // -1 == -3
  611. assert 3 % 1 == 0
  612. assert 3 // 1 == 3
  613. assert 3 % 2 == 1
  614. assert 3 // 2 == 1
  615. assert 3 % 3 == 0
  616. assert 3 // 3 == 1
  617. assert 3 % 4 == 3
  618. assert 3 // 4 == 0
  619. assert 3 % 5 == 3
  620. assert 3 // 5 == 0
  621. assert 3 % 6 == 3
  622. assert 3 // 6 == 0
  623. assert 3 % 7 == 3
  624. assert 3 // 7 == 0
  625. assert 3 % 8 == 3
  626. assert 3 // 8 == 0
  627. assert 3 % 9 == 3
  628. assert 3 // 9 == 0
  629. assert 4 % -10 == -6
  630. assert 4 // -10 == -1
  631. assert 4 % -9 == -5
  632. assert 4 // -9 == -1
  633. assert 4 % -8 == -4
  634. assert 4 // -8 == -1
  635. assert 4 % -7 == -3
  636. assert 4 // -7 == -1
  637. assert 4 % -6 == -2
  638. assert 4 // -6 == -1
  639. assert 4 % -5 == -1
  640. assert 4 // -5 == -1
  641. assert 4 % -4 == 0
  642. assert 4 // -4 == -1
  643. assert 4 % -3 == -2
  644. assert 4 // -3 == -2
  645. assert 4 % -2 == 0
  646. assert 4 // -2 == -2
  647. assert 4 % -1 == 0
  648. assert 4 // -1 == -4
  649. assert 4 % 1 == 0
  650. assert 4 // 1 == 4
  651. assert 4 % 2 == 0
  652. assert 4 // 2 == 2
  653. assert 4 % 3 == 1
  654. assert 4 // 3 == 1
  655. assert 4 % 4 == 0
  656. assert 4 // 4 == 1
  657. assert 4 % 5 == 4
  658. assert 4 // 5 == 0
  659. assert 4 % 6 == 4
  660. assert 4 // 6 == 0
  661. assert 4 % 7 == 4
  662. assert 4 // 7 == 0
  663. assert 4 % 8 == 4
  664. assert 4 // 8 == 0
  665. assert 4 % 9 == 4
  666. assert 4 // 9 == 0
  667. assert 5 % -10 == -5
  668. assert 5 // -10 == -1
  669. assert 5 % -9 == -4
  670. assert 5 // -9 == -1
  671. assert 5 % -8 == -3
  672. assert 5 // -8 == -1
  673. assert 5 % -7 == -2
  674. assert 5 // -7 == -1
  675. assert 5 % -6 == -1
  676. assert 5 // -6 == -1
  677. assert 5 % -5 == 0
  678. assert 5 // -5 == -1
  679. assert 5 % -4 == -3
  680. assert 5 // -4 == -2
  681. assert 5 % -3 == -1
  682. assert 5 // -3 == -2
  683. assert 5 % -2 == -1
  684. assert 5 // -2 == -3
  685. assert 5 % -1 == 0
  686. assert 5 // -1 == -5
  687. assert 5 % 1 == 0
  688. assert 5 // 1 == 5
  689. assert 5 % 2 == 1
  690. assert 5 // 2 == 2
  691. assert 5 % 3 == 2
  692. assert 5 // 3 == 1
  693. assert 5 % 4 == 1
  694. assert 5 // 4 == 1
  695. assert 5 % 5 == 0
  696. assert 5 // 5 == 1
  697. assert 5 % 6 == 5
  698. assert 5 // 6 == 0
  699. assert 5 % 7 == 5
  700. assert 5 // 7 == 0
  701. assert 5 % 8 == 5
  702. assert 5 // 8 == 0
  703. assert 5 % 9 == 5
  704. assert 5 // 9 == 0
  705. assert 6 % -10 == -4
  706. assert 6 // -10 == -1
  707. assert 6 % -9 == -3
  708. assert 6 // -9 == -1
  709. assert 6 % -8 == -2
  710. assert 6 // -8 == -1
  711. assert 6 % -7 == -1
  712. assert 6 // -7 == -1
  713. assert 6 % -6 == 0
  714. assert 6 // -6 == -1
  715. assert 6 % -5 == -4
  716. assert 6 // -5 == -2
  717. assert 6 % -4 == -2
  718. assert 6 // -4 == -2
  719. assert 6 % -3 == 0
  720. assert 6 // -3 == -2
  721. assert 6 % -2 == 0
  722. assert 6 // -2 == -3
  723. assert 6 % -1 == 0
  724. assert 6 // -1 == -6
  725. assert 6 % 1 == 0
  726. assert 6 // 1 == 6
  727. assert 6 % 2 == 0
  728. assert 6 // 2 == 3
  729. assert 6 % 3 == 0
  730. assert 6 // 3 == 2
  731. assert 6 % 4 == 2
  732. assert 6 // 4 == 1
  733. assert 6 % 5 == 1
  734. assert 6 // 5 == 1
  735. assert 6 % 6 == 0
  736. assert 6 // 6 == 1
  737. assert 6 % 7 == 6
  738. assert 6 // 7 == 0
  739. assert 6 % 8 == 6
  740. assert 6 // 8 == 0
  741. assert 6 % 9 == 6
  742. assert 6 // 9 == 0
  743. assert 7 % -10 == -3
  744. assert 7 // -10 == -1
  745. assert 7 % -9 == -2
  746. assert 7 // -9 == -1
  747. assert 7 % -8 == -1
  748. assert 7 // -8 == -1
  749. assert 7 % -7 == 0
  750. assert 7 // -7 == -1
  751. assert 7 % -6 == -5
  752. assert 7 // -6 == -2
  753. assert 7 % -5 == -3
  754. assert 7 // -5 == -2
  755. assert 7 % -4 == -1
  756. assert 7 // -4 == -2
  757. assert 7 % -3 == -2
  758. assert 7 // -3 == -3
  759. assert 7 % -2 == -1
  760. assert 7 // -2 == -4
  761. assert 7 % -1 == 0
  762. assert 7 // -1 == -7
  763. assert 7 % 1 == 0
  764. assert 7 // 1 == 7
  765. assert 7 % 2 == 1
  766. assert 7 // 2 == 3
  767. assert 7 % 3 == 1
  768. assert 7 // 3 == 2
  769. assert 7 % 4 == 3
  770. assert 7 // 4 == 1
  771. assert 7 % 5 == 2
  772. assert 7 // 5 == 1
  773. assert 7 % 6 == 1
  774. assert 7 // 6 == 1
  775. assert 7 % 7 == 0
  776. assert 7 // 7 == 1
  777. assert 7 % 8 == 7
  778. assert 7 // 8 == 0
  779. assert 7 % 9 == 7
  780. assert 7 // 9 == 0
  781. assert 8 % -10 == -2
  782. assert 8 // -10 == -1
  783. assert 8 % -9 == -1
  784. assert 8 // -9 == -1
  785. assert 8 % -8 == 0
  786. assert 8 // -8 == -1
  787. assert 8 % -7 == -6
  788. assert 8 // -7 == -2
  789. assert 8 % -6 == -4
  790. assert 8 // -6 == -2
  791. assert 8 % -5 == -2
  792. assert 8 // -5 == -2
  793. assert 8 % -4 == 0
  794. assert 8 // -4 == -2
  795. assert 8 % -3 == -1
  796. assert 8 // -3 == -3
  797. assert 8 % -2 == 0
  798. assert 8 // -2 == -4
  799. assert 8 % -1 == 0
  800. assert 8 // -1 == -8
  801. assert 8 % 1 == 0
  802. assert 8 // 1 == 8
  803. assert 8 % 2 == 0
  804. assert 8 // 2 == 4
  805. assert 8 % 3 == 2
  806. assert 8 // 3 == 2
  807. assert 8 % 4 == 0
  808. assert 8 // 4 == 2
  809. assert 8 % 5 == 3
  810. assert 8 // 5 == 1
  811. assert 8 % 6 == 2
  812. assert 8 // 6 == 1
  813. assert 8 % 7 == 1
  814. assert 8 // 7 == 1
  815. assert 8 % 8 == 0
  816. assert 8 // 8 == 1
  817. assert 8 % 9 == 8
  818. assert 8 // 9 == 0
  819. assert 9 % -10 == -1
  820. assert 9 // -10 == -1
  821. assert 9 % -9 == 0
  822. assert 9 // -9 == -1
  823. assert 9 % -8 == -7
  824. assert 9 // -8 == -2
  825. assert 9 % -7 == -5
  826. assert 9 // -7 == -2
  827. assert 9 % -6 == -3
  828. assert 9 // -6 == -2
  829. assert 9 % -5 == -1
  830. assert 9 // -5 == -2
  831. assert 9 % -4 == -3
  832. assert 9 // -4 == -3
  833. assert 9 % -3 == 0
  834. assert 9 // -3 == -3
  835. assert 9 % -2 == -1
  836. assert 9 // -2 == -5
  837. assert 9 % -1 == 0
  838. assert 9 // -1 == -9
  839. assert 9 % 1 == 0
  840. assert 9 // 1 == 9
  841. assert 9 % 2 == 1
  842. assert 9 // 2 == 4
  843. assert 9 % 3 == 0
  844. assert 9 // 3 == 3
  845. assert 9 % 4 == 1
  846. assert 9 // 4 == 2
  847. assert 9 % 5 == 4
  848. assert 9 // 5 == 1
  849. assert 9 % 6 == 3
  850. assert 9 // 6 == 1
  851. assert 9 % 7 == 2
  852. assert 9 // 7 == 1
  853. assert 9 % 8 == 1
  854. assert 9 // 8 == 1
  855. assert 9 % 9 == 0
  856. assert 9 // 9 == 1