@@ -172,7 +172,7 @@ def onselect(epress, erelease):
172172 assert tool .extents == (xdata_new , extents [1 ], ydata_new , extents [3 ])
173173
174174
175- def test_rectangle_add_default_state ():
175+ def test_rectangle_add_state ():
176176 ax = get_ax ()
177177
178178 def onselect (epress , erelease ):
@@ -183,18 +183,18 @@ def onselect(epress, erelease):
183183 _resize_rectangle (tool , 70 , 65 , 125 , 130 )
184184
185185 with pytest .raises (ValueError ):
186- tool .add_default_state ('unsupported_state' )
186+ tool .add_state ('unsupported_state' )
187187
188188 with pytest .raises (ValueError ):
189- tool .add_default_state ('clear' )
190- tool .add_default_state ('move' )
191- tool .add_default_state ('square' )
192- tool .add_default_state ('center' )
193- tool .add_default_state ('data_coordinates' )
189+ tool .add_state ('clear' )
190+ tool .add_state ('move' )
191+ tool .add_state ('square' )
192+ tool .add_state ('center' )
193+ tool .add_state ('data_coordinates' )
194194
195195
196- @pytest .mark .parametrize ('use_default_state ' , [True , False ])
197- def test_rectangle_resize_center (use_default_state ):
196+ @pytest .mark .parametrize ('add_state ' , [True , False ])
197+ def test_rectangle_resize_center (add_state ):
198198 ax = get_ax ()
199199
200200 def onselect (epress , erelease ):
@@ -205,8 +205,8 @@ def onselect(epress, erelease):
205205 _resize_rectangle (tool , 70 , 65 , 125 , 130 )
206206 assert tool .extents == (70.0 , 125.0 , 65.0 , 130.0 )
207207
208- if use_default_state :
209- tool .add_default_state ('center' )
208+ if add_state :
209+ tool .add_state ('center' )
210210 use_key = None
211211 else :
212212 use_key = 'control'
@@ -266,8 +266,8 @@ def onselect(epress, erelease):
266266 ydata_new , extents [3 ] - ydiff )
267267
268268
269- @pytest .mark .parametrize ('use_default_state ' , [True , False ])
270- def test_rectangle_resize_square (use_default_state ):
269+ @pytest .mark .parametrize ('add_state ' , [True , False ])
270+ def test_rectangle_resize_square (add_state ):
271271 ax = get_ax ()
272272
273273 def onselect (epress , erelease ):
@@ -278,8 +278,8 @@ def onselect(epress, erelease):
278278 _resize_rectangle (tool , 70 , 65 , 120 , 115 )
279279 assert tool .extents == (70.0 , 120.0 , 65.0 , 115.0 )
280280
281- if use_default_state :
282- tool .add_default_state ('square' )
281+ if add_state :
282+ tool .add_state ('square' )
283283 use_key = None
284284 else :
285285 use_key = 'shift'
@@ -348,8 +348,8 @@ def onselect(epress, erelease):
348348 tool = widgets .RectangleSelector (ax , onselect , interactive = True )
349349 # Create rectangle
350350 _resize_rectangle (tool , 70 , 65 , 120 , 115 )
351- tool .add_default_state ('square' )
352- tool .add_default_state ('center' )
351+ tool .add_state ('square' )
352+ tool .add_state ('center' )
353353 assert_allclose (tool .extents , (70.0 , 120.0 , 65.0 , 115.0 ))
354354
355355 # resize NE handle
@@ -421,18 +421,16 @@ def onselect(epress, erelease):
421421 do_event (tool , 'onmove' , xdata = 130 , ydata = 140 )
422422 do_event (tool , 'release' , xdata = 130 , ydata = 140 )
423423 assert tool .extents == (100 , 130 , 100 , 140 )
424- assert len (tool ._default_state ) == 0
425424 assert len (tool ._state ) == 0
426425
427426 # Rotate anticlockwise using top-right corner
428427 do_event (tool , 'on_key_press' , key = 'r' )
429- assert tool ._default_state == set (['rotate' ])
430- assert len (tool ._state ) == 0
428+ assert tool ._state == set (['rotate' ])
429+ assert len (tool ._state ) == 1
431430 do_event (tool , 'press' , xdata = 130 , ydata = 140 )
432431 do_event (tool , 'onmove' , xdata = 120 , ydata = 145 )
433432 do_event (tool , 'release' , xdata = 120 , ydata = 145 )
434433 do_event (tool , 'on_key_press' , key = 'r' )
435- assert len (tool ._default_state ) == 0
436434 assert len (tool ._state ) == 0
437435 # Extents shouldn't change (as shape of rectangle hasn't changed)
438436 assert tool .extents == (100 , 130 , 100 , 140 )
@@ -450,6 +448,30 @@ def onselect(epress, erelease):
450448 do_event (tool , 'release' , xdata = 110 , ydata = 160 )
451449 assert_allclose (tool .extents , (100 , 139.75 , 100 , 151.82 ), atol = 0.01 )
452450
451+ if selector_class == widgets .RectangleSelector :
452+ with pytest .raises (ValueError ):
453+ tool ._selection_artist .rotation_point = 'unvalid_value'
454+
455+
456+ def test_rectange_add_remove_set ():
457+ ax = get_ax ()
458+
459+ def onselect (epress , erelease ):
460+ pass
461+
462+ tool = widgets .RectangleSelector (ax , onselect = onselect , interactive = True )
463+ # Draw rectangle
464+ do_event (tool , 'press' , xdata = 100 , ydata = 100 )
465+ do_event (tool , 'onmove' , xdata = 130 , ydata = 140 )
466+ do_event (tool , 'release' , xdata = 130 , ydata = 140 )
467+ assert tool .extents == (100 , 130 , 100 , 140 )
468+ assert len (tool ._state ) == 0
469+ for state in ['rotate' , 'data_coordinates' , 'square' , 'center' ]:
470+ tool .add_state (state )
471+ assert len (tool ._state ) == 1
472+ tool .remove_state (state )
473+ assert len (tool ._state ) == 0
474+
453475
454476def test_rectangle_resize_square_center_aspect ():
455477 ax = get_ax ()
@@ -461,8 +483,8 @@ def onselect(epress, erelease):
461483 tool = widgets .RectangleSelector (ax , onselect , interactive = True )
462484 # Create rectangle
463485 _resize_rectangle (tool , 70 , 65 , 120 , 115 )
464- tool .add_default_state ('square' )
465- tool .add_default_state ('center' )
486+ tool .add_state ('square' )
487+ tool .add_state ('center' )
466488 assert tool .extents == (70.0 , 120.0 , 65.0 , 115.0 )
467489
468490 # resize E handle
@@ -905,7 +927,7 @@ def onselect(*args):
905927 assert tool .extents == (10 , 50 )
906928
907929
908- def test_span_selector_add_default_state ():
930+ def test_span_selector_add_state ():
909931 ax = get_ax ()
910932
911933 def onselect (* args ):
@@ -914,13 +936,13 @@ def onselect(*args):
914936 tool = widgets .SpanSelector (ax , onselect , 'horizontal' , interactive = True )
915937
916938 with pytest .raises (ValueError ):
917- tool .add_default_state ('unsupported_state' )
939+ tool .add_state ('unsupported_state' )
918940 with pytest .raises (ValueError ):
919- tool .add_default_state ('center' )
941+ tool .add_state ('center' )
920942 with pytest .raises (ValueError ):
921- tool .add_default_state ('square' )
943+ tool .add_state ('square' )
922944
923- tool .add_default_state ('move' )
945+ tool .add_state ('move' )
924946
925947
926948def test_tool_line_handle ():
0 commit comments