int_big_zeroone.py 649 B

12345678910111213141516171819202122232425262728
  1. # test [0,-0,1,-1] edge cases of bignum
  2. long_zero = (2**64) >> 65
  3. long_neg_zero = -long_zero
  4. long_one = long_zero + 1
  5. long_neg_one = -long_one
  6. cases = [long_zero, long_neg_zero, long_one, long_neg_one]
  7. print(cases)
  8. print([-c for c in cases])
  9. print([~c for c in cases])
  10. print([c >> 1 for c in cases])
  11. print([c << 1 for c in cases])
  12. # comparison of 0/-0/+0
  13. print(long_zero == 0)
  14. print(long_neg_zero == 0)
  15. print(long_one - 1 == 0)
  16. print(long_neg_one + 1 == 0)
  17. print(long_zero < 1)
  18. print(long_zero < -1)
  19. print(long_zero > 1)
  20. print(long_zero > -1)
  21. print(long_neg_zero < 1)
  22. print(long_neg_zero < -1)
  23. print(long_neg_zero > 1)
  24. print(long_neg_zero > -1)