From cd7d7d810d6802d4f34f6d97f77f402e6996ebcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 13:20:51 +0100 Subject: [PATCH 01/12] Add assertions to validate float input parameters --- diffusion2d.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/diffusion2d.py b/diffusion2d.py index 51a07f2..046d125 100644 --- a/diffusion2d.py +++ b/diffusion2d.py @@ -38,6 +38,10 @@ def __init__(self): self.dt = None def initialize_domain(self, w=10., h=10., dx=0.1, dy=0.1): + assert isinstance(w,float), 'w must be a float' + assert isinstance(h,float), 'h must be a float' + assert isinstance(dx,float), 'dx must be a float' + assert isinstance(dy,float), 'dy must be a float' self.w = w self.h = h self.dx = dx @@ -46,6 +50,9 @@ def initialize_domain(self, w=10., h=10., dx=0.1, dy=0.1): self.ny = int(h / dy) def initialize_physical_parameters(self, d=4., T_cold=300, T_hot=700): + assert isinstance(d,float), 'd must be a float' + assert isinstance(T_cold,float), 'T_cold must be a float' + assert isinstance(T_hot,float), 'T_hot must be a float' self.D = d self.T_cold = T_cold self.T_hot = T_hot From 0b73e901d204b28c64f045d4c5079948684d1515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 13:25:49 +0100 Subject: [PATCH 02/12] Fix default temperature parameters to be floats --- diffusion2d.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diffusion2d.py b/diffusion2d.py index 046d125..7a7a17b 100644 --- a/diffusion2d.py +++ b/diffusion2d.py @@ -49,7 +49,7 @@ def initialize_domain(self, w=10., h=10., dx=0.1, dy=0.1): self.nx = int(w / dx) self.ny = int(h / dy) - def initialize_physical_parameters(self, d=4., T_cold=300, T_hot=700): + def initialize_physical_parameters(self, d=4., T_cold=300., T_hot=700.): assert isinstance(d,float), 'd must be a float' assert isinstance(T_cold,float), 'T_cold must be a float' assert isinstance(T_hot,float), 'T_hot must be a float' From b49f7eef9a612aaf215fe4cd6ce8cc8bf0261abe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 13:52:46 +0100 Subject: [PATCH 03/12] Add unit tests for SolveDiffusion2D core methods --- tests/unit/test_diffusion2d_functions.py | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/tests/unit/test_diffusion2d_functions.py b/tests/unit/test_diffusion2d_functions.py index c4277ff..7d23f53 100644 --- a/tests/unit/test_diffusion2d_functions.py +++ b/tests/unit/test_diffusion2d_functions.py @@ -3,6 +3,7 @@ """ from diffusion2d import SolveDiffusion2D +import numpy as np def test_initialize_domain(): @@ -11,6 +12,19 @@ def test_initialize_domain(): """ solver = SolveDiffusion2D() + w = 12. + h = 8. + dx = 0.5 + dy = 0.4 + + expected_nx = int(w / dx) + expected_ny = int(h / dy) + + solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) + + assert solver.nx == expected_nx, 'nx not correctly initialized, wrong value' + assert solver.ny == expected_ny, 'ny not correctly initialized, wrong value' + def test_initialize_physical_parameters(): """ @@ -18,9 +32,53 @@ def test_initialize_physical_parameters(): """ solver = SolveDiffusion2D() + solver.dx = 0.14 + solver.dy = 0.16 + + d = 6. + T_cold = 290. + T_hot = 450. + + dx2 = solver.dx * solver.dx + dy2 = solver.dy * solver.dy + expected_dt = dx2 * dy2 / (2 * d * (dx2 + dy2)) + + solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) + + assert solver.D == d, 'D not correctly initialized, wrong value' + assert solver.T_cold == T_cold, 'T_cold not correctly initialized, wrong value' + assert solver.T_hot == T_hot, 'T_hot not correctly initialized, wrong value' + assert solver.dt == expected_dt, 'dt not correctly initialized, wrong value' + def test_set_initial_condition(): """ Checks function SolveDiffusion2D.get_initial_function """ solver = SolveDiffusion2D() + + solver.w = 10. + solver.h = 10. + solver.dx = 0.5 + solver.dy = 0.5 + solver.D = 7. + solver.T_cold = 100. + solver.T_hot = 500. + + solver.nx = int(solver.w / solver.dx) + solver.ny = int(solver.h / solver.dy) + + u = solver.set_initial_condition() + + # Check shape + assert u.shape == (solver.nx, solver.ny), 'Initial condition u has wrong shape' + + # Check whether a point far from the center is cold + assert u[0,0] == solver.T_cold, 'Initial condition u far from center not cold' + + # Check whether the center point is hot + assert u[10,10] == solver.T_hot, 'Initial condition u at center not hot' + + # Check whether both values appear + assert np.any(u == solver.T_cold), 'Initial condition u does not contain T_cold' + assert np.any(u == solver.T_hot), 'Initial condition u does not contain T_hot' \ No newline at end of file From 14f92489093dcf99ca4ad705cf033cdecf06426a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 14:01:53 +0100 Subject: [PATCH 04/12] Refactor unit tests to unittest.TestCase class structure --- tests/unit/test_diffusion2d_functions.py | 153 ++++++++++++----------- 1 file changed, 78 insertions(+), 75 deletions(-) diff --git a/tests/unit/test_diffusion2d_functions.py b/tests/unit/test_diffusion2d_functions.py index 7d23f53..e6292d8 100644 --- a/tests/unit/test_diffusion2d_functions.py +++ b/tests/unit/test_diffusion2d_functions.py @@ -4,81 +4,84 @@ from diffusion2d import SolveDiffusion2D import numpy as np +import unittest - -def test_initialize_domain(): - """ - Check function SolveDiffusion2D.initialize_domain - """ - solver = SolveDiffusion2D() - - w = 12. - h = 8. - dx = 0.5 - dy = 0.4 - - expected_nx = int(w / dx) - expected_ny = int(h / dy) - - solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) - - assert solver.nx == expected_nx, 'nx not correctly initialized, wrong value' - assert solver.ny == expected_ny, 'ny not correctly initialized, wrong value' - - -def test_initialize_physical_parameters(): - """ - Checks function SolveDiffusion2D.initialize_domain - """ - solver = SolveDiffusion2D() - - solver.dx = 0.14 - solver.dy = 0.16 - - d = 6. - T_cold = 290. - T_hot = 450. - - dx2 = solver.dx * solver.dx - dy2 = solver.dy * solver.dy - expected_dt = dx2 * dy2 / (2 * d * (dx2 + dy2)) - - solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) - - assert solver.D == d, 'D not correctly initialized, wrong value' - assert solver.T_cold == T_cold, 'T_cold not correctly initialized, wrong value' - assert solver.T_hot == T_hot, 'T_hot not correctly initialized, wrong value' - assert solver.dt == expected_dt, 'dt not correctly initialized, wrong value' - - -def test_set_initial_condition(): +class TestSolveDiffusion2D(unittest.TestCase): """ - Checks function SolveDiffusion2D.get_initial_function + Test class for SolveDiffusion2D """ - solver = SolveDiffusion2D() - - solver.w = 10. - solver.h = 10. - solver.dx = 0.5 - solver.dy = 0.5 - solver.D = 7. - solver.T_cold = 100. - solver.T_hot = 500. - - solver.nx = int(solver.w / solver.dx) - solver.ny = int(solver.h / solver.dy) - - u = solver.set_initial_condition() - - # Check shape - assert u.shape == (solver.nx, solver.ny), 'Initial condition u has wrong shape' - - # Check whether a point far from the center is cold - assert u[0,0] == solver.T_cold, 'Initial condition u far from center not cold' - - # Check whether the center point is hot - assert u[10,10] == solver.T_hot, 'Initial condition u at center not hot' - - # Check whether both values appear - assert np.any(u == solver.T_cold), 'Initial condition u does not contain T_cold' - assert np.any(u == solver.T_hot), 'Initial condition u does not contain T_hot' \ No newline at end of file + def setUp(self): + """ + Setup function + """ + self.solver = SolveDiffusion2D() + + def test_initialize_domain(self): + """ + Check function SolveDiffusion2D.initialize_domain + """ + + w = 12. + h = 8. + dx = 0.5 + dy = 0.4 + + expected_nx = int(w / dx) + expected_ny = int(h / dy) + + self.solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) + + self.assertEqual(self.solver.nx, expected_nx, 'nx not correctly initialized, wrong value') + self.assertEqual(self.solver.ny, expected_ny, 'ny not correctly initialized, wrong value') + + def test_initialize_physical_parameters(self): + """ + Checks function SolveDiffusion2D.initialize_domain + """ + self.solver.dx = 0.14 + self.solver.dy = 0.16 + + d = 6. + T_cold = 290. + T_hot = 450. + + dx2 = self.solver.dx * self.solver.dx + dy2 = self.solver.dy * self.solver.dy + expected_dt = dx2 * dy2 / (2 * d * (dx2 + dy2)) + + self.solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) + + self.assertEqual(self.solver.D, d, 'D not correctly initialized, wrong value') + self.assertEqual(self.solver.T_cold, T_cold, 'T_cold not correctly initialized, wrong value') + self.assertEqual(self.solver.T_hot, T_hot, 'T_hot not correctly initialized, wrong value') + self.assertEqual(self.solver.dt, expected_dt, 'dt not correctly initialized, wrong value') + + def test_set_initial_condition(self): + """ + Checks function SolveDiffusion2D.get_initial_function + """ + self.solver.w = 10. + self.solver.h = 10. + self.solver.dx = 0.5 + self.solver.dy = 0.5 + self.solver.D = 7. + self.solver.T_cold = 100. + self.solver.T_hot = 500. + + self.solver.nx = int(self.solver.w / self.solver.dx) + self.solver.ny = int(self.solver.h / self.solver.dy) + + u = self.solver.set_initial_condition() + + # Check shape + self.assertEqual(u.shape, (self.solver.nx, self.solver.ny), 'Initial condition u has wrong shape') + + # Check whether a point far from the center is cold + self.assertEqual(u[0,0], self.solver.T_cold, 'Initial condition u far from center not cold') + + # Check whether the center point is hot + self.assertEqual(u[10,10], self.solver.T_hot, 'Initial condition u at center not hot') + + # Check whether both values appear + self.assertTrue(np.any(u == self.solver.T_cold), 'Initial condition u does not contain T_cold') + self.assertTrue(np.any(u == self.solver.T_hot), 'Initial condition u does not contain T_hot') \ No newline at end of file From 7e865089a719dbc3d4b443f21c99ee0d0d53ef12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 14:10:22 +0100 Subject: [PATCH 05/12] Introduce a bug in diffusion2.py to test unit tests --- diffusion2d.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/diffusion2d.py b/diffusion2d.py index 7a7a17b..d001d69 100644 --- a/diffusion2d.py +++ b/diffusion2d.py @@ -46,7 +46,8 @@ def initialize_domain(self, w=10., h=10., dx=0.1, dy=0.1): self.h = h self.dx = dx self.dy = dy - self.nx = int(w / dx) + #self.nx = int(w / dx) + self.nx = int(h / dx) # Introduction of a bug on purpose to check unit tests self.ny = int(h / dy) def initialize_physical_parameters(self, d=4., T_cold=300., T_hot=700.): From 3e070c296e42feaf6b0767a0c4aaf9108b042fe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 14:12:03 +0100 Subject: [PATCH 06/12] Revert intentional bug introduced to validate unit tests --- diffusion2d.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diffusion2d.py b/diffusion2d.py index d001d69..edb2041 100644 --- a/diffusion2d.py +++ b/diffusion2d.py @@ -46,8 +46,8 @@ def initialize_domain(self, w=10., h=10., dx=0.1, dy=0.1): self.h = h self.dx = dx self.dy = dy - #self.nx = int(w / dx) - self.nx = int(h / dx) # Introduction of a bug on purpose to check unit tests + self.nx = int(w / dx) + #self.nx = int(h / dx) # Introduction of a bug on purpose to check unit tests self.ny = int(h / dy) def initialize_physical_parameters(self, d=4., T_cold=300., T_hot=700.): From 4c56279dfc0df05d96b88868e6ef6298e975fd25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 14:52:48 +0100 Subject: [PATCH 07/12] Add integration tests for functionality checks in SolveDiffusion2D --- tests/integration/test_diffusion2d.py | 50 +++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/tests/integration/test_diffusion2d.py b/tests/integration/test_diffusion2d.py index fd026b4..477143a 100644 --- a/tests/integration/test_diffusion2d.py +++ b/tests/integration/test_diffusion2d.py @@ -3,6 +3,7 @@ """ from diffusion2d import SolveDiffusion2D +import numpy as np def test_initialize_physical_parameters(): @@ -11,9 +12,58 @@ def test_initialize_physical_parameters(): """ solver = SolveDiffusion2D() + w = 12. + h = 8. + dx = 0.5 + dy = 0.5 + solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) + + d = 5. + T_cold = 280. + T_hot = 600. + solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) + + # Manual calculation of expected dt from the formula used in diffusion2d.py + # dt = dx^2 * dy^2 / (2 * D * (dx^2 + dy^2)) + dx2 = dx * dx + dy2 = dy * dy + expected_dt = dx2 * dy2 / (2 * d * (dx2 + dy2)) + + assert np.isclose(solver.dt, expected_dt), 'dt not computed correctly' + def test_set_initial_condition(): """ Checks function SolveDiffusion2D.get_initial_function """ solver = SolveDiffusion2D() + + w = 10. + h = 9. + dx = 0.2 + dy = 0.2 + solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) + + d = 4. + T_cold = 150. + T_hot = 500. + solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) + + u = solver.set_initial_condition() + + # Manual calculation of expected initial condition u + nx = int (w / dx) + ny = int (h / dy) + expected_u = T_cold * np.ones((nx, ny)) + + for i in range(nx): + for j in range(ny): + r = 2 + cx = 5 + cy = 5 + r2 = r ** 2 + p2 = (i * dx - cx) ** 2 + (j * dy - cy) ** 2 + if p2 < r2: + expected_u[i, j] = T_hot + + np.testing.assert_array_equal(u, expected_u, 'Initial condition u not set correctly') \ No newline at end of file From 27c7968c6cb3130074742d41144e46ccf487a615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 14:56:16 +0100 Subject: [PATCH 08/12] Introduce a bug on purpose to check integration tests --- diffusion2d.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/diffusion2d.py b/diffusion2d.py index edb2041..4146fc7 100644 --- a/diffusion2d.py +++ b/diffusion2d.py @@ -60,7 +60,8 @@ def initialize_physical_parameters(self, d=4., T_cold=300., T_hot=700.): # Computing a stable time step dx2, dy2 = self.dx * self.dx, self.dy * self.dy - self.dt = dx2 * dy2 / (2 * self.D * (dx2 + dy2)) + #self.dt = dx2 * dy2 / (2 * self.D * (dx2 + dy2)) + self.dt = dx2 * dy2 / (self.D * (dx2 + dy2)) # Introduction of a bug on purpose to check integration tests print("dt = {}".format(self.dt)) From e9c045096e6067a1ca0a3669b6dfb76bebd3c1d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 14:57:03 +0100 Subject: [PATCH 09/12] Revert bug that was introduced to check integration tests --- diffusion2d.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/diffusion2d.py b/diffusion2d.py index 4146fc7..24f458f 100644 --- a/diffusion2d.py +++ b/diffusion2d.py @@ -60,8 +60,8 @@ def initialize_physical_parameters(self, d=4., T_cold=300., T_hot=700.): # Computing a stable time step dx2, dy2 = self.dx * self.dx, self.dy * self.dy - #self.dt = dx2 * dy2 / (2 * self.D * (dx2 + dy2)) - self.dt = dx2 * dy2 / (self.D * (dx2 + dy2)) # Introduction of a bug on purpose to check integration tests + self.dt = dx2 * dy2 / (2 * self.D * (dx2 + dy2)) + #self.dt = dx2 * dy2 / (self.D * (dx2 + dy2)) # Introduction of a bug on purpose to check integration tests print("dt = {}".format(self.dt)) From 9608bb7db54fd85b5fc8199f5209792da8a9a124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 15:06:43 +0100 Subject: [PATCH 10/12] Refactor integration test to avoid redundant loop computations --- tests/integration/test_diffusion2d.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/integration/test_diffusion2d.py b/tests/integration/test_diffusion2d.py index 477143a..6130fec 100644 --- a/tests/integration/test_diffusion2d.py +++ b/tests/integration/test_diffusion2d.py @@ -56,12 +56,13 @@ def test_set_initial_condition(): ny = int (h / dy) expected_u = T_cold * np.ones((nx, ny)) + r = 2 + cx = 5 + cy = 5 + r2 = r ** 2 + for i in range(nx): for j in range(ny): - r = 2 - cx = 5 - cy = 5 - r2 = r ** 2 p2 = (i * dx - cx) ** 2 + (j * dy - cy) ** 2 if p2 < r2: expected_u[i, j] = T_hot From 98d749a6a56fcbb59cc4f9d0c9b78811a95079ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 15:33:42 +0100 Subject: [PATCH 11/12] Add test coverage report PDF --- coverage-report.pdf | Bin 0 -> 106012 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 coverage-report.pdf diff --git a/coverage-report.pdf b/coverage-report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8b803a8d738eb640364b61066aff830df327899b GIT binary patch literal 106012 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 literal 0 HcmV?d00001 From 5b7a912c40862844892e056c5684ded00752dbdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=ADa=20Agull=C3=B3=20Mart=C3=AD?= Date: Sat, 17 Jan 2026 15:44:22 +0100 Subject: [PATCH 12/12] Add tox configuration and requirements file for test automation --- requirements.txt | 5 +++++ tox.toml | 8 ++++++++ 2 files changed, 13 insertions(+) create mode 100644 requirements.txt create mode 100644 tox.toml diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..22ad198 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +numpy +matplotlib +pytest +coverage +tox>=4 \ No newline at end of file diff --git a/tox.toml b/tox.toml new file mode 100644 index 0000000..d2b0bb1 --- /dev/null +++ b/tox.toml @@ -0,0 +1,8 @@ +requires = ["tox>=4"] +env_list = ["py"] + +[testenv] +description = "Runs tests automatically" +deps = ["-rrequirements.txt"] +setenv = {PYTHONPATH = "{toxindir}"} +commands = [["pytest", "tests", "-v"]] \ No newline at end of file