diff --git a/gpfit/tests/artifacts/isma_test_surface.png b/gpfit/tests/artifacts/isma_test_surface.png deleted file mode 100644 index 8f4ddc2..0000000 Binary files a/gpfit/tests/artifacts/isma_test_surface.png and /dev/null differ diff --git a/gpfit/tests/artifacts/ma_test.png b/gpfit/tests/artifacts/ma_test.png deleted file mode 100644 index 740e194..0000000 Binary files a/gpfit/tests/artifacts/ma_test.png and /dev/null differ diff --git a/gpfit/tests/artifacts/fit.pkl b/gpfit/tests/baseline/fit.pkl similarity index 100% rename from gpfit/tests/artifacts/fit.pkl rename to gpfit/tests/baseline/fit.pkl diff --git a/gpfit/tests/artifacts/fit.txt b/gpfit/tests/baseline/fit.txt similarity index 100% rename from gpfit/tests/artifacts/fit.txt rename to gpfit/tests/baseline/fit.txt diff --git a/gpfit/tests/artifacts/isma_test.png b/gpfit/tests/baseline/isma_1d.png similarity index 99% rename from gpfit/tests/artifacts/isma_test.png rename to gpfit/tests/baseline/isma_1d.png index 202c553..db9bfc1 100644 Binary files a/gpfit/tests/artifacts/isma_test.png and b/gpfit/tests/baseline/isma_1d.png differ diff --git a/gpfit/tests/artifacts/isma_test_slices.png b/gpfit/tests/baseline/isma_2d_slices.png similarity index 99% rename from gpfit/tests/artifacts/isma_test_slices.png rename to gpfit/tests/baseline/isma_2d_slices.png index 55832c9..e004d4d 100644 Binary files a/gpfit/tests/artifacts/isma_test_slices.png and b/gpfit/tests/baseline/isma_2d_slices.png differ diff --git a/gpfit/tests/baseline/isma_2d_surface.png b/gpfit/tests/baseline/isma_2d_surface.png new file mode 100644 index 0000000..922ad24 Binary files /dev/null and b/gpfit/tests/baseline/isma_2d_surface.png differ diff --git a/gpfit/tests/baseline/ma_1d.png b/gpfit/tests/baseline/ma_1d.png new file mode 100644 index 0000000..b4c825c Binary files /dev/null and b/gpfit/tests/baseline/ma_1d.png differ diff --git a/gpfit/tests/artifacts/ma_test_slices.png b/gpfit/tests/baseline/ma_2d_slices.png similarity index 99% rename from gpfit/tests/artifacts/ma_test_slices.png rename to gpfit/tests/baseline/ma_2d_slices.png index ba18f69..4eca90f 100644 Binary files a/gpfit/tests/artifacts/ma_test_slices.png and b/gpfit/tests/baseline/ma_2d_slices.png differ diff --git a/gpfit/tests/artifacts/ma_test_surface.png b/gpfit/tests/baseline/ma_2d_surface.png similarity index 99% rename from gpfit/tests/artifacts/ma_test_surface.png rename to gpfit/tests/baseline/ma_2d_surface.png index c9db3d6..a3f5c6c 100644 Binary files a/gpfit/tests/artifacts/ma_test_surface.png and b/gpfit/tests/baseline/ma_2d_surface.png differ diff --git a/gpfit/tests/artifacts/sma_test.png b/gpfit/tests/baseline/sma_1d.png similarity index 99% rename from gpfit/tests/artifacts/sma_test.png rename to gpfit/tests/baseline/sma_1d.png index 3e494e3..cee730b 100644 Binary files a/gpfit/tests/artifacts/sma_test.png and b/gpfit/tests/baseline/sma_1d.png differ diff --git a/gpfit/tests/artifacts/sma_test_slices.png b/gpfit/tests/baseline/sma_2d_slices.png similarity index 99% rename from gpfit/tests/artifacts/sma_test_slices.png rename to gpfit/tests/baseline/sma_2d_slices.png index b4ea365..cec78da 100644 Binary files a/gpfit/tests/artifacts/sma_test_slices.png and b/gpfit/tests/baseline/sma_2d_slices.png differ diff --git a/gpfit/tests/artifacts/sma_test_surface.png b/gpfit/tests/baseline/sma_2d_surface.png similarity index 99% rename from gpfit/tests/artifacts/sma_test_surface.png rename to gpfit/tests/baseline/sma_2d_surface.png index bbebf92..ff68468 100644 Binary files a/gpfit/tests/artifacts/sma_test_surface.png and b/gpfit/tests/baseline/sma_2d_surface.png differ diff --git a/gpfit/tests/t_plot_fit.py b/gpfit/tests/t_plot_fit.py index fd1fa5d..8801b0e 100644 --- a/gpfit/tests/t_plot_fit.py +++ b/gpfit/tests/t_plot_fit.py @@ -1,10 +1,10 @@ "unit tests for plot fit methods" -import unittest +import pytest import numpy as np from gpfit.fit import MaxAffine, SoftmaxAffine, ImplicitSoftmaxAffine -class TestPlot(unittest.TestCase): +class TestPlot: "Unit tests for plot methods" N = 51 @@ -14,23 +14,26 @@ class TestPlot(unittest.TestCase): y = np.log(w) K = 2 + @pytest.mark.mpl_image_compare(filename='ma_1d.png') def test_max_affine(self): f = MaxAffine(self.x, self.y, self.K) fig, _ = f.plot() - fig.savefig("artifacts/ma_test.png") + return fig + @pytest.mark.mpl_image_compare(filename='sma_1d.png') def test_softmax_affine(self): f = SoftmaxAffine(self.x, self.y, self.K) fig, _ = f.plot() - fig.savefig("artifacts/sma_test.png") + return fig + @pytest.mark.mpl_image_compare(filename='isma_1d.png') def test_implicit_softmax_affine(self): f = ImplicitSoftmaxAffine(self.x, self.y, self.K) fig, _ = f.plot() - fig.savefig("artifacts/isma_test.png") + return fig -class TestPlotSurface(unittest.TestCase): +class TestPlotSurface: "Unit tests for plot_surface methods" rng = np.random.RandomState(33404) @@ -42,23 +45,26 @@ class TestPlotSurface(unittest.TestCase): y = np.log(P) K = 3 + @pytest.mark.mpl_image_compare(filename='ma_2d_surface.png') def test_max_affine(self): f = MaxAffine(self.x, self.y, self.K) fig, _ = f.plot_surface(azim=135) - fig.savefig("artifacts/ma_test_surface.png") + return fig + @pytest.mark.mpl_image_compare(filename='sma_2d_surface.png') def test_softmax_affine(self): f = SoftmaxAffine(self.x, self.y, self.K) fig, _ = f.plot_surface(azim=135) - fig.savefig("artifacts/sma_test_surface.png") + return fig + @pytest.mark.mpl_image_compare(filename='isma_2d_surface.png') def test_implicit_softmax_affine(self): f = ImplicitSoftmaxAffine(self.x, self.y, self.K) fig, _ = f.plot_surface(azim=135) - fig.savefig("artifacts/isma_test_surface.png") + return fig -class TestPlotSlices(unittest.TestCase): +class TestPlotSlices: "Unit tests for plot_slices method" Vdd = np.linspace(1, 2, 10) @@ -71,33 +77,26 @@ class TestPlotSlices(unittest.TestCase): y = np.log(P) K = 3 + @pytest.mark.mpl_image_compare(filename='ma_2d_slices.png') def test_max_affine(self): f = MaxAffine(self.x, self.y, self.K) fig, _ = f.plot_slices() - fig.savefig("artifacts/ma_test_slices.png") + return fig + @pytest.mark.mpl_image_compare(filename='sma_2d_slices.png') def test_softmax_affine(self): f = SoftmaxAffine(self.x, self.y, self.K) fig, _ = f.plot_slices() - fig.savefig("artifacts/sma_test_slices.png") + return fig + @pytest.mark.mpl_image_compare(filename='isma_2d_slices.png') def test_implicit_softmax_affine(self): f = ImplicitSoftmaxAffine(self.x, self.y, self.K) fig, _ = f.plot_slices() - fig.savefig("artifacts/isma_test_slices.png") - + return fig TESTS = [ TestPlot, TestPlotSurface, TestPlotSlices, ] - -if __name__ == '__main__': - SUITE = unittest.TestSuite() - LOADER = unittest.TestLoader() - - for t in TESTS: - SUITE.addTests(LOADER.loadTestsFromTestCase(t)) - - unittest.TextTestRunner(verbosity=2).run(SUITE)