if n == 0:
return 0
else:
return n % 10 + sum_of_digits(n // 10)
``` if n < 0: # Added base case check for negative numbers
return None
elif not isinstance(n, int): # Check type of argument passed in
raise TypeError("Input must be an integer")
elif n == 0:
return 0
else:
return n % 10 + sum_of_digits(n // 10)
# Unit tests using built-in test suite def test_sum_of_digits_positive(self):
self.assertEqual(sum_of_digits(123), 6)
def test_sum_of_digits_negative(self):
self.assertEqual(sum_of_digits(-123), None)
def test_sum_of_digits_type(self):
with self.assertRaises(TypeError):
sum_of_digits('abc')
if __name__ == '__main__':