test_digits.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. from sympy.ntheory import count_digits, digits, is_palindromic
  2. from sympy.testing.pytest import raises
  3. def test_digits():
  4. assert all([digits(n, 2)[1:] == [int(d) for d in format(n, 'b')]
  5. for n in range(20)])
  6. assert all([digits(n, 8)[1:] == [int(d) for d in format(n, 'o')]
  7. for n in range(20)])
  8. assert all([digits(n, 16)[1:] == [int(d, 16) for d in format(n, 'x')]
  9. for n in range(20)])
  10. assert digits(2345, 34) == [34, 2, 0, 33]
  11. assert digits(384753, 71) == [71, 1, 5, 23, 4]
  12. assert digits(93409, 10) == [10, 9, 3, 4, 0, 9]
  13. assert digits(-92838, 11) == [-11, 6, 3, 8, 2, 9]
  14. assert digits(35, 10) == [10, 3, 5]
  15. assert digits(35, 10, 3) == [10, 0, 3, 5]
  16. assert digits(-35, 10, 4) == [-10, 0, 0, 3, 5]
  17. raises(ValueError, lambda: digits(2, 2, 1))
  18. def test_count_digits():
  19. assert count_digits(55, 2) == {1: 5, 0: 1}
  20. assert count_digits(55, 10) == {5: 2}
  21. n = count_digits(123)
  22. assert n[4] == 0 and type(n[4]) is int
  23. def test_is_palindromic():
  24. assert is_palindromic(-11)
  25. assert is_palindromic(11)
  26. assert is_palindromic(0o121, 8)
  27. assert not is_palindromic(123)