From 55f44c22945474205d1712d7a79b2d20dd130e8e Mon Sep 17 00:00:00 2001 From: Zhang Rongchuan Date: Tue, 20 Jan 2026 18:06:29 -0800 Subject: [PATCH] Add unit/integration tests, coverage report, and tox config --- coverage-report.pdf | Bin 0 -> 54327 bytes requirements.txt | 6 ++ ...st_diffusion2d.cpython-38-pytest-8.3.5.pyc | Bin 0 -> 2704 bytes tests/integration/test_diffusion2d.py | 49 +++++++++++++++- ...on2d_functions.cpython-38-pytest-8.3.5.pyc | Bin 0 -> 6933 bytes tests/unit/test_diffusion2d_functions.py | 53 +++++++++++++++++- tox.toml | 7 +++ 7 files changed, 111 insertions(+), 4 deletions(-) create mode 100644 coverage-report.pdf create mode 100644 requirements.txt create mode 100644 tests/integration/__pycache__/test_diffusion2d.cpython-38-pytest-8.3.5.pyc create mode 100644 tests/unit/__pycache__/test_diffusion2d_functions.cpython-38-pytest-8.3.5.pyc create mode 100644 tox.toml diff --git a/coverage-report.pdf b/coverage-report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..22ccb57e792a806c917dd8cbf8b544cc7d40557f GIT binary patch literal 54327 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 literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e9479e1 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +numpy +matplotlib +pytest +coverage +tox + diff --git a/tests/integration/__pycache__/test_diffusion2d.cpython-38-pytest-8.3.5.pyc b/tests/integration/__pycache__/test_diffusion2d.cpython-38-pytest-8.3.5.pyc new file mode 100644 index 0000000000000000000000000000000000000000..44eec071f80d94b12c5c5a69f67bef1c880edfbc GIT binary patch literal 2704 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