Я пытаюсь использовать assert для проверки правильности работы другой функции.
В этом случае я пытаюсь протестировать следующую функцию:
def factorial(n):
if type(n) != int or n < 0:
raise ValueError, "\nThis error has been raised because the value inputted was either not an integer or negative."
else:
result = 1
for x in range(n):
result = result*(x+1)
print "\n", n, "factorial is:", result
n = input("\n\n Insert a non-negative integer to take the factorial of: ")
factorial(n)
Насколькокак я знал, если бы я использовал assert для проверки результата, когда n = 1, я бы использовал:
assert factorial(1) == 1
Однако это возвращает ошибку подтверждения, хотя я проверил функцию вручную с n = 1, и онаВозвращает ли 1, поэтому не должно ли это вызвать ошибку подтверждения, поскольку условие истинно?
Кто-нибудь может указать, почему я получаю ошибку подтверждения?
Также возможно лииспользуйте assert для проверки правильности поднятия сегмента ValueError?