def test_roundtrip(self): for n in [0, 1, 1000, 1000000]: self.assertEqual(n, base36_to_int(int_to_base36(n)))
def test_values(self): for n, b36 in [(0, '0'), (1, '1'), (42, '16'), (818469960, 'djmodels')]: self.assertEqual(int_to_base36(n), b36) self.assertEqual(base36_to_int(b36), n)
def test_input_too_large(self): with self.assertRaisesMessage(ValueError, 'Base36 input too large'): base36_to_int('1' * 14)
def test_to_int_errors(self): for n in [123, {1: 2}, (1, 2, 3), 3.141]: with self.assertRaises(TypeError): base36_to_int(n)
def test_invalid_literal(self): for n in ['#', ' ']: with self.assertRaisesMessage( ValueError, "invalid literal for int() with base 36: '%s'" % n): base36_to_int(n)