diff --git a/empymod/model.py b/empymod/model.py index 81c0b174..9e313847 100644 --- a/empymod/model.py +++ b/empymod/model.py @@ -238,7 +238,7 @@ def bipole(src, rec, depth, res, freqtime, signal=None, aniso=None, - ``atol``: absolute tolerance (default: 1e-30) - ``nquad``: order of Gaussian quadrature (default: 51) - ``maxint``: maximum number of partial integral intervals - (default: 40) + (default: 100) - ``pts_per_dec``: points per decade; (default: 0) - If 0, no interpolation is used. diff --git a/empymod/scripts/fdesign.py b/empymod/scripts/fdesign.py index 8738c5f3..02067892 100644 --- a/empymod/scripts/fdesign.py +++ b/empymod/scripts/fdesign.py @@ -736,7 +736,7 @@ def _call_qc_transform_pairs(n, ispacing, ishift, fI, fC, r, r_def, reim): # Plot QC fig, axs = plt.subplots(figsize=(9.5, 6), nrows=2, ncols=2, - num="Transform pairs") + num="Transform pairs", clear=True) axs = axs.ravel() plt.subplots_adjust(wspace=.3, hspace=.4) diff --git a/pyproject.toml b/pyproject.toml index df62918c..3a87ecbf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,3 +82,9 @@ per-file-ignores = [ [tool.coverage.run] relative_files = true + +[tool.pytest.ini_options] +minversion = "6.0" +filterwarnings = [ + "ignore:Unknown pytest.mark.mpl_image_compare", +] diff --git a/tests/baseline/test_call_qc_transform_pairs1.png b/tests/baseline/test_call_qc_transform_pairs1.png index 08cff248..a12123ce 100644 Binary files a/tests/baseline/test_call_qc_transform_pairs1.png and b/tests/baseline/test_call_qc_transform_pairs1.png differ diff --git a/tests/baseline/test_call_qc_transform_pairs2.png b/tests/baseline/test_call_qc_transform_pairs2.png index febf43b4..0cc5d184 100644 Binary files a/tests/baseline/test_call_qc_transform_pairs2.png and b/tests/baseline/test_call_qc_transform_pairs2.png differ diff --git a/tests/baseline/test_call_qc_transform_pairs3.png b/tests/baseline/test_call_qc_transform_pairs3.png index e68d9106..9ad41dff 100644 Binary files a/tests/baseline/test_call_qc_transform_pairs3.png and b/tests/baseline/test_call_qc_transform_pairs3.png differ diff --git a/tests/baseline/test_plot_inversion1.png b/tests/baseline/test_plot_inversion1.png index 4f967a08..ef8fab95 100644 Binary files a/tests/baseline/test_plot_inversion1.png and b/tests/baseline/test_plot_inversion1.png differ diff --git a/tests/baseline/test_plot_inversion2.png b/tests/baseline/test_plot_inversion2.png index 7392b86b..28b6de75 100644 Binary files a/tests/baseline/test_plot_inversion2.png and b/tests/baseline/test_plot_inversion2.png differ diff --git a/tests/baseline/test_plot_result1.png b/tests/baseline/test_plot_result1.png index 44514f12..c2d10372 100644 Binary files a/tests/baseline/test_plot_result1.png and b/tests/baseline/test_plot_result1.png differ diff --git a/tests/baseline/test_plot_result2.png b/tests/baseline/test_plot_result2.png index 6627f520..73f8ca61 100644 Binary files a/tests/baseline/test_plot_result2.png and b/tests/baseline/test_plot_result2.png differ diff --git a/tests/baseline/test_plot_result3.png b/tests/baseline/test_plot_result3.png index fffd79f3..3d50684f 100644 Binary files a/tests/baseline/test_plot_result3.png and b/tests/baseline/test_plot_result3.png differ diff --git a/tests/test_fdesign.py b/tests/test_fdesign.py index 970ec036..537d8b7b 100644 --- a/tests/test_fdesign.py +++ b/tests/test_fdesign.py @@ -137,7 +137,7 @@ def test_save_load_filter(tmpdir): @pytest.mark.skipif(not plt, reason="Matplotlib not installed.") class TestFiguresMatplotlib: - @pytest.mark.mpl_image_compare(remove_text=True, tolerance=18) # IMPROVE! + @pytest.mark.mpl_image_compare(remove_text=True) def test_plot_result1(self): switch_off_matplotlib_agg_warning() # Quick run `design` with all verb/plot on, just to check that no @@ -148,6 +148,7 @@ def test_plot_result1(self): # plot_result for min amplitude dat1 = DATA['case1'][()] + plt.close('all') fdesign.plot_result(dat1[1], dat1[2], prntres=True) return plt.gcf() @@ -156,6 +157,7 @@ def test_plot_result2(self): switch_off_matplotlib_agg_warning() # plot_result one shift several spacings dat5 = DATA['case5'][()] + plt.close('all') fdesign.plot_result(dat5[1], dat5[2]) return plt.gcf() @@ -164,10 +166,11 @@ def test_plot_result3(self): switch_off_matplotlib_agg_warning() # plot_result several shifts one spacing for max r dat6 = DATA['case6'][()] + plt.close('all') fdesign.plot_result(dat6[1], dat6[2]) return plt.gcf() - @pytest.mark.mpl_image_compare(remove_text=True, tolerance=8) + @pytest.mark.mpl_image_compare(remove_text=True, tolerance=6) def test_call_qc_transform_pairs1(self): switch_off_matplotlib_agg_warning() # plot_transform_pair "normal" case @@ -176,6 +179,7 @@ def test_call_qc_transform_pairs1(self): fC = (fdesign.j0_3(5), fdesign.j1_3(5)) fC[0].rhs = fC[0].rhs(r) fC[1].rhs = fC[1].rhs(r) + plt.close('all') fdesign._call_qc_transform_pairs(101, (0.06, 0.07, 0.01), (-1, 1, 0.3), fI, fC, r, (0, 0, 2), np.real) return plt.gcf() @@ -188,11 +192,12 @@ def test_call_qc_transform_pairs2(self): fI = (fdesign.j0_1(5), fdesign.j1_1(5)) fC = fdesign.empy_hankel('j2', 950, 1000, 1, 1) fC.rhs = fC.rhs(r) + plt.close('all') fdesign._call_qc_transform_pairs(101, (0.06, 0.07, 0.01), (-1, 1, 0.3), fI, [fC, ], r, (0, 0, 2), np.imag) return plt.gcf() - @pytest.mark.mpl_image_compare(remove_text=True, tolerance=6) + @pytest.mark.mpl_image_compare(remove_text=True) def test_call_qc_transform_pairs3(self): switch_off_matplotlib_agg_warning() # plot_transform_pair Sine/Cosine @@ -201,6 +206,7 @@ def test_call_qc_transform_pairs3(self): fC = (fdesign.sin_2(), fdesign.cos_2()) fC[0].rhs = fC[0].rhs(r) fC[1].rhs = fC[1].rhs(r) + plt.close('all') fdesign._call_qc_transform_pairs(101, (0.06, 0.07, 0.01), (-1, 1, 0.3), fI, fC, r, (0, 0, 2), np.imag) return plt.gcf() @@ -223,6 +229,7 @@ def test_plot_inversion1(self): rhs = np.dot(f.lhs(k), filt.j0)/r rel_error = np.abs((rhs - f.rhs)/f.rhs) imin = np.where(rel_error > 0.01)[0][0] + plt.close('all') fdesign._plot_inversion(f, rhs, r, k, imin, spacing, shift, cvar) return plt.gcf() @@ -247,6 +254,7 @@ def test_plot_inversion2(self): rhs = rhs0 + rhs1 rel_error = np.abs((rhs - f.rhs)/f.rhs) imin = np.where(rel_error > 0.01)[0][0] + plt.close('all') fdesign._plot_inversion(f, rhs, r, k, imin, spacing, shift, cvar) return plt.gcf() diff --git a/tests/test_transform.py b/tests/test_transform.py index 2ccb08ef..1055cde6 100644 --- a/tests/test_transform.py +++ b/tests/test_transform.py @@ -61,7 +61,7 @@ def test_hankel(htype): # 1. DLF / 2. QWE / 3. QUAD assert_allclose(np.squeeze(wvnr0), np.squeeze(freq0)) # # # 1. Spline; One angle # # # - _, htarg = utils.check_hankel(htype, {'pts_per_dec': 80}, 0) + _, htarg = utils.check_hankel(htype, {'pts_per_dec': 100}, 0) if htype == 'quad': # Lower atol to ensure convergence _, htarg = utils.check_hankel('quad', {'rtol': 1e-8}, 0) elif htype == 'dlf': # Adjust htarg for dlf