Напишите функцию factorial(), которая принимает на вход неотрицательное целое число n и возвращает значение факториала этого числа. Факториал числа n обозначается как n! и равен произведению всех положительных целых чисел от 1 до n.
Напишите также тесты с использованием pytest, чтобы проверить правильность работы функции на разных входных данных.
Пишите ваши варианты в комментариях.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
# factorial.py
def factorial(n):
return 1 if n == 0 else n * factorial(n - 1)
# test_factorial.py
import pytest
from factorial import factorial
def test_factorial_of_zero():
assert factorial(0) == 1
def test_factorial_of_positive_numbers():
assert factorial(1) == 1
assert factorial(2) == 2
assert factorial(3) == 6
assert factorial(4) == 24
assert factorial(5) == 120
def test_factorial_of_large_number():
assert factorial(10) == 3628800
assert factorial(15) == 1307674368000
В данной задаче функция factorial() принимает на вход целое число n и рекурсивно вычисляет его факториал. Для определения базы рекурсии используется тернарный оператор. Тесты проверяют правильность работы функции для различных входных данных.