From 55924b5f852181a8180aca1f5fde6295a765649b Mon Sep 17 00:00:00 2001 From: Vedant Puranik Date: Wed, 15 Jan 2025 16:15:34 +0100 Subject: [PATCH 1/6] added assertions for step 2 --- diffusion2d.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/diffusion2d.py b/diffusion2d.py index 51a07f2d..64181edc 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 float" + assert isinstance(h, float), "h must be float" + assert isinstance(dx, float), "dx must be float" + assert isinstance(dy, float), "dy must be float" self.w = w self.h = h self.dx = dx @@ -45,7 +49,10 @@ 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 float" + assert isinstance(T_cold, float), "T_cold must be float" + assert isinstance(T_hot, float), "T_hot must be float" self.D = d self.T_cold = T_cold self.T_hot = T_hot From 12ea7d43cd5f5f2d64435592dfe678a2d8b1b25a Mon Sep 17 00:00:00 2001 From: Vedant Puranik Date: Sat, 18 Jan 2025 13:21:48 +0100 Subject: [PATCH 2/6] completed step 3 --- README.md | 155 +++++++++++++++++++++++ __init__.py | 0 tests/integration/__init__.py | 0 tests/unit/__init__.py | 0 tests/unit/test_diffusion2d_functions.py | 35 ++++- 5 files changed, 189 insertions(+), 1 deletion(-) create mode 100644 __init__.py create mode 100644 tests/integration/__init__.py create mode 100644 tests/unit/__init__.py diff --git a/README.md b/README.md index da66993c..8c264ed5 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,163 @@ Please follow the instructions in [python_testing_exercise.md](https://github.co ### pytest log +I am working on a Windows machine, so initially pytest was not able to detect the class correctly and giving the following output: + +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> pytest .\tests\unit\test_diffusion2d_functions.py +======================================================================== test session starts ======================================================================== +platform win32 -- Python 3.12.0, pytest-8.3.3, pluggy-1.5.0 +rootdir: C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425 +collected 0 items / 1 error + +============================================================================== ERRORS =============================================================================== +_____________________________________________________ ERROR collecting tests/unit/test_diffusion2d_functions.py _____________________________________________________ +ImportError while importing test module 'C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425\tests\unit\test_diffusion2d_functions.py'. +Hint: make sure your test modules/packages have valid Python names. +Traceback: +C:\Program Files\Python312\Lib\importlib\__init__.py:90: in import_module + return _bootstrap._gcd_import(name[level:], package, level) +tests\unit\test_diffusion2d_functions.py:5: in + from diffusion2d import SolveDiffusion2D +E ModuleNotFoundError: No module named 'diffusion2d' +====================================================================== short test summary info ====================================================================== +ERROR tests/unit/test_diffusion2d_functions.py +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +========================================================================= 1 error in 0.16s ========================================================================== +``` + +**Solution**: Introduced `__init__.py` files in all directories and ran pytest as a module using: `python -m pytest` + + +#### Changing `self.nx = int(w / dx)` to `self.nx = int(h / dx)` in initialize_domain + +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> python -m pytest .\tests\unit\test_diffusion2d_functions.py +========================================================================= test session starts ========================================================================= +platform win32 -- Python 3.12.0, pytest-8.3.3, pluggy-1.5.0 +rootdir: C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425 +collected 3 items + +tests\unit\test_diffusion2d_functions.py F.. [100%] + +============================================================================== FAILURES =============================================================================== +_______________________________________________________________________ test_initialize_domain ________________________________________________________________________ + + def test_initialize_domain(): + """ + Check function SolveDiffusion2D.initialize_domain + """ + solver = SolveDiffusion2D() + solver.initialize_domain(w=20.,h=30.,dx=0.2,dy=0.2) + +> assert solver.nx == 100 +E assert 150 == 100 +E + where 150 = .nx + +tests\unit\test_diffusion2d_functions.py:15: AssertionError +========================================================================== warnings summary =========================================================================== +..\..\..\..\..\..\..\..\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37 + C:\Users\Vedant\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). + EPOCH = datetime.datetime.utcfromtimestamp(0) + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +======================================================================= short test summary info ======================================================================= +FAILED tests/unit/test_diffusion2d_functions.py::test_initialize_domain - assert 150 == 100 +=============================================================== 1 failed, 2 passed, 1 warning in 0.94s ================================================================ +``` + + +#### Changing to `dx2, dy2 = self.dx * self.dy, self.dx * self.dy` in initialize_physical_parameters + +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> python -m pytest .\tests\unit\test_diffusion2d_functions.py +========================================================================= test session starts ========================================================================= +platform win32 -- Python 3.12.0, pytest-8.3.3, pluggy-1.5.0 +rootdir: C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425 +collected 3 items + +tests\unit\test_diffusion2d_functions.py .F. [100%] + +============================================================================== FAILURES =============================================================================== +_________________________________________________________________ test_initialize_physical_parameters _________________________________________________________________ + + def test_initialize_physical_parameters(): + """ + Checks function SolveDiffusion2D.initialize_domain + """ + solver = SolveDiffusion2D() + solver.dx = 0.2 + solver.dy = 0.4 + solver.initialize_physical_parameters(d=2.,T_cold=200.,T_hot=500.) +> assert round(solver.dt, 3) == 0.008 +E assert 0.01 == 0.008 +E + where 0.01 = round(0.010000000000000002, 3) +E + where 0.010000000000000002 = .dt + +tests\unit\test_diffusion2d_functions.py:27: AssertionError +------------------------------------------------------------------------ Captured stdout call ------------------------------------------------------------------------- +dt = 0.010000000000000002 +========================================================================== warnings summary =========================================================================== +..\..\..\..\..\..\..\..\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37 + C:\Users\Vedant\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). + EPOCH = datetime.datetime.utcfromtimestamp(0) + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +======================================================================= short test summary info ======================================================================= +FAILED tests/unit/test_diffusion2d_functions.py::test_initialize_physical_parameters - assert 0.01 == 0.008 +=============================================================== 1 failed, 2 passed, 1 warning in 0.97s ================================================================ +``` + +#### Changing to `u = self.T_hot * np.ones((self.nx, self.ny))` in set_initial_condition + +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> python -m pytest .\tests\unit\test_diffusion2d_functions.py +========================================================================= test session starts ========================================================================= +platform win32 -- Python 3.12.0, pytest-8.3.3, pluggy-1.5.0 +rootdir: C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425 +collected 3 items + +tests\unit\test_diffusion2d_functions.py ..F [100%] + +============================================================================== FAILURES =============================================================================== +_____________________________________________________________________ test_set_initial_condition ______________________________________________________________________ + + def test_set_initial_condition(): + """ + Checks function SolveDiffusion2D.get_initial_function + """ + solver = SolveDiffusion2D() + solver.nx = 100 + solver.ny = 150 + solver.T_cold = 100. + solver.dx = 0.2 + solver.dy = 0.2 + solver.T_hot = 400. + u = solver.set_initial_condition() + + assert u.shape[0] == solver.nx # 100 + assert u.shape[1] == solver.ny # 150 + +> assert u[0, 0] == solver.T_cold +E assert 400.0 == 100.0 +E + where 100.0 = .T_cold + +tests\unit\test_diffusion2d_functions.py:46: AssertionError +========================================================================== warnings summary =========================================================================== +..\..\..\..\..\..\..\..\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37 + C:\Users\Vedant\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). + EPOCH = datetime.datetime.utcfromtimestamp(0) + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +======================================================================= short test summary info ======================================================================= +FAILED tests/unit/test_diffusion2d_functions.py::test_set_initial_condition - assert 400.0 == 100.0 +=============================================================== 1 failed, 2 passed, 1 warning in 0.90s ================================================================ +``` + ### unittest log + + ## Citing The code used in this exercise is based on [Chapter 7 of the book "Learning Scientific Programming with Python"](https://scipython.com/book/chapter-7-matplotlib/examples/the-two-dimensional-diffusion-equation/). diff --git a/__init__.py b/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/unit/test_diffusion2d_functions.py b/tests/unit/test_diffusion2d_functions.py index c4277ffd..43952899 100644 --- a/tests/unit/test_diffusion2d_functions.py +++ b/tests/unit/test_diffusion2d_functions.py @@ -3,13 +3,18 @@ """ from diffusion2d import SolveDiffusion2D - +import numpy as np def test_initialize_domain(): """ Check function SolveDiffusion2D.initialize_domain """ solver = SolveDiffusion2D() + solver.initialize_domain(w=20.,h=30.,dx=0.2,dy=0.4) + + # Check that nx and nx are correctly computed based on w, dx and h, dy resp. + assert solver.nx == 100 + assert solver.ny == 75 def test_initialize_physical_parameters(): @@ -17,6 +22,12 @@ def test_initialize_physical_parameters(): Checks function SolveDiffusion2D.initialize_domain """ solver = SolveDiffusion2D() + solver.dx = 0.2 + solver.dy = 0.4 + solver.initialize_physical_parameters(d=2.,T_cold=200.,T_hot=500.) + + # Check that value of dt is correctly computed based on input settings + assert round(solver.dt, 3) == 0.008 def test_set_initial_condition(): @@ -24,3 +35,25 @@ def test_set_initial_condition(): Checks function SolveDiffusion2D.get_initial_function """ solver = SolveDiffusion2D() + solver.nx = 100 + solver.ny = 150 + solver.T_cold = 100. + solver.dx = 0.2 + solver.dy = 0.2 + solver.T_hot = 400. + u = solver.set_initial_condition() + + # Check shape is appropriate + assert u.shape[0] == solver.nx + assert u.shape[1] == solver.ny + + # Check that corners are cold + assert u[0, 0] == solver.T_cold + assert u[0, -1] == solver.T_cold + assert u[-1, 0] == solver.T_cold + assert u[-1, -1] == solver.T_cold + + # checking that values in the circle center are hot cannot be tested as it depends on the values + # of r, cx, cy. These values are not parameters of the class and hardcoding them here would bind + # the test to the settings of the actual function thus losing generality. This would have been + # testable if there was a choice to set these values by the user. \ No newline at end of file From 0002b83b537a936e22f6549b631b7abc05ca909a Mon Sep 17 00:00:00 2001 From: Vedant Puranik Date: Sat, 18 Jan 2025 15:28:32 +0100 Subject: [PATCH 3/6] completed step 4 --- README.md | 61 +++++++++++++ tests/unit/test_diffusion2d_functions.py | 110 ++++++++++++----------- 2 files changed, 117 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index 8c264ed5..5a026c44 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,68 @@ FAILED tests/unit/test_diffusion2d_functions.py::test_set_initial_condition - as ### unittest log +#### Changing `self.nx = int(w / dx)` to `self.nx = int(h / dx)` in initialize_domain + +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> python -m unittest .\tests\unit\test_diffusion2d_functions.py +Fdt = 0.008000000000000002 +.. +====================================================================== +FAIL: test_initialize_domain (tests.unit.test_diffusion2d_functions.TestDiffusion2D.test_initialize_domain) +Check function SolveDiffusion2D.initialize_domain +---------------------------------------------------------------------- +Traceback (most recent call last): + File "C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425\tests\unit\test_diffusion2d_functions.py", line 21, in test_initialize_domain + self.assertEqual(self.solver.nx, 100) +AssertionError: 150 != 100 + +---------------------------------------------------------------------- +Ran 3 tests in 0.006s + +FAILED (failures=1) +``` + +#### Changing to `dx2, dy2 = self.dx * self.dy, self.dx * self.dy` in initialize_physical_parameters +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> python -m unittest .\tests\unit\test_diffusion2d_functions.py +.dt = 0.010000000000000002 +F. +====================================================================== +FAIL: test_initialize_physical_parameters (tests.unit.test_diffusion2d_functions.TestDiffusion2D.test_initialize_physical_parameters) +Checks function SolveDiffusion2D.initialize_domain +---------------------------------------------------------------------- +Traceback (most recent call last): + File "C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425\tests\unit\test_diffusion2d_functions.py", line 34, in test_initialize_physical_parameters + self.assertAlmostEqual(self.solver.dt, 0.008) +AssertionError: 0.010000000000000002 != 0.008 within 7 places (0.0020000000000000018 difference) + +---------------------------------------------------------------------- +Ran 3 tests in 0.006s + +FAILED (failures=1) +``` + +#### Changing to `u = self.T_hot * np.ones((self.nx, self.ny))` in set_initial_condition + +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> python -m unittest .\tests\unit\test_diffusion2d_functions.py +.dt = 0.008000000000000002 +.F +====================================================================== +FAIL: test_set_initial_condition (tests.unit.test_diffusion2d_functions.TestDiffusion2D.test_set_initial_condition) +Checks function SolveDiffusion2D.get_initial_function +---------------------------------------------------------------------- +Traceback (most recent call last): + File "C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425\tests\unit\test_diffusion2d_functions.py", line 52, in test_set_initial_condition + self.assertEqual(u[0, 0], self.solver.T_cold) +AssertionError: 400.0 != 100.0 + +---------------------------------------------------------------------- +Ran 3 tests in 0.005s + +FAILED (failures=1) +``` ## Citing diff --git a/tests/unit/test_diffusion2d_functions.py b/tests/unit/test_diffusion2d_functions.py index 43952899..744cfe7c 100644 --- a/tests/unit/test_diffusion2d_functions.py +++ b/tests/unit/test_diffusion2d_functions.py @@ -3,57 +3,59 @@ """ from diffusion2d import SolveDiffusion2D -import numpy as np - -def test_initialize_domain(): - """ - Check function SolveDiffusion2D.initialize_domain - """ - solver = SolveDiffusion2D() - solver.initialize_domain(w=20.,h=30.,dx=0.2,dy=0.4) - - # Check that nx and nx are correctly computed based on w, dx and h, dy resp. - assert solver.nx == 100 - assert solver.ny == 75 - - -def test_initialize_physical_parameters(): - """ - Checks function SolveDiffusion2D.initialize_domain - """ - solver = SolveDiffusion2D() - solver.dx = 0.2 - solver.dy = 0.4 - solver.initialize_physical_parameters(d=2.,T_cold=200.,T_hot=500.) - - # Check that value of dt is correctly computed based on input settings - assert round(solver.dt, 3) == 0.008 - - -def test_set_initial_condition(): - """ - Checks function SolveDiffusion2D.get_initial_function - """ - solver = SolveDiffusion2D() - solver.nx = 100 - solver.ny = 150 - solver.T_cold = 100. - solver.dx = 0.2 - solver.dy = 0.2 - solver.T_hot = 400. - u = solver.set_initial_condition() - - # Check shape is appropriate - assert u.shape[0] == solver.nx - assert u.shape[1] == solver.ny - - # Check that corners are cold - assert u[0, 0] == solver.T_cold - assert u[0, -1] == solver.T_cold - assert u[-1, 0] == solver.T_cold - assert u[-1, -1] == solver.T_cold - - # checking that values in the circle center are hot cannot be tested as it depends on the values - # of r, cx, cy. These values are not parameters of the class and hardcoding them here would bind - # the test to the settings of the actual function thus losing generality. This would have been - # testable if there was a choice to set these values by the user. \ No newline at end of file +import unittest + +class TestDiffusion2D(unittest.TestCase): + + def setUp(self): + self.solver = SolveDiffusion2D() + + + def test_initialize_domain(self): + """ + Check function SolveDiffusion2D.initialize_domain + """ + self.solver.initialize_domain(w=20.,h=30.,dx=0.2,dy=0.4) + + # Check that nx and nx are correctly computed based on w, dx and h, dy resp. + self.assertEqual(self.solver.nx, 100) + self.assertEqual(self.solver.ny, 75) + + + def test_initialize_physical_parameters(self): + """ + Checks function SolveDiffusion2D.initialize_domain + """ + self.solver.dx = 0.2 + self.solver.dy = 0.4 + self.solver.initialize_physical_parameters(d=2.,T_cold=200.,T_hot=500.) + + # Check that value of dt is correctly computed based on input settings + self.assertAlmostEqual(self.solver.dt, 0.008) + + + def test_set_initial_condition(self): + """ + Checks function SolveDiffusion2D.get_initial_function + """ + self.solver.nx = 100 + self.solver.ny = 150 + self.solver.T_cold = 100. + self.solver.dx = 0.2 + self.solver.dy = 0.2 + self.solver.T_hot = 400. + u = self.solver.set_initial_condition() + + # Check shape is appropriate + self.assertEqual(u.shape, (self.solver.nx, self.solver.ny)) + + # Check that corners are cold + self.assertEqual(u[0, 0], self.solver.T_cold) + self.assertEqual(u[0, -1], self.solver.T_cold) + self.assertEqual(u[-1, 0], self.solver.T_cold) + self.assertEqual(u[-1, -1], self.solver.T_cold) + + # checking that values in the circle center are hot cannot be tested as it depends on the values + # of r, cx, cy. These values are not parameters of the class and hardcoding them here would bind + # the test to the settings of the actual function thus losing generality. This would have been + # testable if there was a choice to set these values by the user. \ No newline at end of file From 3388b1816999c2cbc331bf2af139254830afb2ab Mon Sep 17 00:00:00 2001 From: Vedant Puranik Date: Sat, 18 Jan 2025 16:37:08 +0100 Subject: [PATCH 4/6] completed step 5 --- README.md | 216 ++++++++++++++++++++++++++ tests/integration/test_diffusion2d.py | 28 +++- 2 files changed, 243 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a026c44..d3190f63 100644 --- a/README.md +++ b/README.md @@ -224,6 +224,222 @@ Ran 3 tests in 0.005s FAILED (failures=1) ``` +### Integration test log + +#### Changing `self.nx = int(w / dx)` to `self.nx = int(h / dx)` in initialize_domain + +This only affects the second test as the first one is independent of the values of nx and ny. + +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> python -m pytest .\tests\integration\test_diffusion2d.py +========================================================================= test session starts ========================================================================= +platform win32 -- Python 3.12.0, pytest-8.3.3, pluggy-1.5.0 +rootdir: C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425 +collected 2 items + +tests\integration\test_diffusion2d.py .F [100%] + +============================================================================== FAILURES =============================================================================== +_____________________________________________________________________ test_set_initial_condition ______________________________________________________________________ + + def test_set_initial_condition(): + """ + Checks function SolveDiffusion2D.get_initial_function + """ + solver = SolveDiffusion2D() + w = 3. + h = 2.5 + dx = 1. + dy = 0.5 + d = 2. + T_cold = 200. + T_hot = 500. + solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) + solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) + u = solver.set_initial_condition() + u_expected = np.array([ + [200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.] + ]) +> np.testing.assert_array_equal(u, u_expected, "Expected array:\n{}\nGot:\n{}\n".format(u_expected, u)) + +tests\integration\test_diffusion2d.py:45: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +args = (, array([[200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.]]), array([[200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.]])) +kwds = {'err_msg': 'Expected array:\n[[200. 200. 200. 200. 200.]\n [200. 200. 200. 200. 200.]\n [200. 200. 200. 200. 200.]]\n.... 200. 200. 200.]\n [200. 200. 200. 200. 200.]]\n', 'header': 'Arrays are not equal', 'strict': False, 'verbose': True} + + @wraps(func) + def inner(*args, **kwds): + with self._recreate_cm(): +> return func(*args, **kwds) +E AssertionError: +E Arrays are not equal +E Expected array: +E [[200. 200. 200. 200. 200.] +E [200. 200. 200. 200. 200.] +E [200. 200. 200. 200. 200.]] +E Got: +E [[200. 200. 200. 200. 200.] +E [200. 200. 200. 200. 200.]] +E +E (shapes (2, 5), (3, 5) mismatch) +E x: array([[200., 200., 200., 200., 200.], +E [200., 200., 200., 200., 200.]]) +E y: array([[200., 200., 200., 200., 200.], +E [200., 200., 200., 200., 200.], +E [200., 200., 200., 200., 200.]]) + +C:\Program Files\Python312\Lib\contextlib.py:81: AssertionError +------------------------------------------------------------------------ Captured stdout call ------------------------------------------------------------------------- +dt = 0.05 +========================================================================== warnings summary =========================================================================== +..\..\..\..\..\..\..\..\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37 + C:\Users\Vedant\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). + EPOCH = datetime.datetime.utcfromtimestamp(0) + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +======================================================================= short test summary info ======================================================================= +FAILED tests/integration/test_diffusion2d.py::test_set_initial_condition - AssertionError: +=============================================================== 1 failed, 1 passed, 1 warning in 1.11s ================================================================ +``` + +#### Changing to `dx2, dy2 = self.dx * self.dy, self.dx * self.dy` in initialize_physical_parameters + +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> python -m pytest .\tests\integration\test_diffusion2d.py +========================================================================= test session starts ========================================================================= +platform win32 -- Python 3.12.0, pytest-8.3.3, pluggy-1.5.0 +rootdir: C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425 +collected 2 items + +tests\integration\test_diffusion2d.py F. [100%] + +============================================================================== FAILURES =============================================================================== +_________________________________________________________________ test_initialize_physical_parameters _________________________________________________________________ + + def test_initialize_physical_parameters(): + """ + Checks function SolveDiffusion2D.initialize_domain + """ + solver = SolveDiffusion2D() + w = 20. + h = 30. + dx = 0.2 + dy = 0.4 + d = 2. + T_cold = 200. + T_hot = 500. + solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) + solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) +> assert round(solver.dt, 3) == 0.008 +E assert 0.01 == 0.008 +E + where 0.01 = round(0.010000000000000002, 3) +E + where 0.010000000000000002 = .dt + +tests\integration\test_diffusion2d.py:22: AssertionError +------------------------------------------------------------------------ Captured stdout call ------------------------------------------------------------------------- +dt = 0.010000000000000002 +========================================================================== warnings summary =========================================================================== +..\..\..\..\..\..\..\..\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37 + C:\Users\Vedant\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). + EPOCH = datetime.datetime.utcfromtimestamp(0) + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +======================================================================= short test summary info ======================================================================= +FAILED tests/integration/test_diffusion2d.py::test_initialize_physical_parameters - assert 0.01 == 0.008 +=============================================================== 1 failed, 1 passed, 1 warning in 0.92s ================================================================ +``` + +#### Changing to `u = self.T_hot * np.ones((self.nx, self.ny))` in set_initial_condition + +```sh +PS C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425> python -m pytest .\tests\integration\test_diffusion2d.py +========================================================================= test session starts ========================================================================= +platform win32 -- Python 3.12.0, pytest-8.3.3, pluggy-1.5.0 +rootdir: C:\Users\Vedant\Documents\Uni\Subjects\Winter2425\SimTech\Exercises\Exercise7\testing-python-exercise-wt2425 +collected 2 items + +tests\integration\test_diffusion2d.py .F [100%] + +============================================================================== FAILURES =============================================================================== +_____________________________________________________________________ test_set_initial_condition ______________________________________________________________________ + + def test_set_initial_condition(): + """ + Checks function SolveDiffusion2D.get_initial_function + """ + solver = SolveDiffusion2D() + w = 3. + h = 2.5 + dx = 1. + dy = 0.5 + d = 2. + T_cold = 200. + T_hot = 500. + solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) + solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) + u = solver.set_initial_condition() + u_expected = np.array([ + [200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.] + ]) +> np.testing.assert_array_equal(u, u_expected, "Expected array:\n{}\nGot:\n{}\n".format(u_expected, u)) + +tests\integration\test_diffusion2d.py:45: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +args = (, array([[500., 500., 500., 500., 500.], + [500., 500., 500., 500., 500.], + [500., 5... array([[200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.]])) +kwds = {'err_msg': 'Expected array:\n[[200. 200. 200. 200. 200.]\n [200. 200. 200. 200. 200.]\n [200. 200. 200. 200. 200.]]\n.... 500. 500. 500.]\n [500. 500. 500. 500. 500.]]\n', 'header': 'Arrays are not equal', 'strict': False, 'verbose': True} + + @wraps(func) + def inner(*args, **kwds): + with self._recreate_cm(): +> return func(*args, **kwds) +E AssertionError: +E Arrays are not equal +E Expected array: +E [[200. 200. 200. 200. 200.] +E [200. 200. 200. 200. 200.] +E [200. 200. 200. 200. 200.]] +E Got: +E [[500. 500. 500. 500. 500.] +E [500. 500. 500. 500. 500.] +E [500. 500. 500. 500. 500.]] +E +E Mismatched elements: 15 / 15 (100%) +E Max absolute difference: 300. +E Max relative difference: 1.5 +E x: array([[500., 500., 500., 500., 500.], +E [500., 500., 500., 500., 500.], +E [500., 500., 500., 500., 500.]]) +E y: array([[200., 200., 200., 200., 200.], +E [200., 200., 200., 200., 200.], +E [200., 200., 200., 200., 200.]]) + +C:\Program Files\Python312\Lib\contextlib.py:81: AssertionError +------------------------------------------------------------------------ Captured stdout call ------------------------------------------------------------------------- +dt = 0.05 +========================================================================== warnings summary =========================================================================== +..\..\..\..\..\..\..\..\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37 + C:\Users\Vedant\AppData\Roaming\Python\Python312\site-packages\dateutil\tz\tz.py:37: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC). + EPOCH = datetime.datetime.utcfromtimestamp(0) + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +======================================================================= short test summary info ======================================================================= +FAILED tests/integration/test_diffusion2d.py::test_set_initial_condition - AssertionError: +=============================================================== 1 failed, 1 passed, 1 warning in 0.97s ================================================================ +``` + ## Citing The code used in this exercise is based on [Chapter 7 of the book "Learning Scientific Programming with Python"](https://scipython.com/book/chapter-7-matplotlib/examples/the-two-dimensional-diffusion-equation/). diff --git a/tests/integration/test_diffusion2d.py b/tests/integration/test_diffusion2d.py index fd026b40..bd583a92 100644 --- a/tests/integration/test_diffusion2d.py +++ b/tests/integration/test_diffusion2d.py @@ -3,13 +3,23 @@ """ from diffusion2d import SolveDiffusion2D - +import numpy as np def test_initialize_physical_parameters(): """ Checks function SolveDiffusion2D.initialize_domain """ solver = SolveDiffusion2D() + w = 20. + h = 30. + dx = 0.2 + dy = 0.4 + d = 2. + T_cold = 200. + T_hot = 500. + solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) + solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) + assert round(solver.dt, 3) == 0.008 def test_set_initial_condition(): @@ -17,3 +27,19 @@ def test_set_initial_condition(): Checks function SolveDiffusion2D.get_initial_function """ solver = SolveDiffusion2D() + w = 3. + h = 2.5 + dx = 1. + dy = 0.5 + d = 2. + T_cold = 200. + T_hot = 500. + solver.initialize_domain(w=w, h=h, dx=dx, dy=dy) + solver.initialize_physical_parameters(d=d, T_cold=T_cold, T_hot=T_hot) + u = solver.set_initial_condition() + u_expected = np.array([ + [200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.], + [200., 200., 200., 200., 200.] + ]) + np.testing.assert_array_equal(u, u_expected, "Expected array:\n{}\nGot:\n{}\n".format(u_expected, u)) From 421a57da5a826454a468c48b031d392ce44d6234 Mon Sep 17 00:00:00 2001 From: Vedant Puranik Date: Sat, 18 Jan 2025 18:54:57 +0100 Subject: [PATCH 5/6] completed step 6 --- coverage-report.pdf | Bin 0 -> 97863 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..b7e6f2a59c4871f42934dba1e9a0693a981aab2f GIT binary patch literal 97863 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β^20m?N+xuYA6sw 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

(|0(c`Z-DALBk}*q7``Ui4 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 literal 0 HcmV?d00001 From e9725791301ec7ed9dc8b4451230d8e3e561d857 Mon Sep 17 00:00:00 2001 From: Vedant Puranik Date: Sat, 18 Jan 2025 19:06:13 +0100 Subject: [PATCH 6/6] completed step 7 --- requirements.txt | 2 ++ tox.toml | 12 ++++++++++++ tox_output.png | Bin 0 -> 48456 bytes 3 files changed, 14 insertions(+) create mode 100644 requirements.txt create mode 100644 tox.toml create mode 100644 tox_output.png diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..070be7e6 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +numpy>=1.26.1 +matplotlib>=3.8.4 \ No newline at end of file diff --git a/tox.toml b/tox.toml new file mode 100644 index 00000000..9b033fa0 --- /dev/null +++ b/tox.toml @@ -0,0 +1,12 @@ +requires = ["tox>=4"] +env_list = ["pytest", "unittest"] + +[env.pytest] +description = "pytest" +deps = ["pytest", "-r requirements.txt"] +commands = [["python", "-m", "pytest", "tests/integration/test_diffusion2d.py"]] + +[env.unittest] +description = "unittest" +deps = ["-r requirements.txt"] +commands = [["python", "-m", "unittest", "tests/unit/test_diffusion2d_functions.py"]] \ No newline at end of file diff --git a/tox_output.png b/tox_output.png new file mode 100644 index 0000000000000000000000000000000000000000..d43d020a675aa9c60e9151f7e01859ac253add10 GIT binary patch literal 48456 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%0A@kWEd`)L( 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 literal 0 HcmV?d00001