-
+
-
+
-
-
-
+
+
+
@@ -793,8 +793,8 @@ z
-
-
+
+
diff --git a/lib/matplotlib/tests/test_animation.py b/lib/matplotlib/tests/test_animation.py
index 7e8c2ea235df..61ad1e56ee49 100644
--- a/lib/matplotlib/tests/test_animation.py
+++ b/lib/matplotlib/tests/test_animation.py
@@ -162,6 +162,8 @@ def animate(i):
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=iter(range(5)))
+ writer = NullMovieWriter()
+ anim.save('unused.null', writer=writer)
def test_movie_writer_registry():
diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
index 19cc9267b794..5dcb34981145 100644
--- a/lib/matplotlib/tests/test_axes.py
+++ b/lib/matplotlib/tests/test_axes.py
@@ -27,7 +27,6 @@
import matplotlib.colors as mcolors
from numpy.testing import assert_allclose, assert_array_equal
from matplotlib.cbook import IgnoredKeywordWarning
-import matplotlib.colors as mcolors
# Note: Some test cases are run twice: once normally and once with labeled data
# These two must be defined in the same test function or need to have
@@ -110,7 +109,8 @@ def test_twin_axis_locaters_formatters():
ax1.yaxis.set_major_locator(majl)
ax1.yaxis.set_minor_locator(minl)
ax1.yaxis.set_major_formatter(plt.FormatStrFormatter('%08.2lf'))
- ax1.yaxis.set_minor_formatter(plt.FixedFormatter(['tricks', 'mind', 'jedi']))
+ ax1.yaxis.set_minor_formatter(plt.FixedFormatter(['tricks', 'mind',
+ 'jedi']))
ax1.xaxis.set_major_locator(plt.LinearLocator())
ax1.xaxis.set_minor_locator(plt.FixedLocator([15, 35, 55, 75]))
@@ -178,7 +178,8 @@ def test_twin_inherit_autoscale_setting():
assert not ax_y_off.get_autoscaley_on()
-@image_comparison(baseline_images=["minorticks_on_rcParams_both"], extensions=['png'])
+@image_comparison(baseline_images=["minorticks_on_rcParams_both"],
+ extensions=['png'])
def test_minorticks_on_rcParams_both():
fig = plt.figure()
matplotlib.rcParams['xtick.minor.visible'] = True
@@ -244,6 +245,7 @@ def test_use_sticky_edges():
assert_allclose(ax.get_xlim(), (-0.5, 1.5))
assert_allclose(ax.get_ylim(), (-0.5, 1.5))
+
@image_comparison(baseline_images=['offset_points'],
remove_text=True)
def test_basic_annotate():
@@ -358,20 +360,21 @@ def test_fill_units():
# Top-Right
ax2 = fig.add_subplot(222)
ax2.plot([t], [value], yunits='deg', color='red')
- ax2.fill([t, t, t+day, t+day],
- [0.0, 0.0, 90.0, 0.0], 'b')
+ ax2.fill([t, t, t + day, t + day],
+ [0.0, 0.0, 90.0, 0.0], 'b')
# Bottom-Left
ax3 = fig.add_subplot(223)
ax3.plot([t], [value], yunits='deg', color='red')
ax3.fill([733525.0, 733525.0, 733526.0, 733526.0],
- [0*units.deg, 0*units.deg, 90*units.deg, 0*units.deg], 'b')
+ [0 * units.deg, 0 * units.deg, 90 * units.deg, 0 * units.deg],
+ 'b')
# Bottom-Right
ax4 = fig.add_subplot(224)
ax4.plot([t], [value], yunits='deg', color='red')
- ax4.fill([t, t, t+day, t+day],
- [0*units.deg, 0*units.deg, 90*units.deg, 0*units.deg],
+ ax4.fill([t, t, t + day, t + day],
+ [0 * units.deg, 0 * units.deg, 90 * units.deg, 0 * units.deg],
facecolor="blue")
fig.autofmt_xdate()
@@ -391,14 +394,14 @@ def test_single_point():
plt.plot([1], [1], 'o')
# Reuse testcase from above for a labeled data test
- data = {'a':[0], 'b':[1]}
+ data = {'a': [0], 'b': [1]}
fig = plt.figure()
plt.subplot(211)
plt.plot('a', 'a', 'o', data=data)
plt.subplot(212)
- plt.plot('b','b', 'o', data=data)
+ plt.plot('b', 'b', 'o', data=data)
@image_comparison(baseline_images=['single_date'])
@@ -416,26 +419,36 @@ def test_single_date():
@image_comparison(baseline_images=['shaped_data'])
def test_shaped_data():
- xdata = np.array([[0.53295185, 0.23052951, 0.19057629, 0.66724975, 0.96577916,
- 0.73136095, 0.60823287, 0.01792100, 0.29744742, 0.27164665],
- [0.27980120, 0.25814229, 0.02818193, 0.12966456, 0.57446277,
- 0.58167607, 0.71028245, 0.69112737, 0.89923072, 0.99072476],
- [0.81218578, 0.80464528, 0.76071809, 0.85616314, 0.12757994,
- 0.94324936, 0.73078663, 0.09658102, 0.60703967, 0.77664978],
- [0.28332265, 0.81479711, 0.86985333, 0.43797066, 0.32540082,
- 0.43819229, 0.92230363, 0.49414252, 0.68168256, 0.05922372],
- [0.10721335, 0.93904142, 0.79163075, 0.73232848, 0.90283839,
- 0.68408046, 0.25502302, 0.95976614, 0.59214115, 0.13663711],
- [0.28087456, 0.33127607, 0.15530412, 0.76558121, 0.83389773,
- 0.03735974, 0.98717738, 0.71432229, 0.54881366, 0.86893953],
- [0.77995937, 0.99555600, 0.29688434, 0.15646162, 0.05184800,
- 0.37161935, 0.12998491, 0.09377296, 0.36882507, 0.36583435],
- [0.37851836, 0.05315792, 0.63144617, 0.25003433, 0.69586032,
- 0.11393988, 0.92362096, 0.88045438, 0.93530252, 0.68275072],
- [0.86486596, 0.83236675, 0.82960664, 0.57796630, 0.25724233,
- 0.84841095, 0.90862812, 0.64414887, 0.35652720, 0.71026066],
- [0.01383268, 0.34060930, 0.76084285, 0.70800694, 0.87634056,
- 0.08213693, 0.54655021, 0.98123181, 0.44080053, 0.86815815]])
+ xdata = np.array([[0.53295185, 0.23052951, 0.19057629, 0.66724975,
+ 0.96577916, 0.73136095, 0.60823287, 0.01792100,
+ 0.29744742, 0.27164665],
+ [0.27980120, 0.25814229, 0.02818193, 0.12966456,
+ 0.57446277, 0.58167607, 0.71028245, 0.69112737,
+ 0.89923072, 0.99072476],
+ [0.81218578, 0.80464528, 0.76071809, 0.85616314,
+ 0.12757994, 0.94324936, 0.73078663, 0.09658102,
+ 0.60703967, 0.77664978],
+ [0.28332265, 0.81479711, 0.86985333, 0.43797066,
+ 0.32540082, 0.43819229, 0.92230363, 0.49414252,
+ 0.68168256, 0.05922372],
+ [0.10721335, 0.93904142, 0.79163075, 0.73232848,
+ 0.90283839, 0.68408046, 0.25502302, 0.95976614,
+ 0.59214115, 0.13663711],
+ [0.28087456, 0.33127607, 0.15530412, 0.76558121,
+ 0.83389773, 0.03735974, 0.98717738, 0.71432229,
+ 0.54881366, 0.86893953],
+ [0.77995937, 0.99555600, 0.29688434, 0.15646162,
+ 0.05184800, 0.37161935, 0.12998491, 0.09377296,
+ 0.36882507, 0.36583435],
+ [0.37851836, 0.05315792, 0.63144617, 0.25003433,
+ 0.69586032, 0.11393988, 0.92362096, 0.88045438,
+ 0.93530252, 0.68275072],
+ [0.86486596, 0.83236675, 0.82960664, 0.57796630,
+ 0.25724233, 0.84841095, 0.90862812, 0.64414887,
+ 0.35652720, 0.71026066],
+ [0.01383268, 0.34060930, 0.76084285, 0.70800694,
+ 0.87634056, 0.08213693, 0.54655021, 0.98123181,
+ 0.44080053, 0.86815815]])
y1 = np.arange(10).reshape((1, -1))
y2 = np.arange(10).reshape((-1, 1))
@@ -518,7 +531,8 @@ def test_polar_units():
# make sure runits and theta units work
y1 = [y*km for y in y1]
plt.polar(x2, y1, color="blue", thetaunits="rad", runits="km")
- assert isinstance(plt.gca().get_xaxis().get_major_formatter(), units.UnitDblFormatter)
+ assert isinstance(plt.gca().get_xaxis().get_major_formatter(),
+ units.UnitDblFormatter)
@image_comparison(baseline_images=['polar_rmin'])
@@ -613,12 +627,13 @@ def test_hexbin_extent():
@image_comparison(baseline_images=['hexbin_empty'], remove_text=True,
- extensions=['png'])
+ extensions=['png'])
def test_hexbin_empty():
# From #3886: creating hexbin from empty dataset raises ValueError
ax = plt.gca()
ax.hexbin([], [])
+
def test_hexbin_pickable():
# From #1973: Test that picking a hexbin collection works
class FauxMouseEvent:
@@ -678,7 +693,8 @@ def test_inverted_limits():
@image_comparison(baseline_images=['nonfinite_limits'])
def test_nonfinite_limits():
x = np.arange(0., np.e, 0.01)
- olderr = np.seterr(divide='ignore') # silence divide by zero warning from log(0)
+ # silence divide by zero warning from log(0)
+ olderr = np.seterr(divide='ignore')
try:
y = np.log(x)
finally:
@@ -706,7 +722,7 @@ def test_imshow():
ax.imshow(r)
# Reuse testcase from above for a labeled data test
- data={"r": r}
+ data = {"r": r}
fig = plt.figure()
ax = fig.add_subplot(111)
ax.imshow("r", data=data)
@@ -801,8 +817,10 @@ def test_fill_between_interpolate():
fig = plt.figure()
ax = fig.add_subplot(211)
ax.plot(x, y1, x, y2, color='black')
- ax.fill_between(x, y1, y2, where=y2 >= y1, facecolor='white', hatch='/', interpolate=True)
- ax.fill_between(x, y1, y2, where=y2 <= y1, facecolor='red', interpolate=True)
+ ax.fill_between(x, y1, y2, where=y2 >= y1, facecolor='white', hatch='/',
+ interpolate=True)
+ ax.fill_between(x, y1, y2, where=y2 <= y1, facecolor='red',
+ interpolate=True)
# Test support for masked arrays.
y2 = np.ma.masked_greater(y2, 1.0)
@@ -810,8 +828,10 @@ def test_fill_between_interpolate():
y2[0] = np.ma.masked
ax1 = fig.add_subplot(212, sharex=ax)
ax1.plot(x, y1, x, y2, color='black')
- ax1.fill_between(x, y1, y2, where=y2 >= y1, facecolor='green', interpolate=True)
- ax1.fill_between(x, y1, y2, where=y2 <= y1, facecolor='red', interpolate=True)
+ ax1.fill_between(x, y1, y2, where=y2 >= y1, facecolor='green',
+ interpolate=True)
+ ax1.fill_between(x, y1, y2, where=y2 <= y1, facecolor='red',
+ interpolate=True)
@image_comparison(baseline_images=['symlog'])
@@ -866,7 +886,7 @@ def test_symlog2():
ax.set_ylim(-0.1, 0.1)
-def test_pcolorargs():
+def test_pcolorargs_5205():
# Smoketest to catch issue found in gh:5205
x = [-1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5]
y = [-1.5, -1.25, -1.0, -0.75, -0.5, -0.25, 0,
@@ -1006,7 +1026,8 @@ def test_arc_ellipse():
fig = plt.figure()
ax = fig.add_subplot(211, aspect='auto')
- ax.fill(x, y, alpha=0.2, facecolor='yellow', edgecolor='yellow', linewidth=1, zorder=1)
+ ax.fill(x, y, alpha=0.2, facecolor='yellow', edgecolor='yellow',
+ linewidth=1, zorder=1)
e1 = patches.Arc((xcenter, ycenter), width, height,
angle=angle, linewidth=2, fill=False, zorder=2)
@@ -1221,19 +1242,21 @@ def test_hist_log():
@image_comparison(baseline_images=['hist_bar_empty'], remove_text=True,
- extensions=['png'])
+ extensions=['png'])
def test_hist_bar_empty():
# From #3886: creating hist from empty dataset raises ValueError
ax = plt.gca()
ax.hist([], histtype='bar')
+
@image_comparison(baseline_images=['hist_step_empty'], remove_text=True,
- extensions=['png'])
+ extensions=['png'])
def test_hist_step_empty():
# From #3886: creating hist from empty dataset raises ValueError
ax = plt.gca()
ax.hist([], histtype='step')
+
@image_comparison(baseline_images=['hist_steplog'], remove_text=True, tol=0.1)
def test_hist_steplog():
np.random.seed(0)
@@ -1253,7 +1276,8 @@ def test_hist_steplog():
plt.hist(data, 100, weights=weights, histtype='stepfilled', log=True)
ax = plt.subplot(4, 1, 4)
- plt.hist(data_big, 100, histtype='stepfilled', log=True, orientation='horizontal')
+ plt.hist(data_big, 100, histtype='stepfilled', log=True,
+ orientation='horizontal')
@image_comparison(baseline_images=['hist_step_filled'], remove_text=True,
@@ -1464,7 +1488,8 @@ def _as_mpl_axes(self):
ax_via_gca = plt.gca(projection=prj2)
assert ax_via_gca is not ax
assert ax.get_theta_offset() == 0, ax.get_theta_offset()
- assert ax_via_gca.get_theta_offset() == np.pi, ax_via_gca.get_theta_offset()
+ assert ax_via_gca.get_theta_offset() == np.pi, \
+ ax_via_gca.get_theta_offset()
# try getting the axes given an == (not is) polar projection
ax_via_gca = plt.gca(projection=prj3)
assert ax_via_gca is ax
@@ -1501,7 +1526,7 @@ def test_stackplot():
ax.set_ylim((0, 70))
# Reuse testcase from above for a labeled data test
- data={"x": x, "y1": y1, "y2": y2, "y3": y3}
+ data = {"x": x, "y1": y1, "y2": y2, "y3": y3}
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.stackplot("x", "y1", "y2", "y3", data=data)
@@ -1529,7 +1554,7 @@ def bump(a):
return a
d = layers(3, 100)
- d[50,:] = 0 # test for fixed weighted wiggle (issue #6313)
+ d[50, :] = 0 # test for fixed weighted wiggle (issue #6313)
fig = plt.figure()
@@ -2005,6 +2030,7 @@ def test_boxplot_autorange_whiskers():
ax2.boxplot([x, x], bootstrap=10000, notch=1, autorange=True)
ax2.set_ylim((-5, 5))
+
def _rc_test_bxp_helper(ax, rc_dict):
x = np.linspace(-7, 7, 140)
x = np.hstack([-25, x, 25])
@@ -2012,6 +2038,7 @@ def _rc_test_bxp_helper(ax, rc_dict):
ax.boxplot([x, x])
return ax
+
@image_comparison(baseline_images=['boxplot_rc_parameters'],
savefig_kwarg={'dpi': 100}, remove_text=True,
tol=1, style='default')
@@ -2022,7 +2049,7 @@ def test_boxplot_rc_parameters():
fig, ax = plt.subplots(3)
rc_axis0 = {
- 'boxplot.notch':True,
+ 'boxplot.notch': True,
'boxplot.whiskers': [5, 95],
'boxplot.bootstrap': 10000,
@@ -2407,7 +2434,6 @@ def test_errorbar():
fig.suptitle('Variable errorbars')
-
# Reuse te first testcase from above for a labeled data test
data = {"x": x, "y": y}
fig = plt.figure()
@@ -2510,7 +2536,8 @@ def test_hist_offset():
ax.hist(d2, bottom=15)
-@image_comparison(baseline_images=['hist_step'], extensions=['png'], remove_text=True)
+@image_comparison(baseline_images=['hist_step'], extensions=['png'],
+ remove_text=True)
def test_hist_step():
# make some data
d1 = np.linspace(1, 3, 20)
@@ -2599,7 +2626,8 @@ def test_hist_stacked_normed():
ax.hist((d1, d2), stacked=True, normed=True)
-@image_comparison(baseline_images=['hist_step_bottom'], extensions=['png'], remove_text=True)
+@image_comparison(baseline_images=['hist_step_bottom'], extensions=['png'],
+ remove_text=True)
def test_hist_step_bottom():
# make some data
d1 = np.linspace(1, 3, 20)
@@ -2622,7 +2650,8 @@ def test_hist_stacked_bar():
labels = ['green', 'orange', ' yellow', 'magenta', 'black']
fig = plt.figure()
ax = fig.add_subplot(111)
- ax.hist(d, bins=10, histtype='barstacked', align='mid', color=colors, label=labels)
+ ax.hist(d, bins=10, histtype='barstacked', align='mid', color=colors,
+ label=labels)
ax.legend(loc='upper right', bbox_to_anchor=(1.0, 1.0), ncol=1)
@@ -2653,11 +2682,12 @@ def test_rgba_markers():
for j, rcolor in enumerate(rcolors):
for k, bcolor in enumerate(bcolors):
axs[i].plot(j+1, k+1, 'o', mfc=bcolor, mec=rcolor,
- alpha=alpha, **kw)
+ alpha=alpha, **kw)
axs[i].plot(j+1, k+3, 'x', mec=rcolor, alpha=alpha, **kw)
for ax in axs:
ax.axis([-1, 4, 0, 5])
+
@image_comparison(baseline_images=['mollweide_grid'], remove_text=True)
def test_mollweide_grid():
# test that both horizontal and vertical gridlines appear on the Mollweide
@@ -2788,7 +2818,8 @@ def test_eventplot():
assert num_collections == num_datasets
-@image_comparison(baseline_images=['test_eventplot_defaults'], extensions=['png'], remove_text=True)
+@image_comparison(baseline_images=['test_eventplot_defaults'],
+ extensions=['png'], remove_text=True)
def test_eventplot_defaults():
'''
test that eventplot produces the correct output given the default params
@@ -2805,7 +2836,8 @@ def test_eventplot_defaults():
colls = axobj.eventplot(data)
-@image_comparison(baseline_images=['test_eventplot_problem_kwargs'], extensions=['png'], remove_text=True)
+@image_comparison(baseline_images=['test_eventplot_problem_kwargs'],
+ extensions=['png'], remove_text=True)
def test_eventplot_problem_kwargs():
'''
test that 'singular' versions of LineCollection props raise an
@@ -2842,14 +2874,15 @@ def test_empty_eventplot():
plt.draw()
-@image_comparison(baseline_images=['marker_styles'], extensions=['png'], remove_text=True)
+@image_comparison(baseline_images=['marker_styles'], extensions=['png'],
+ remove_text=True)
def test_marker_styles():
fig = plt.figure()
ax = fig.add_subplot(111)
for y, marker in enumerate(sorted(matplotlib.markers.MarkerStyle.markers,
key=lambda x: str(type(x))+str(x))):
- ax.plot((y % 2)*5 + np.arange(10)*10, np.ones(10)*10*y, linestyle='', marker=marker,
- markersize=10+y/5, label=marker)
+ ax.plot((y % 2)*5 + np.arange(10)*10, np.ones(10)*10*y, linestyle='',
+ marker=marker, markersize=10+y/5, label=marker)
@image_comparison(baseline_images=['rc_markerfill'], extensions=['png'])
@@ -2857,7 +2890,7 @@ def test_markers_fillstyle_rcparams():
fig, ax = plt.subplots()
x = np.arange(7)
for idx, (style, marker) in enumerate(
- [('top', 's'), ('bottom', 'o'), ('none', '^')]):
+ [('top', 's'), ('bottom', 'o'), ('none', '^')]):
matplotlib.rcParams['markers.fillstyle'] = style
ax.plot(x+idx, marker=marker)
@@ -3937,9 +3970,9 @@ def make_patch_spines_invisible(ax):
# Offset the right spine of par2. The ticks and label have already been
# placed on the right by twinx above.
par2.spines["right"].set_position(("axes", 1.2))
- # Having been created by twinx, par2 has its frame off, so the line of its
- # detached spine is invisible. First, activate the frame but make the patch
- # and spines invisible.
+ # Having been created by twinx, par2 has its frame off, so the line of
+ # its detached spine is invisible. First, activate the frame but make
+ # the patch and spines invisible.
make_patch_spines_invisible(par2)
# Second, show the right spine.
par2.spines["right"].set_visible(True)
@@ -4094,8 +4127,8 @@ def test_pie_linewidth_0():
fig = plt.figure()
ax = fig.gca()
ax.pie("s", explode="ex", labels="l", colors="c",
- autopct='%1.1f%%', shadow=True, startangle=90,
- wedgeprops={'linewidth': 0}, data=data)
+ autopct='%1.1f%%', shadow=True, startangle=90,
+ wedgeprops={'linewidth': 0}, data=data)
ax.axis('equal')
# And again to test the pyplot functions which should also be able to be
@@ -4113,13 +4146,13 @@ def test_pie_center_radius():
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
- explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')
+ explode = (0, 0.1, 0, 0) # only "explode" the 2nd slice (i.e. 'Hogs')
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=90,
- wedgeprops={'linewidth': 0}, center=(1,2), radius=1.5)
+ wedgeprops={'linewidth': 0}, center=(1, 2), radius=1.5)
- plt.annotate("Center point", xy=(1,2), xytext=(1,1.5),
+ plt.annotate("Center point", xy=(1, 2), xytext=(1, 1.5),
arrowprops=dict(arrowstyle="->",
connectionstyle="arc3"))
# Set aspect ratio to be equal so that pie is drawn as a circle.
@@ -4199,10 +4232,10 @@ def test_set_get_ticklabels():
ax[0].set_xticklabels(('a', 'b', 'c', 'd'))
ax[0].set_yticklabels(('11', '12', '13', '14'))
- # set ticklabel to the other plot, expect the 2 plots have same label setting
- # pass get_ticklabels return value as ticklabels argument
- ax[1].set_xticklabels(ax[0].get_xticklabels() )
- ax[1].set_yticklabels(ax[0].get_yticklabels() )
+ # set ticklabel to the other plot, expect the 2 plots have same label
+ # setting pass get_ticklabels return value as ticklabels argument
+ ax[1].set_xticklabels(ax[0].get_xticklabels())
+ ax[1].set_yticklabels(ax[0].get_yticklabels())
@image_comparison(baseline_images=['o_marker_path_snap'], extensions=['png'],
@@ -4259,7 +4292,7 @@ def test_pathological_hexbin():
def test_color_None():
# issue 3855
fig, ax = plt.subplots()
- ax.plot([1,2], [1,2], color=None)
+ ax.plot([1, 2], [1, 2], color=None)
def test_color_alias():
@@ -4298,13 +4331,13 @@ def test_move_offsetlabel():
@image_comparison(baseline_images=['rc_spines'], extensions=['png'],
- savefig_kwarg={'dpi':40})
+ savefig_kwarg={'dpi': 40})
def test_rc_spines():
rc_dict = {
- 'axes.spines.left':False,
- 'axes.spines.right':False,
- 'axes.spines.top':False,
- 'axes.spines.bottom':False}
+ 'axes.spines.left': False,
+ 'axes.spines.right': False,
+ 'axes.spines.top': False,
+ 'axes.spines.bottom': False}
with matplotlib.rc_context(rc_dict):
fig, ax = plt.subplots()
@@ -4343,15 +4376,15 @@ def test_rc_tick():
xax = ax1.xaxis
yax = ax1.yaxis
# tick1On bottom/left
- assert xax._major_tick_kw['tick1On'] == False
- assert xax._major_tick_kw['tick2On'] == True
- assert xax._minor_tick_kw['tick1On'] == False
- assert xax._minor_tick_kw['tick2On'] == True
+ assert not xax._major_tick_kw['tick1On']
+ assert xax._major_tick_kw['tick2On']
+ assert not xax._minor_tick_kw['tick1On']
+ assert xax._minor_tick_kw['tick2On']
- assert yax._major_tick_kw['tick1On'] == True
- assert yax._major_tick_kw['tick2On'] == False
- assert yax._minor_tick_kw['tick1On'] == True
- assert yax._minor_tick_kw['tick2On'] == False
+ assert yax._major_tick_kw['tick1On']
+ assert not yax._major_tick_kw['tick2On']
+ assert yax._minor_tick_kw['tick1On']
+ assert not yax._minor_tick_kw['tick2On']
def test_rc_major_minor_tick():
@@ -4366,15 +4399,15 @@ def test_rc_major_minor_tick():
xax = ax1.xaxis
yax = ax1.yaxis
# tick1On bottom/left
- assert xax._major_tick_kw['tick1On'] == False
- assert xax._major_tick_kw['tick2On'] == True
- assert xax._minor_tick_kw['tick1On'] == False
- assert xax._minor_tick_kw['tick2On'] == True
+ assert not xax._major_tick_kw['tick1On']
+ assert xax._major_tick_kw['tick2On']
+ assert not xax._minor_tick_kw['tick1On']
+ assert xax._minor_tick_kw['tick2On']
- assert yax._major_tick_kw['tick1On'] == False
- assert yax._major_tick_kw['tick2On'] == True
- assert yax._minor_tick_kw['tick1On'] == False
- assert yax._minor_tick_kw['tick2On'] == True
+ assert not yax._major_tick_kw['tick1On']
+ assert yax._major_tick_kw['tick2On']
+ assert not yax._minor_tick_kw['tick1On']
+ assert yax._minor_tick_kw['tick2On']
def test_bar_negative_width():
@@ -4687,7 +4720,8 @@ def test_pandas_indexing_hist():
def test_axis_set_tick_params_labelsize_labelcolor():
# Tests fix for issue 4346
axis_1 = plt.subplot()
- axis_1.yaxis.set_tick_params(labelsize=30, labelcolor='red', direction='out')
+ axis_1.yaxis.set_tick_params(labelsize=30, labelcolor='red',
+ direction='out')
# Expected values after setting the ticks
assert axis_1.yaxis.majorTicks[0]._size == 4.0
diff --git a/lib/matplotlib/tests/test_collections.py b/lib/matplotlib/tests/test_collections.py
index be1e5fce3d8b..af9dabc904c1 100644
--- a/lib/matplotlib/tests/test_collections.py
+++ b/lib/matplotlib/tests/test_collections.py
@@ -383,16 +383,6 @@ def check_segments(coll, positions, linelength, lineoffset, orientation):
assert_equal(segment[1, pos2], positions[i])
-def check_allprop(values, target):
- '''
- check to make sure all values match the given target
-
- note: this is not a test, it is used by tests
- '''
- for value in values:
- assert_equal(value, target)
-
-
def check_allprop_array(values, target):
'''
check to make sure all values match the given target if arrays
diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py
index dd17358edeb7..e455bd4c07b8 100644
--- a/lib/matplotlib/tests/test_contour.py
+++ b/lib/matplotlib/tests/test_contour.py
@@ -158,7 +158,7 @@ def test_contour_manual_labels():
@image_comparison(baseline_images=['contour_labels_size_color'],
extensions=['png'], remove_text=True)
-def test_contour_manual_labels():
+def test_contour_labels_size_color():
x, y = np.meshgrid(np.arange(0, 10), np.arange(0, 10))
z = np.max(np.dstack([abs(x), abs(y)]), 2)
diff --git a/lib/matplotlib/tests/test_mlab.py b/lib/matplotlib/tests/test_mlab.py
index 565df780e86a..9f77df82e472 100644
--- a/lib/matplotlib/tests/test_mlab.py
+++ b/lib/matplotlib/tests/test_mlab.py
@@ -955,73 +955,6 @@ def test_detrend_mean_2D_axism1(self):
assert_allclose(res, targ,
atol=1e-08)
- def test_detrend_mean_2D_none(self):
- arri = [self.sig_off,
- self.sig_base + self.sig_off]
- arrt = [self.sig_zeros,
- self.sig_base]
- input = np.vstack(arri)
- targ = np.vstack(arrt)
- res = mlab.detrend_mean(input, axis=None)
- assert_allclose(res, targ,
- atol=1e-08)
-
- def test_detrend_mean_2D_none_T(self):
- arri = [self.sig_off,
- self.sig_base + self.sig_off]
- arrt = [self.sig_zeros,
- self.sig_base]
- input = np.vstack(arri).T
- targ = np.vstack(arrt)
- res = mlab.detrend_mean(input, axis=None)
- assert_allclose(res.T, targ,
- atol=1e-08)
-
- def test_detrend_mean_2D_axis0(self):
- arri = [self.sig_base,
- self.sig_base + self.sig_off,
- self.sig_base + self.sig_slope,
- self.sig_base + self.sig_off + self.sig_slope]
- arrt = [self.sig_base,
- self.sig_base,
- self.sig_base + self.sig_slope_mean,
- self.sig_base + self.sig_slope_mean]
- input = np.vstack(arri).T
- targ = np.vstack(arrt).T
- res = mlab.detrend_mean(input, axis=0)
- assert_allclose(res, targ,
- atol=1e-08)
-
- def test_detrend_mean_2D_axis1(self):
- arri = [self.sig_base,
- self.sig_base + self.sig_off,
- self.sig_base + self.sig_slope,
- self.sig_base + self.sig_off + self.sig_slope]
- arrt = [self.sig_base,
- self.sig_base,
- self.sig_base + self.sig_slope_mean,
- self.sig_base + self.sig_slope_mean]
- input = np.vstack(arri)
- targ = np.vstack(arrt)
- res = mlab.detrend_mean(input, axis=1)
- assert_allclose(res, targ,
- atol=1e-08)
-
- def test_detrend_mean_2D_axism1(self):
- arri = [self.sig_base,
- self.sig_base + self.sig_off,
- self.sig_base + self.sig_slope,
- self.sig_base + self.sig_off + self.sig_slope]
- arrt = [self.sig_base,
- self.sig_base,
- self.sig_base + self.sig_slope_mean,
- self.sig_base + self.sig_slope_mean]
- input = np.vstack(arri)
- targ = np.vstack(arrt)
- res = mlab.detrend_mean(input, axis=-1)
- assert_allclose(res, targ,
- atol=1e-08)
-
def test_detrend_2D_default(self):
arri = [self.sig_off,
self.sig_base + self.sig_off]
diff --git a/lib/matplotlib/tests/test_pickle.py b/lib/matplotlib/tests/test_pickle.py
index 4f1ab2515c35..de3b30cb5966 100644
--- a/lib/matplotlib/tests/test_pickle.py
+++ b/lib/matplotlib/tests/test_pickle.py
@@ -1,7 +1,6 @@
from __future__ import (absolute_import, division, print_function,
unicode_literals)
-import six
from six.moves import cPickle as pickle
from six.moves import range
@@ -15,88 +14,8 @@
import matplotlib.transforms as mtransforms
-def depth_getter(obj,
- current_depth=0,
- depth_stack=None,
- nest_info='top level object'):
- """
- Returns a dictionary mapping:
-
- id(obj): (shallowest_depth, obj, nest_info)
-
- for the given object (and its subordinates).
-
- This, in conjunction with recursive_pickle, can be used to debug
- pickling issues, although finding others is sometimes a case of
- trial and error.
-
- """
- if depth_stack is None:
- depth_stack = {}
-
- if id(obj) in depth_stack:
- stack = depth_stack[id(obj)]
- if stack[0] > current_depth:
- del depth_stack[id(obj)]
- else:
- return depth_stack
-
- depth_stack[id(obj)] = (current_depth, obj, nest_info)
-
- if isinstance(obj, (list, tuple)):
- for i, item in enumerate(obj):
- depth_getter(item, current_depth=current_depth + 1,
- depth_stack=depth_stack,
- nest_info=('list/tuple item #%s in '
- '(%s)' % (i, nest_info)))
- else:
- if isinstance(obj, dict):
- state = obj
- elif hasattr(obj, '__getstate__'):
- state = obj.__getstate__()
- if not isinstance(state, dict):
- state = {}
- elif hasattr(obj, '__dict__'):
- state = obj.__dict__
- else:
- state = {}
-
- for key, value in six.iteritems(state):
- depth_getter(value, current_depth=current_depth + 1,
- depth_stack=depth_stack,
- nest_info=('attribute "%s" in '
- '(%s)' % (key, nest_info)))
-
- return depth_stack
-
-
-def recursive_pickle(top_obj):
- """
- Recursively pickle all of the given objects subordinates, starting with
- the deepest first. **Very** handy for debugging pickling issues, but
- also very slow (as it literally pickles each object in turn).
-
- Handles circular object references gracefully.
-
- """
- objs = depth_getter(top_obj)
- # sort by depth then by nest_info
- objs = sorted(six.itervalues(objs), key=lambda val: (-val[0], val[2]))
-
- for _, obj, location in objs:
- try:
- pickle.dump(obj, BytesIO(), pickle.HIGHEST_PROTOCOL)
- except Exception as err:
- print(obj)
- print('Failed to pickle %s. \n Type: %s. Traceback '
- 'follows:' % (location, type(obj)))
- raise
-
-
def test_simple():
fig = plt.figure()
- # un-comment to debug
-# recursive_pickle(fig)
pickle.dump(fig, BytesIO(), pickle.HIGHEST_PROTOCOL)
ax = plt.subplot(121)
@@ -106,13 +25,9 @@ def test_simple():
plt.plot(np.arange(10), label='foobar')
plt.legend()
- # Uncomment to debug any unpicklable objects. This is slow so is not
- # uncommented by default.
-# recursive_pickle(fig)
pickle.dump(ax, BytesIO(), pickle.HIGHEST_PROTOCOL)
# ax = plt.subplot(121, projection='hammer')
-# recursive_pickle(ax, 'figure')
# pickle.dump(ax, BytesIO(), pickle.HIGHEST_PROTOCOL)
plt.figure()
@@ -138,8 +53,9 @@ def test_complete():
data = u = v = np.linspace(0, 10, 80).reshape(10, 8)
v = np.sin(v * -0.6)
+ # Ensure lists also pickle correctly.
plt.subplot(3, 3, 1)
- plt.plot(list(range(10))) # Ensure lists also pickle correctly.
+ plt.plot(list(range(10)))
plt.subplot(3, 3, 2)
plt.contourf(data, hatches=['//', 'ooo'])
@@ -171,11 +87,9 @@ def test_complete():
plt.subplot(3, 3, 9)
plt.errorbar(x, x * -0.5, xerr=0.2, yerr=0.4)
- ###### plotting is done, now test its pickle-ability #########
-
- # Uncomment to debug any unpicklable objects. This is slow (~200 seconds).
-# recursive_pickle(fig)
-
+ #
+ # plotting is done, now test its pickle-ability
+ #
result_fh = BytesIO()
pickle.dump(fig, result_fh, pickle.HIGHEST_PROTOCOL)
@@ -227,7 +141,6 @@ def test_image():
def test_polar():
ax = plt.subplot(111, polar=True)
fig = plt.gcf()
- result = BytesIO()
pf = pickle.dumps(fig)
pickle.loads(pf)
plt.draw()
diff --git a/lib/matplotlib/tests/test_ticker.py b/lib/matplotlib/tests/test_ticker.py
index d6eee0d6d7bd..524ab750133e 100644
--- a/lib/matplotlib/tests/test_ticker.py
+++ b/lib/matplotlib/tests/test_ticker.py
@@ -239,56 +239,6 @@ def test_use_offset(self, use_offset):
assert use_offset == tmp_form.get_useOffset()
-class TestLogFormatter(object):
- def _sub_labels(self, axis, subs=()):
- "Test whether locator marks subs to be labeled"
- fmt = axis.get_minor_formatter()
- minor_tlocs = axis.get_minorticklocs()
- fmt.set_locs(minor_tlocs)
- coefs = minor_tlocs / 10**(np.floor(np.log10(minor_tlocs)))
- label_expected = [np.round(c) in subs for c in coefs]
- label_test = [fmt(x) != '' for x in minor_tlocs]
- assert label_test == label_expected
-
- @pytest.mark.style('default')
- def test_sublabel(self):
- # test label locator
- fig, ax = plt.subplots()
- ax.set_xscale('log')
- ax.xaxis.set_major_locator(mticker.LogLocator(base=10, subs=[]))
- ax.xaxis.set_minor_locator(mticker.LogLocator(base=10,
- subs=np.arange(2, 10)))
- ax.xaxis.set_major_formatter(mticker.LogFormatter(labelOnlyBase=True))
- ax.xaxis.set_minor_formatter(mticker.LogFormatter(labelOnlyBase=False))
- # axis range above 3 decades, only bases are labeled
- ax.set_xlim(1, 1e4)
- fmt = ax.xaxis.get_major_formatter()
- fmt.set_locs(ax.xaxis.get_majorticklocs())
- show_major_labels = [fmt(x) != ''
- for x in ax.xaxis.get_majorticklocs()]
- assert np.all(show_major_labels)
- self._sub_labels(ax.xaxis, subs=[])
-
- # For the next two, if the numdec threshold in LogFormatter.set_locs
- # were 3, then the label sub would be 3 for 2-3 decades and (2,5)
- # for 1-2 decades. With a threshold of 1, subs are not labeled.
- # axis range at 2 to 3 decades
- ax.set_xlim(1, 800)
- self._sub_labels(ax.xaxis, subs=[])
-
- # axis range at 1 to 2 decades
- ax.set_xlim(1, 80)
- self._sub_labels(ax.xaxis, subs=[])
-
- # axis range at 0.4 to 1 decades, label subs 2, 3, 4, 6
- ax.set_xlim(1, 8)
- self._sub_labels(ax.xaxis, subs=[2, 3, 4, 6])
-
- # axis range at 0 to 0.4 decades, label all
- ax.set_xlim(0.5, 0.9)
- self._sub_labels(ax.xaxis, subs=np.arange(2, 10, dtype=int))
-
-
class FakeAxis(object):
"""Allow Formatter to be called without having a "full" plot set up."""
def __init__(self, vmin=1, vmax=10):
@@ -503,6 +453,54 @@ def test_pprint(self, value, domain, expected):
label = fmt.pprint_val(value, domain)
assert label == expected
+ def _sub_labels(self, axis, subs=()):
+ "Test whether locator marks subs to be labeled"
+ fmt = axis.get_minor_formatter()
+ minor_tlocs = axis.get_minorticklocs()
+ fmt.set_locs(minor_tlocs)
+ coefs = minor_tlocs / 10**(np.floor(np.log10(minor_tlocs)))
+ label_expected = [np.round(c) in subs for c in coefs]
+ label_test = [fmt(x) != '' for x in minor_tlocs]
+ assert label_test == label_expected
+
+ @pytest.mark.style('default')
+ def test_sublabel(self):
+ # test label locator
+ fig, ax = plt.subplots()
+ ax.set_xscale('log')
+ ax.xaxis.set_major_locator(mticker.LogLocator(base=10, subs=[]))
+ ax.xaxis.set_minor_locator(mticker.LogLocator(base=10,
+ subs=np.arange(2, 10)))
+ ax.xaxis.set_major_formatter(mticker.LogFormatter(labelOnlyBase=True))
+ ax.xaxis.set_minor_formatter(mticker.LogFormatter(labelOnlyBase=False))
+ # axis range above 3 decades, only bases are labeled
+ ax.set_xlim(1, 1e4)
+ fmt = ax.xaxis.get_major_formatter()
+ fmt.set_locs(ax.xaxis.get_majorticklocs())
+ show_major_labels = [fmt(x) != ''
+ for x in ax.xaxis.get_majorticklocs()]
+ assert np.all(show_major_labels)
+ self._sub_labels(ax.xaxis, subs=[])
+
+ # For the next two, if the numdec threshold in LogFormatter.set_locs
+ # were 3, then the label sub would be 3 for 2-3 decades and (2,5)
+ # for 1-2 decades. With a threshold of 1, subs are not labeled.
+ # axis range at 2 to 3 decades
+ ax.set_xlim(1, 800)
+ self._sub_labels(ax.xaxis, subs=[])
+
+ # axis range at 1 to 2 decades
+ ax.set_xlim(1, 80)
+ self._sub_labels(ax.xaxis, subs=[])
+
+ # axis range at 0.4 to 1 decades, label subs 2, 3, 4, 6
+ ax.set_xlim(1, 8)
+ self._sub_labels(ax.xaxis, subs=[2, 3, 4, 6])
+
+ # axis range at 0 to 0.4 decades, label all
+ ax.set_xlim(0.5, 0.9)
+ self._sub_labels(ax.xaxis, subs=np.arange(2, 10, dtype=int))
+
class TestFormatStrFormatter(object):
def test_basic(self):
diff --git a/lib/matplotlib/tests/test_triangulation.py b/lib/matplotlib/tests/test_triangulation.py
index a32061801b52..831a01c97efc 100644
--- a/lib/matplotlib/tests/test_triangulation.py
+++ b/lib/matplotlib/tests/test_triangulation.py
@@ -1,8 +1,6 @@
from __future__ import (absolute_import, division, print_function,
unicode_literals)
-import six
-
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.tri as mtri
@@ -17,6 +15,7 @@
import sys
on_win = (sys.platform == 'win32')
+
def test_delaunay():
# No duplicate points, regular grid.
nx = 5
@@ -236,10 +235,15 @@ def test_trifinder():
tris = trifinder(xs, ys)
assert_array_equal(tris, [0, 17])
+ #
# Test triangles with horizontal colinear points. These are not valid
# triangulations, but we try to deal with the simplest violations.
- delta = 0.0 # If +ve, triangulation is OK, if -ve triangulation invalid,
- # if zero have colinear points but should pass tests anyway.
+ #
+
+ # If +ve, triangulation is OK, if -ve triangulation invalid,
+ # if zero have colinear points but should pass tests anyway.
+ delta = 0.0
+
x = [1.5, 0, 1, 2, 3, 1.5, 1.5]
y = [-1, 0, 0, 0, 0, delta, 1]
triangles = [[0, 2, 1], [0, 3, 2], [0, 4, 3], [1, 2, 5], [2, 3, 5],
@@ -254,10 +258,15 @@ def test_trifinder():
assert_array_equal(tris, [[-1, 0, 0, 1, 1, 2, -1],
[-1, 6, 6, 6, 7, 7, -1]])
+ #
# Test triangles with vertical colinear points. These are not valid
# triangulations, but we try to deal with the simplest violations.
- delta = 0.0 # If +ve, triangulation is OK, if -ve triangulation invalid,
- # if zero have colinear points but should pass tests anyway.
+ #
+
+ # If +ve, triangulation is OK, if -ve triangulation invalid,
+ # if zero have colinear points but should pass tests anyway.
+ delta = 0.0
+
x = [-1, -delta, 0, 0, 0, 0, 1]
y = [1.5, 1.5, 0, 1, 2, 3, 1.5]
triangles = [[0, 1, 2], [0, 1, 5], [1, 2, 3], [1, 3, 4], [1, 4, 5],
@@ -281,7 +290,7 @@ def test_trifinder():
trifinder = triang.get_trifinder()
xs = [-0.2, 0.2, 0.8, 1.2]
- ys = [ 0.5, 0.5, 0.5, 0.5]
+ ys = [0.5, 0.5, 0.5, 0.5]
tris = trifinder(xs, ys)
assert_array_equal(tris, [-1, 0, 1, -1])
@@ -591,8 +600,10 @@ def test_triinterp_colinear():
# We also test interpolation inside a flat triangle, by forcing
# *tri_index* in a call to :meth:`_interpolate_multikeys`.
- delta = 0. # If +ve, triangulation is OK, if -ve triangulation invalid,
- # if zero have colinear points but should pass tests anyway.
+ # If +ve, triangulation is OK, if -ve triangulation invalid,
+ # if zero have colinear points but should pass tests anyway.
+ delta = 0.
+
x0 = np.array([1.5, 0, 1, 2, 3, 1.5, 1.5])
y0 = np.array([-1, 0, 0, 0, 0, delta, 1])
@@ -966,8 +977,8 @@ def test_triplot_return():
triang = mtri.Triangulation(
[0.0, 1.0, 0.0, 1.0], [0.0, 0.0, 1.0, 1.0],
triangles=[[0, 1, 3], [3, 2, 0]])
- if ax.triplot(triang, "b-") is None:
- raise AssertionError("triplot should return the artist it adds")
+ assert ax.triplot(triang, "b-") is not None, \
+ 'triplot should return the artist it adds'
def test_trirefiner_fortran_contiguous_triangles():
diff --git a/lib/matplotlib/tests/test_widgets.py b/lib/matplotlib/tests/test_widgets.py
index 5fb41eb26b40..e8b7d8aebc7e 100644
--- a/lib/matplotlib/tests/test_widgets.py
+++ b/lib/matplotlib/tests/test_widgets.py
@@ -261,9 +261,7 @@ def test_CheckButtons():
check.set_active(0)
assert check.get_status() == [False, False, True]
- def clicked_function():
- pass
- cid = check.on_clicked(clicked_function)
+ cid = check.on_clicked(lambda: None)
check.disconnect(cid)
diff --git a/pytest.ini b/pytest.ini
index d9132bfa6002..ee59757e96ae 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -44,13 +44,11 @@ pep8ignore =
matplotlib/testing/jpl_units/UnitDbl.py E201 E202 E203
matplotlib/testing/jpl_units/UnitDblConverter.py E201 E202 E203 E251 E302 E501 E711
matplotlib/testing/jpl_units/UnitDblFormatter.py E201 E202 E251 E302
- matplotlib/tests/test_axes.py E101 E202 E225 E231 E261 E302 E303 E501 E712 W191
matplotlib/tests/test_image.py E225 E231 E251 E302 E303 E501 E502
matplotlib/tests/test_lines.py E231 E261
matplotlib/tests/test_mathtext.py E261 E302 E501
matplotlib/tests/test_rcparams.py E231 E501
matplotlib/tests/test_tightlayout.py E302
- matplotlib/tests/test_triangulation.py E201 E302
matplotlib/tri/triinterpolate.py E201 E221
matplotlib/_cm.py E101 E202 E203 W191
matplotlib/_mathtext_data.py E203 E231 E261 E501
pFad - Phonifier reborn
Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy