From 7665ba5e257a1a42caa36d781925d87968ee1497 Mon Sep 17 00:00:00 2001 From: Qasim Umar <111963035+QasimUmarKhan@users.noreply.github.com> Date: Sat, 5 Jul 2025 15:58:45 +0500 Subject: [PATCH] Add unit tests for factorial.py (#12815) * Add unit tests for factorial.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * uvx --python=3.12 unittest2pytest --write test_factorial.py * Update error message in current_stock_price.py --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Christian Clauss --- maths/test_factorial.py | 37 ++++++++++++++++++++++++++ web_programming/current_stock_price.py | 2 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 maths/test_factorial.py diff --git a/maths/test_factorial.py b/maths/test_factorial.py new file mode 100644 index 000000000..d80d88add --- /dev/null +++ b/maths/test_factorial.py @@ -0,0 +1,37 @@ +# /// script +# requires-python = ">=3.13" +# dependencies = [ +# "pytest", +# ] +# /// + +import pytest + +from maths.factorial import factorial, factorial_recursive + + +@pytest.mark.parametrize("function", [factorial, factorial_recursive]) +def test_zero(function): + assert function(0) == 1 + + +@pytest.mark.parametrize("function", [factorial, factorial_recursive]) +def test_positive_integers(function): + assert function(1) == 1 + assert function(5) == 120 + assert function(7) == 5040 + + +@pytest.mark.parametrize("function", [factorial, factorial_recursive]) +def test_large_number(function): + assert function(10) == 3628800 + + +@pytest.mark.parametrize("function", [factorial, factorial_recursive]) +def test_negative_number(function): + with pytest.raises(ValueError): + function(-3) + + +if __name__ == "__main__": + pytest.main(["-v", __file__]) diff --git a/web_programming/current_stock_price.py b/web_programming/current_stock_price.py index 16b0b6772..531da949e 100644 --- a/web_programming/current_stock_price.py +++ b/web_programming/current_stock_price.py @@ -23,7 +23,7 @@ Current ORCL stock price is 188.87 def stock_price(symbol: str = "AAPL") -> str: """ >>> stock_price("EEEE") - '- ' + 'No tag with the specified data-testid attribute found.' >>> isinstance(float(stock_price("GOOG")),float) True """