diff --git a/.gitignore b/.gitignore index bd56f086..705e79b5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,4 @@ _build regional_mom6/_version.py regional_mom6.egg-info .pytest_cache -env +.env diff --git a/tests/test_grid_generation.py b/tests/test_grid_generation.py new file mode 100644 index 00000000..742865ba --- /dev/null +++ b/tests/test_grid_generation.py @@ -0,0 +1,32 @@ +import numpy as np +import pytest +from regional_mom6 import angle_between +from regional_mom6 import quad_area + + +@pytest.mark.parametrize( + ("v1", "v2", "v3", "true_angle"), + [ + ([1, 0, 0], [0, 1, 0], [0, 0, 1], np.pi / 2), + ([1, 0, 0], [1, 1, 0], [0, 1, 1], np.pi / 4), + ], +) +def test_angle_between(v1, v2, v3, true_angle): + assert np.isclose(angle_between(v1, v2, v3), true_angle) + + +# create a lat-lon mesh that covers 1/4 of the North Hemisphere +lon, lat = np.meshgrid(np.linspace(0, 90, 5), np.linspace(0, 90, 5)) + + +@pytest.mark.parametrize( + ("lat", "lon", "true_area"), + [ + (lat, lon, 0.5 * np.pi), + ], +) +def test_quad_area(lat, lon, true_area): + assert np.isclose(np.sum(quad_area(lat, lon)), true_area) + + +# what to return when pytest passes diff --git a/tests/test_trivial.py b/tests/test_trivial.py deleted file mode 100644 index 7661dbea..00000000 --- a/tests/test_trivial.py +++ /dev/null @@ -1,15 +0,0 @@ -import numpy as np -import pytest -from regional_mom6 import angle_between - - -# placeholder trivial test test -@pytest.mark.parametrize( - ("v1", "v2", "v3", "true_angle"), - [ - ([1, 0, 0], [0, 1, 0], [0, 0, 1], np.pi / 2), - ([1, 0, 0], [1, 1, 0], [0, 1, 1], np.pi / 4), - ], -) -def test_angle_between(v1, v2, v3, true_angle): - assert np.isclose(angle_between(v1, v2, v3), true_angle)