Add Unit Tests
April 22, 2025 ยท View on GitHub
Philosophy
Every new public function or class must have at least one test for accuracy and one edge case or failure mode.
Location
particula//tests/test_
Template for Functions
"""Docstring for the test module."""
import numpy as np # if needed
import pytest
from particula.<area> import <symbol>
def test_<symbol>_accuracy():
"""Docstring for the test."""
result = <symbol>(<valid_args>)
assert np.isclose(result, <expected>)
@pytest.mark.parametrize("bad_input", [...])
def test_<symbol>_bad_inputs(bad_input):
"""Docstring for the test."""
with pytest.raises(ValueError):
<symbol>(bad_input)
Template for Classes
"""Docstring for the test module."""
import numpy as np # if needed
import pytest
from particula.<area> import <ClassName>
def test_<ClassName>_accuracy():
"""Docstring for the test."""
obj = <ClassName>(<valid_args>)
result = obj.<method_name>(<valid_args>)
assert np.isclose(result, <expected>)
@pytest.mark.parametrize("bad_input", [...])
def test_<ClassName>_bad_inputs(bad_input):
"""Docstring for the test."""
with pytest.raises(ValueError):
<ClassName>(bad_input)
Run locally
Execute pytest -q before opening the pull request; all tests must be green.