From 2fa4f25b9db19a1f59b03d56221c4752c03912fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Sun, 7 Jun 2020 20:02:48 +0200 Subject: [PATCH] Increase image comparison limits Most of the tests require exact match which apparently doesn't always happen in non-pristine environments. Some of them have very big differences due to texlive font rendering changes. --- lib/matplotlib/tests/test_arrow_patches.py | 4 ++-- lib/matplotlib/tests/test_axes.py | 2 +- lib/matplotlib/tests/test_backend_pgf.py | 8 +++++--- lib/matplotlib/tests/test_figure.py | 2 +- lib/matplotlib/tests/test_legend.py | 6 +++--- lib/matplotlib/tests/test_pickle.py | 2 +- lib/matplotlib/tests/test_units.py | 4 ++-- lib/matplotlib/tests/test_usetex.py | 3 ++- lib/mpl_toolkits/tests/test_axes_grid1.py | 2 +- .../tests/test_axisartist_grid_helper_curvelinear.py | 2 +- lib/mpl_toolkits/tests/test_mplot3d.py | 2 +- 11 files changed, 20 insertions(+), 17 deletions(-) diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py index cca505ab9..871935c15 100644 --- a/lib/matplotlib/tests/test_arrow_patches.py +++ b/lib/matplotlib/tests/test_arrow_patches.py @@ -67,7 +67,7 @@ def __prepare_fancyarrow_dpi_cor_test(): @image_comparison(['fancyarrow_dpi_cor_100dpi.png'], remove_text=True, - tol=0 if platform.machine() == 'x86_64' else 0.02, + tol=0.015 if platform.machine() == 'x86_64' else 0.02, savefig_kwarg=dict(dpi=100)) def test_fancyarrow_dpi_cor_100dpi(): """ @@ -82,7 +82,7 @@ def test_fancyarrow_dpi_cor_100dpi(): @image_comparison(['fancyarrow_dpi_cor_200dpi.png'], remove_text=True, - tol=0 if platform.machine() == 'x86_64' else 0.02, + tol=0.018 if platform.machine() == 'x86_64' else 0.02, savefig_kwarg=dict(dpi=200)) def test_fancyarrow_dpi_cor_200dpi(): """ diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py index 6eedf20d5..198ed41ec 100644 --- a/lib/matplotlib/tests/test_axes.py +++ b/lib/matplotlib/tests/test_axes.py @@ -3718,7 +3718,7 @@ def test_vertex_markers(): @image_comparison(['vline_hline_zorder', 'errorbar_zorder'], - tol=0 if platform.machine() == 'x86_64' else 0.02) + tol=0.015 if platform.machine() == 'x86_64' else 0.02) def test_eb_line_zorder(): x = list(range(10)) diff --git a/lib/matplotlib/tests/test_backend_pgf.py b/lib/matplotlib/tests/test_backend_pgf.py index 702cc6c35..71038e702 100644 --- a/lib/matplotlib/tests/test_backend_pgf.py +++ b/lib/matplotlib/tests/test_backend_pgf.py @@ -114,7 +114,8 @@ def test_xelatex(): # test compiling a figure to pdf with pdflatex @needs_pdflatex @pytest.mark.backend('pgf') -@image_comparison(['pgf_pdflatex.pdf'], style='default') +@image_comparison(['pgf_pdflatex.pdf'], style='default', + tol=11.669) def test_pdflatex(): if os.environ.get('APPVEYOR', False): pytest.xfail("pdflatex test does not work on appveyor due to missing " @@ -151,7 +152,7 @@ def test_rcupdate(): 'pgf.preamble': ('\\usepackage[utf8x]{inputenc}' '\\usepackage[T1]{fontenc}' '\\usepackage{sfmath}')}] - tol = [6, 0] + tol = [6, 14] for i, rc_set in enumerate(rc_sets): with mpl.rc_context(rc_set): create_figure() @@ -178,7 +179,8 @@ def test_pathclip(): # test mixed mode rendering @needs_xelatex @pytest.mark.backend('pgf') -@image_comparison(['pgf_mixedmode.pdf'], style='default') +@image_comparison(['pgf_mixedmode.pdf'], style='default', + tol=1.086) def test_mixedmode(): rc_xelatex = {'font.family': 'serif', 'pgf.rcfonts': False} diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py index aab35201c..a657198f7 100644 --- a/lib/matplotlib/tests/test_figure.py +++ b/lib/matplotlib/tests/test_figure.py @@ -22,7 +22,7 @@ import pytest @image_comparison(['figure_align_labels'], - tol=0 if platform.machine() == 'x86_64' else 0.01) + tol=0.02) def test_align_labels(): fig = plt.figure(tight_layout=True) gs = gridspec.GridSpec(3, 3) diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py index 8e9c0771f..d1fb3818a 100644 --- a/lib/matplotlib/tests/test_legend.py +++ b/lib/matplotlib/tests/test_legend.py @@ -105,7 +105,7 @@ def test_multiple_keys(): @image_comparison(['rgba_alpha.png'], remove_text=True, - tol=0 if platform.machine() == 'x86_64' else 0.01) + tol=0.02) def test_alpha_rgba(): fig, ax = plt.subplots(1, 1) ax.plot(range(10), lw=5) @@ -114,7 +114,7 @@ def test_alpha_rgba(): @image_comparison(['rcparam_alpha.png'], remove_text=True, - tol=0 if platform.machine() == 'x86_64' else 0.01) + tol=0.02) def test_alpha_rcparam(): fig, ax = plt.subplots(1, 1) ax.plot(range(10), lw=5) @@ -140,7 +140,7 @@ def test_fancy(): @image_comparison(['framealpha'], remove_text=True, - tol=0 if platform.machine() == 'x86_64' else 0.02) + tol=0.02) def test_framealpha(): x = np.linspace(1, 100, 100) y = x diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py index 82bf4d8e8..13046357a 100644 --- a/lib/matplotlib/tests/test_pickle.py +++ b/lib/matplotlib/tests/test_pickle.py @@ -41,7 +41,7 @@ def test_simple(): @image_comparison(['multi_pickle.png'], remove_text=True, style='mpl20', - tol=0 if platform.machine() == 'x86_64' else 0.082) + tol=0.082) def test_complete(): fig = plt.figure('Figure with a label?', figsize=(10, 6)) diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py index 252136b4d..f0e7ced31 100644 --- a/lib/matplotlib/tests/test_units.py +++ b/lib/matplotlib/tests/test_units.py @@ -74,7 +74,7 @@ def quantity_converter(): # Tests that the conversion machinery works properly for classes that # work as a facade over numpy arrays (like pint) @image_comparison(['plot_pint.png'], remove_text=False, style='mpl20', - tol=0 if platform.machine() == 'x86_64' else 0.01) + tol=0.002 if platform.machine() == 'x86_64' else 0.01) def test_numpy_facade(quantity_converter): # use former defaults to match existing baseline image plt.rcParams['axes.formatter.limits'] = -7, 7 @@ -101,7 +101,7 @@ def test_numpy_facade(quantity_converter): # Tests gh-8908 @image_comparison(['plot_masked_units.png'], remove_text=True, style='mpl20', - tol=0 if platform.machine() == 'x86_64' else 0.01) + tol=0.02) def test_plot_masked_units(): data = np.linspace(-5, 5) data_masked = np.ma.array(data, mask=(data > -2) & (data < 2)) diff --git a/lib/matplotlib/tests/test_usetex.py b/lib/matplotlib/tests/test_usetex.py index 25006f174..694a510e7 100644 --- a/lib/matplotlib/tests/test_usetex.py +++ b/lib/matplotlib/tests/test_usetex.py @@ -13,7 +13,8 @@ if not mpl.checkdep_usetex(True): @image_comparison( baseline_images=['test_usetex'], extensions=['pdf', 'png'], - style="mpl20") + style="mpl20", + tol=21) def test_usetex(): mpl.rcParams['text.usetex'] = True fig = plt.figure() diff --git a/lib/mpl_toolkits/tests/test_axes_grid1.py b/lib/mpl_toolkits/tests/test_axes_grid1.py index 96830441e..c403b0bf2 100644 --- a/lib/mpl_toolkits/tests/test_axes_grid1.py +++ b/lib/mpl_toolkits/tests/test_axes_grid1.py @@ -331,7 +331,7 @@ def test_zooming_with_inverted_axes(): @image_comparison(['anchored_direction_arrows.png'], - tol=0 if platform.machine() == 'x86_64' else 0.01) + tol=0.02) def test_anchored_direction_arrows(): fig, ax = plt.subplots() ax.imshow(np.zeros((10, 10)), interpolation='nearest') diff --git a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py index 05534869a..6e7053722 100644 --- a/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py +++ b/lib/mpl_toolkits/tests/test_axisartist_grid_helper_curvelinear.py @@ -17,7 +17,7 @@ from mpl_toolkits.axisartist.grid_helper_curvelinear import \ @image_comparison(['custom_transform.png'], style='default', - tol=0.03 if platform.machine() == 'x86_64' else 0.034) + tol=0.034) def test_custom_transform(): class MyTransform(Transform): input_dims = output_dims = 2 diff --git a/lib/mpl_toolkits/tests/test_mplot3d.py b/lib/mpl_toolkits/tests/test_mplot3d.py index 37532335e..5a2645235 100644 --- a/lib/mpl_toolkits/tests/test_mplot3d.py +++ b/lib/mpl_toolkits/tests/test_mplot3d.py @@ -287,7 +287,7 @@ def test_marker_draw_order_view_rotated(fig_test, fig_ref): ax.view_init(elev=0, azim=azim - 180) # view rotated by 180 degrees -@mpl3d_image_comparison(['plot_3d_from_2d.png'], tol=0.01) +@mpl3d_image_comparison(['plot_3d_from_2d.png'], tol=0.012) def test_plot_3d_from_2d(): fig = plt.figure() ax = fig.add_subplot(111, projection='3d') -- 2.27.0