From a1918764436cb6382c4f4879daa9befa36332f59 Mon Sep 17 00:00:00 2001 From: David Enoghama Date: Mon, 19 Jan 2026 17:39:01 +0100 Subject: [PATCH] Add coverage report, improve type assertions, and enhance tests for SolveDiffusion2D --- Coverage report.pdf | Bin 0 -> 105216 bytes diffusion2d.py | 9 +++++- requirements.txt | 9 ++++++ tests/integration/test_diffusion2d.py | 35 +++++++++++++++++++++-- tests/unit/test_diffusion2d_functions.py | 30 +++++++++++++++++++ tox.toml | 12 ++++++++ 6 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 Coverage report.pdf create mode 100644 requirements.txt create mode 100644 tox.toml diff --git a/Coverage report.pdf b/Coverage report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9297440c44460fc62cc9ffae11b396575c0e6591 GIT binary patch literal 105216 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.0.0 +pytest-cov>=4.0.0 +tox>=4.0.0 +coverage>=7.0.0 + +# Data Science / Plotting +numpy +matplotlib \ No newline at end of file diff --git a/tests/integration/test_diffusion2d.py b/tests/integration/test_diffusion2d.py index fd026b4..9f144b3 100644 --- a/tests/integration/test_diffusion2d.py +++ b/tests/integration/test_diffusion2d.py @@ -1,19 +1,48 @@ """ Tests for functionality checks in class SolveDiffusion2D """ - +import numpy as np +import pytest from diffusion2d import SolveDiffusion2D +@pytest.fixture +def initial_values(): + return { + "w": 5.0, "h": 5.0, "dx": 0.2, "dy": 0.2, "d": 3.5, "T_cold": 290.0, "T_hot": 750.0} -def test_initialize_physical_parameters(): +def test_initialize_physical_parameters(initial_values): """ Checks function SolveDiffusion2D.initialize_domain """ solver = SolveDiffusion2D() + solver.initialize_domain(w=initial_values["w"], h=initial_values["h"], dx=initial_values["dx"], dy=initial_values["dy"]) + + d = initial_values["d"] + + dx2, dy2 = solver.dx * solver.dx, solver.dy * solver.dy + dt = dx2 * dy2 / (2 * d * (dx2 + dy2)) + solver.initialize_physical_parameters(d=initial_values["d"], T_cold=initial_values["T_cold"], T_hot=initial_values["T_hot"]) + assert solver.dt == dt -def test_set_initial_condition(): +def test_set_initial_condition(initial_values): """ Checks function SolveDiffusion2D.get_initial_function """ solver = SolveDiffusion2D() + solver.initialize_domain(w=initial_values["w"], h=initial_values["h"], dx=initial_values["dx"], dy=initial_values["dy"]) + solver.initialize_physical_parameters(d=initial_values["d"], T_cold=initial_values["T_cold"], T_hot=initial_values["T_hot"]) + u_test = solver.T_cold * np.ones((solver.nx, solver.ny)) + r, cx, cy = 2, 5, 5 + r2 = r ** 2 + for i in range(solver.nx): + for j in range(solver.ny): + p2 = (i * solver.dx - cx) ** 2 + (j * solver.dy - cy) ** 2 + if p2 < r2: + u_test[i, j] = solver.T_hot + + ground_truth = u_test.copy() + + test_value = solver.set_initial_condition() + + assert np.array_equal(ground_truth, test_value) \ No newline at end of file diff --git a/tests/unit/test_diffusion2d_functions.py b/tests/unit/test_diffusion2d_functions.py index c4277ff..a3741bd 100644 --- a/tests/unit/test_diffusion2d_functions.py +++ b/tests/unit/test_diffusion2d_functions.py @@ -2,6 +2,7 @@ Tests for functions in class SolveDiffusion2D """ +import pytest, numpy as np from diffusion2d import SolveDiffusion2D @@ -10,6 +11,9 @@ def test_initialize_domain(): Check function SolveDiffusion2D.initialize_domain """ solver = SolveDiffusion2D() + solver.initialize_domain(w=5.0, h=5.0, dx=0.2, dy=0.2) + assert solver.nx == 25 + assert solver.ny == 25 def test_initialize_physical_parameters(): @@ -17,6 +21,11 @@ def test_initialize_physical_parameters(): Checks function SolveDiffusion2D.initialize_domain """ solver = SolveDiffusion2D() + solver.dx = 0.2 + solver.dy = 0.2 + solver.D = 3.5 + solver.initialize_physical_parameters(d=3.5, T_cold=290.0, T_hot=750.0) + assert solver.dt == pytest.approx(0.002857142857142857, rel=1e-6) def test_set_initial_condition(): @@ -24,3 +33,24 @@ def test_set_initial_condition(): Checks function SolveDiffusion2D.get_initial_function """ solver = SolveDiffusion2D() + solver.nx = 100 + solver.ny = 100 + solver.dx = 0.1 + solver.dy = 0.1 + solver.T_cold = 300.0 + solver.T_hot = 750.0 + + u = solver.set_initial_condition() + + + u_test = solver.T_cold * np.ones((solver.nx, solver.ny)) + r, cx, cy = 2, 5, 5 + r2 = r ** 2 + for i in range(solver.nx): + for j in range(solver.ny): + p2 = (i * solver.dx - cx) ** 2 + (j * solver.dy - cy) ** 2 + if p2 < r2: + u_test[i, j] = solver.T_hot + + ground_truth = u_test.copy() + assert np.array_equal(ground_truth, u) \ No newline at end of file diff --git a/tox.toml b/tox.toml new file mode 100644 index 0000000..050ccf9 --- /dev/null +++ b/tox.toml @@ -0,0 +1,12 @@ +[tox] +env_list = ["pytest"] + +[env_common] +# Common settings to avoid repetition +base_python = ["python3.9"] +deps = ["-rrequirements.txt"] + +[env.pytest_env] +description = "Run tests using pytest" +deps = ["-rrequirements.txt"] +commands = [["pytest"]] \ No newline at end of file