@@ -217,28 +217,57 @@ def test_step_markers(fig_test, fig_ref):
217
217
fig_ref .subplots ().plot ([0 , 0 , 1 ], [0 , 1 , 1 ], "-o" , markevery = [0 , 2 ])
218
218
219
219
220
+ @pytest .mark .parametrize ("parent" , ["figure" , "axes" ])
220
221
@check_figures_equal (extensions = ('png' ,))
221
- def test_markevery (fig_test , fig_ref ):
222
+ def test_markevery (fig_test , fig_ref , parent ):
222
223
np .random .seed (42 )
223
- t = np .linspace (0 , 3 , 14 )
224
- y = np .random .rand (len (t ))
224
+ x = np .linspace (0 , 1 , 14 )
225
+ y = np .random .rand (len (x ))
225
226
226
- casesA = [None , 4 , (2 , 5 ), [1 , 5 , 11 ],
227
- [0 , - 1 ], slice (5 , 10 , 2 ), 0.3 , (0.3 , 0.4 ),
228
- np .arange (len (t ))[y > 0.5 ]]
229
- casesB = ["11111111111111" , "10001000100010" , "00100001000010" ,
230
- "01000100000100" , "10000000000001" , "00000101010000" ,
231
- "11011011011110" , "01010011011101" , "01110001110110" ]
227
+ cases_test = [None , 4 , (2 , 5 ), [1 , 5 , 11 ],
228
+ [0 , - 1 ], slice (5 , 10 , 2 ),
229
+ np .arange (len (x ))[y > 0.5 ],
230
+ 0.3 , (0.3 , 0.4 )]
231
+ cases_ref = ["11111111111111" , "10001000100010" , "00100001000010" ,
232
+ "01000100000100" , "10000000000001" , "00000101010000" ,
233
+ "01110001110110" , "11011011011110" , "01010011011101" ]
232
234
233
- axsA = fig_ref .subplots (3 , 3 )
234
- axsB = fig_test .subplots (3 , 3 )
235
+ if parent == "figure" :
236
+ # float markevery ("relative to axes size") is not supported.
237
+ cases_test = cases_test [:- 2 ]
238
+ cases_ref = cases_ref [:- 2 ]
235
239
236
- for ax , case in zip (axsA .flat , casesA ):
237
- ax .plot (t , y , "-gD" , markevery = case )
240
+ def add_test (x , y , * , markevery ):
241
+ fig_test .add_artist (
242
+ mlines .Line2D (x , y , marker = "o" , markevery = markevery ))
238
243
239
- for ax , case in zip (axsB .flat , casesB ):
244
+ def add_ref (x , y , * , markevery ):
245
+ fig_ref .add_artist (
246
+ mlines .Line2D (x , y , marker = "o" , markevery = markevery ))
247
+
248
+ elif parent == "axes" :
249
+ axs_test = iter (fig_test .subplots (3 , 3 ).flat )
250
+ axs_ref = iter (fig_ref .subplots (3 , 3 ).flat )
251
+
252
+ def add_test (x , y , * , markevery ):
253
+ next (axs_test ).plot (x , y , "-gD" , markevery = markevery )
254
+
255
+ def add_ref (x , y , * , markevery ):
256
+ next (axs_ref ).plot (x , y , "-gD" , markevery = markevery )
257
+
258
+ for case in cases_test :
259
+ add_test (x , y , markevery = case )
260
+
261
+ for case in cases_ref :
240
262
me = np .array (list (case )).astype (int ).astype (bool )
241
- ax .plot (t , y , "-gD" , markevery = me )
263
+ add_ref (x , y , markevery = me )
264
+
265
+
266
+ def test_markevery_figure_line_unsupported_relsize ():
267
+ fig = plt .figure ()
268
+ fig .add_artist (mlines .Line2D ([0 , 1 ], [0 , 1 ], marker = "o" , markevery = .5 ))
269
+ with pytest .raises (ValueError ):
270
+ fig .canvas .draw ()
242
271
243
272
244
273
def test_marker_as_markerstyle ():
0 commit comments