initial commit with 2024 materials

This commit is contained in:
Pamela Hathway 2025-09-19 10:46:45 +02:00
commit 6fdfdbb8b7
66 changed files with 102457 additions and 0 deletions

View file

@ -0,0 +1,54 @@
import numpy as np
from numpy.testing import assert_allclose
import pytest
from logistic import f, iterate_f
def test_f():
# Test cases are (x, r, expected)
cases = [
(0.1, 2.2, 0.198),
(0.2, 3.4, 0.544),
(0.5, 2, 0.5),
]
for x, r, expected in cases:
result = f(x, r)
assert_allclose(result, expected)
def test_f_corner_cases():
# Test cases are (x, r, expected)
cases = [
(0, 1.1, 0),
(1, 3.7, 0),
]
for x, r, expected in cases:
result = f(x, r)
assert_allclose(result, expected)
def test_random_convergence():
SEED = 42
random_state = np.random.RandomState(SEED)
r = 1.5
for _ in range(100):
x0 = random_state.uniform(0.0000001, 0.9999999)
xs = iterate_f(it=100, x0=x0, r=r)
assert np.isclose(xs[-1], 1 / 3)
# SEED = 42
# @pytest.fixture
# def random_state():
# print(f"Using seed {SEED}")
# random_state = np.random.RandomState(SEED)
# return random_state
#@pytest.mark.xfail
def test_random_convergence_decorator(random_state):
r = 1.5
for _ in range(100):
x0 = random_state.uniform(0.0000001, 0.9999999)
xs = iterate_f(it=100, x0=x0, r=r)
assert np.isclose(xs[-1], 1 / 3)