From 51eab93255c7746f24572d6e53c5d6f9ca696296 Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Tue, 23 Sep 2025 18:13:34 +0300 Subject: [PATCH] add iterate_f function and associated test func --- testing_project/logistic.py | 7 +++++++ testing_project/test_logistic.py | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/testing_project/logistic.py b/testing_project/logistic.py index cb3e06e..f5b0957 100644 --- a/testing_project/logistic.py +++ b/testing_project/logistic.py @@ -2,3 +2,10 @@ def f(x, r): return r * x * (1-x) + +def iterate_f(it, x, r): + result = [x] + for i in range(it): + x = f(x, r) + result.append(x) + return result diff --git a/testing_project/test_logistic.py b/testing_project/test_logistic.py index c2ece9f..d68934d 100644 --- a/testing_project/test_logistic.py +++ b/testing_project/test_logistic.py @@ -1,6 +1,6 @@ from numpy.testing import assert_allclose import pytest -from logistic import f +from logistic import f, iterate_f @pytest.mark.parametrize('x,r,expected', [(0, 1.1, 0),(1, 3.7, 0)]) @@ -34,3 +34,11 @@ def test_f_normal_cases(): # x=0.1, r=2.2, it=1 => iterate_f(it, x, r)=[0.1, 0.198] # x=0.2, r=3.4, it=4 => iterate_f(it, x, r)=[0.2, 0.544, 0.843418, 0.449019, 0.841163] # x=0.5, r=2, it=3 => iterate_f(it, x, r)=[0.5, 0.5, 0.5] +@pytest.mark.parametrize('x,r,it,expected', [ + (0.1, 2.2, 1, [0.1, 0.198]), + (0.2, 3.4, 4, [0.2, 0.544, 0.843418, 0.449019, 0.841163]), + (0.5, 2, 3, [0.5, 0.5, 0.5, 0.5]), +]) +def test_iterate_f(x, r, it, expected): + result = iterate_f(it, x, r) + assert_allclose(result, expected, rtol=1e-06)