01_int.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # test int literals
  2. assert 0xffff == 65535
  3. assert 0xAAFFFF == 11206655
  4. assert 0x7fffffff == 2147483647 # will fail on 32-bit systems
  5. # test == != >= <= < >
  6. assert -1 == -1
  7. assert -1 != 1
  8. assert -1 >= -1
  9. assert -1 <= -1
  10. assert -1 < 1
  11. assert -1 > -2
  12. # test + - * % ** //
  13. assert -1 + 1 == 0
  14. assert -1 - 1 == -2
  15. assert 4 * -1 == -4
  16. assert 5 % 2 == 1
  17. assert 2 ** 3 == 8
  18. assert 4 // 2 == 2
  19. assert 5 // 2 == 2
  20. # test += -= *= //=
  21. x = 3
  22. x += 1
  23. assert x == 4
  24. x -= 1
  25. assert x == 3
  26. x *= 2
  27. assert x == 6
  28. x //= 2
  29. assert x == 3
  30. # test __str__, __repr__, __json__
  31. assert str(1) == '1'
  32. assert repr(1) == '1'
  33. assert (1).__json__() == '1'
  34. # test int()
  35. assert int(1) == 1
  36. assert int(1.0) == 1
  37. assert int(1.1) == 1
  38. assert int(1.9) == 1
  39. assert int(-1.9) == -1
  40. assert int(1.5) == 1
  41. assert int(-1.5) == -1
  42. assert int("123") == 123
  43. # test >> << & | ^
  44. assert 12 >> 1 == 6
  45. assert 12 << 1 == 24
  46. assert 12 & 1 == 0
  47. assert 12 | 1 == 13
  48. assert 12 ^ 1 == 13
  49. # test high precision int pow
  50. assert 7**21 == 558545864083284007
  51. assert 2**60 == 1152921504606846976
  52. assert -2**60 == -1152921504606846976
  53. assert 4**13 == 67108864
  54. assert (-4)**13 == -67108864
  55. assert ~3 == -4
  56. assert ~-3 == 2
  57. assert ~0 == -1