+
     ]i c                   s   ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt	 ^ RI
Ht ^ RIHt ^ RIHtHt ^ RIHtHtHtHtHt ^ RIt^ RIHt ^ RIt]P:                  R 4       tR t]P@                  PC                  R	]"! 4       ]"! R
^R7      ]"! ^
^
RR7      ]"! ]"! R
R7      R7      .4      R 4       t#]P@                  PC                  RRR.4      ]P@                  PC                  R^ ^
.^R.^^..4      ]P@                  PC                  R^ ^
.^R.^^..4      R 4       4       4       t$]P@                  PC                  RR
Rx.RRy..4      R 4       t%R t&R t'R t(]P@                  PC                  RR
R.4      R 4       t)]P@                  PC                  RR
R.4      R 4       t*R  t+]P@                  PC                  R!]PX                  ]PZ                  .4      R" 4       t.R# t/]P@                  PC                  R$RR
.4      R% 4       t0R& t1R' t2]P@                  PC                  R(R
R.4      R) 4       t3]P@                  PC                  R*R
R.4      R+ 4       t4]P@                  PC                  R,R-R]"! ^
R
R.7      3R/R
]"! ^R07      3R-R]"! ]"! R
R7      R7      3R-R]"! R
R17      3.4      R2 4       t5]P@                  PC                  R(R
R.4      R3 4       t6]P@                  PC                  R*R
R.4      R4 4       t7]P@                  PC                  R5R
R.4      R6 4       t8R7 t9R8 t:]P@                  PC                  R9R:R;.4      R< 4       t;]P@                  PC                  R9R:R;.4      R= 4       t<R> t=R? t>]P@                  PC                  R@Rz4      RA 4       t?]P@                  P                  RBR
RC7      RD 4       tARE tBRF tCRG tD]P@                  PC                  R	]"! 4       ]"! R]"! RHRI7      RJ7      ]"! R
^R7      .4      RK 4       tERL tFRM tGRN tH]P@                  PC                  RO. R{O4      RP 4       tIRQ tJ]! RR.RSR
RT7      RU 4       tK]! RV.RW7      RX 4       tL]! RV.RW7      RY 4       tMRZ tN]! RV.RW7      R[ 4       tO]! RV.RW7      R\ 4       tP]! RV.RW7      R] 4       tQR^ tRR_ tSR` tTRa tURb tVRc tW]P@                  PC                  RdR-R/.4      Re 4       tX]P@                  PC                  RdR-R/.4      Rf 4       tYRg tZRh t[Ri t\]P@                  PC                  RjRR
.4      Rk 4       t]]P@                  PC                  RjRR
.4      Rl 4       t^]! RV.RW7      Rm 4       t_]P@                  PC                  Rn. R|O4      ]P@                  PC                  RjRR
.4      Ro 4       4       t`]P@                  PC                  RjRR
.4      Rp 4       ta]P@                  PC                  RjRR
.4      Rq 4       tb]P@                  PC                  RjRR
.4      ]! RV.RW7      Rr 4       4       tcRs tdRt te]P@                  PC                  RuRR
.4      ]P@                  PC                  RvRR
.4      Rw 4       4       tfR# )}    N)mock)
MouseEvent)check_figures_equalimage_comparison)click_and_dragdo_eventget_ax
mock_eventnoop)assert_allclosec                  s    \        4       # N)r        D/usr/lib64/python3.14/site-packages/matplotlib/tests/test_widgets.pyaxr      s	    8Or   c                  s   ^ RI Hp Hp ^ RIHp V! 4       R9  d   \
        P                  ! R4       \        P                  ! ^^R^^.R7      w  r4V! VR,          RR.4      pV! VR,          RR.RR	R
.R^^./RR	R
.RRR./R7      pV ! VR,          RR.RR.R7      pV ! VR,          RR.RR.RR	R
.R^^./RR	R
.RRR./RRR./R7      pVR,          P                  R4       VR,          P                  R4       VP                  P                  4        \        P                  ! 4       ;_uu_ 4       p	VP                  V	RR7       RRR4       R#   + '       g   i     R# ; i) r    )CheckButtonsRadioButtons)"_get_running_interactive_frameworkNz-Callback exceptions are not raised otherwise.)ZnrowsZncolsZfigsizeZwidth_ratiosZApplesZOrangescolorredZorangefontsize	edgecolor	facecolor	mistyroseZ	peachpufflabel_propsradio_propsT)activesZdarkredZ
darkorange)r   r   frame_propscheck_propsZDefaultZStylizedZpdf)Zformat)ZheadlessN)      r    r    r       )r#   r    )r#   r#   )matplotlib.widgetsr   r   Zmatplotlib.cbookr   pytestZxfailpltsubplotsZ	set_titlecanvasdrawioZBytesIOZsavefig)
r   r   r   figr   Z
default_rbZ	styled_rbZ
default_cbZ	styled_cbZresult_after
             r   test_save_blitted_widget_as_pdfr-      sx   =C)+3EEDEllq&1vGC bh9(=>J
48Y'uh/"b+ 5("3 ;"<>	I bh9(='+Tl4J
48Y'tuh/"b+ 5("3 ;"<>y,78I tHy!tHz"JJOO	L/ 
s   0EE	kwargsT)useblitbuttonpixels)minspanxminspany
spancoords)Zfillpropsc                 s   \         P                  ! \        R R7      p\        P                  ! V 3RV/VB p\        VR^d^d^R7       \        VR^^^R7       \        VR^^^R7       VP                  RR 4      R	9  d)   \        VP                  . R
O. RO.VP                  R7       VP                  4        VP                  w  w  rEpR # )NZspecZreturn_valueonselectpressxdataydatar0   onmovereleaseZdrawtype)Zerr_msg)linenone)g      Y@d      rB   rA   )rA   rB   rB   rA   rA   )r   Mockr	   widgetsRectangleSelectorr   Zgetr
   geometryassert_called_once	call_args)r   r.   r8   toolepresserelease   &&    r   test_rectangle_selectorrM   @   s     yyd6H$$RE(EfEDT7#S;T83c!< T9Cs1=zz*d#+;;324 $	/
 !!)!3!3Vr   r4   Zdatazminspanx, x1      %@zminspany, y1c           	      s   \         P                  ! \        R R7      p^
^
rVR8X  d@   V P                  P	                  W534      V P                  P	                  Wx34      ,
          w  r$\
        P                  ! WRVW$R7      p	\        WV3W3R7       VP                  4        \        V	RRR7       VP                  4        VP                  4        \        WV3W53R7       VP                  4        VP                  w  w  rpR # )Nr7   r1   T)r8   interactiver4   r2   r3   startend   rT      rV   )r   rC   r	   	transData	transformrD   rE   r   assert_not_calledrG   
reset_mockrH   )r   r4   r2   Zx1r3   Zy1r8   Zx0Zy0rI   rJ   rK   r.   s   &&&&&&       r   test_rectangle_minspanr[   _   s    
 yyd6H"X ll44bX> ll44bX>? $$R0:.6KD 4BxbX6 4xX6! 4BxbX6!!)!3!3Vr   zdrag_from_anywhere, new_centerFc                 s    \         P                  ! V R VR7      p\        VRRR7       \        VRRR7       \        VRR	R7       R# )
T)rO   drag_from_anywhererP   Nr    
   rA   x      i   #   rb         rg   i   )rD   rE   r   )r   r\   Z
new_centerrI   s   &&& r   test_rectangle_dragri      sF     $$RT8JLD 4wJ7 4xX6 4zz:r   c           	      s0   \         P                  ! V R \        RRR7      \        RR7      R7      p\        VRRR7       VP                  pVP                  RR	R7       VP                   F  pK  	  VP                  RR	R
7       VP                   F  pK  	  R# )Tb皙?r   alpha      ?rm   )rO   r6   handle_propsrP   r333333?)markeredgecolorrm   Nr]   r_   )rD   rE   dictr   _selection_artist	set_props_handles_artistsset_handle_propsr   rI   artist   &  r   .test_rectangle_selector_set_props_handle_propsr|      s    $$RT+/#S+I26S/CD 4wJ7##FNNSN, ''' 	#S9'''r   c                 s   \         P                  ! V R R7      p\        VRRR7       VP                  pV^,          V^,          rCV^
,           V^,           re\        WV3WV3R7       VP                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           rCV^
,           Tre\        WV3WV3R7       VP                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           rCV^,           Tre\        WV3WV3R7       VP                  pV^ ,          V^,          rCV^,           V^,           re\        WV3WV3R7       R# )TrO   rP   Nr]   r_   )rD   rE   r   extents)r   rI   r~   r;   r<   	xdata_new	ydata_new   &      r   test_rectangle_resizer      s.   $$RT:D4wJ7 llG1:wqz5 2:uqyy4u~I3IJ llG1:wqzWQZ'!*-D,II5 2:uy4u~I3IJ llG1:wqzWQZ'!*-D,II5 2:uy4u~I3IJ llG1:wqz5 2:urzy4u~I3IJr   c                 s   \         P                  ! V R R7      p\        VR	R
R7       \        P                  ! \
        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \
        4      ;_uu_ 4        VP                  R4       RRR4       VP                  R4       VP                  R4       VP                  R4       R#   + '       g   i     L; i  + '       g   i     LX; i)Tr}   rP   unsupported_stateNclearmovesquarecenteriF   iA   }      )rD   rE   r   r%   raises
ValueError	add_stater   rI      & r   test_rectangle_add_stater      s    $$RT:D4xZ8	z	"	"*+ 
# 
z	"	"w 
#NN6NN8NN8 
#	" 
#	"s   	CC'C$	'C7	r   c                 n   \         P                  ! V R R7      p\        VRRR7       V'       d   VP                  R4       RpMRpVP                  pV^,          V^,          re^
^rWW,           Wh,           r\        W%V3W3VR7       VP                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           re^
pWW,           Tr\        W%V3W3VR7       VP                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           reR	pWW,           Tr\        W%V3W3VR7       VP                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           re^pWW,           Tr\        W%V3W3VR7       VP                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           reR
pWW,           Tr\        W%V3W3VR7       VP                  pV^ ,          V^,          re^^rWW,           Wh,           r\        W%V3W3VR7       R# )Tr}   rP   r   NcontrolrQ   rR   keyr   r   rD   rE   r   r   r~   r   r   rI   Zuse_keyr~   r;   r<   xdiffydiffr   r      &&         r   test_rectangle_resize_centerr      s   $$RT:D4xZ8 x  llG1:wqz5q5 =%-y4u~I3I  llG1:wqzWQZ'!*-D,II5E =%y4u~I3I  llG1:wqzWQZ'!*-D,II5E =%y4u~I3I  llG1:wqzWQZ'!*-D,II5E =%y4u~I3I  llG1:wqzWQZ'!*-D,II5E =%y4u~I3I  llG1:wqz5r5 =%-y4u~I3I r   c                 r   )Tr}   rP   r   Nshiftr   r   r`   is   r   r   r   r   r   r   test_rectangle_resize_squarer   .  s   $$RT:D4xZ8 x  llG1:wqz5q5 =%-y4u~I3I  llG1:wqzWQZ'!*-D,II5E =%y4u~I3I  llG1:wqzWQZ'!*-D,II5E =%y4u~I3I  llG1:wqzWQZ'!*-D,II5E =%y4u~I3I  llG1:wqzWQZ'!*-D,II5E =%y4u~I3I  llG1:wqz5r5 =%-y4u~I3I r   c                 s   \         P                  ! V R R7      p\        VRRR7       VP                  R4       VP                  R4       \	        VP
                  R4       VP
                  pV^,          V^,          rC^
^reW5,           WF,           r\        WV3Wx3R7       \	        VP
                  V^ ,          V,
          VV^,          V,
          V^,          V,           34       VP
                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           rC^
pW5,           Tr\        WV3Wx3R7       \	        VP
                  V^ ,          V,
          VV^,          V,
          V^,          V,           34       VP
                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           rCR	pW5,           Tr\        WV3Wx3R7       \	        VP
                  V^ ,          V,
          VV^,          V,
          V^,          V,           34       VP
                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           rC^pW5,           Tr\        WV3Wx3R7       \	        VP
                  Wr^,          V,
          V^,          V,           V^,          V,
          34       VP
                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           rCR
pW5,           Tr\        WV3Wx3R7       \	        VP
                  Wr^,          V,
          V^,          V,           V^,          V,
          34       VP
                  pV^ ,          V^,          rC^^reW5,           WF,           r\        WV3Wx3R7       \	        VP
                  V^ ,          V,           V^,          V,
          W^,          V,
          34       R# )Tr}   rP   r   r   Nr   r   )     Q@g      ^@g     @P@g     \@r   r   )rD   rE   r   r   r
   r~   )	r   rI   r~   r;   r<   r   r   r   r   	   &        r   #test_rectangle_resize_square_centerr   x  sQ   $$RT:D4xZ8NN8NN8DLL"<= llG1:wqz5q5 =%-y4u~I3IJDLL71:#5y#*1:#5wqzE7I#K L llG1:wqzWQZ'!*-D,II5E =%y4u~I3IJDLL71:#5y#*1:#5wqzE7I#K L llG1:wqzWQZ'!*-D,II5E =%y4u~I3IJDLL71:#5y#*1:#5wqzE7I#K L llG1:wqzWQZ'!*-D,II5E =%y4u~I3IJDLL9aj5.@#*1:#5wqzE7I#K L llG1:wqzWQZ'!*-D,II5E =%y4u~I3IJDLL9aj5.@#*1:#5wqzE7I#K L llG1:wqz5r5 =%-y4u~I3IJDLL71:#5wqzE7I#,aj5.@#B Cr   selector_classc                 sF   V! V R R7      p\        VRRR7       \        VRRR7       \        VRRR7       \        VRRR7       \        VP                  RRR7       ^-Vn        \        VP                  \
        P                  ! . RO. RO.4      RR7       \        VRRR7       \        VP                  RRR7       V\        P                  8X  d?   \        P                  ! \        4      ;_uu_ 4        R	VP                  n        R
R
R
4       R
# R
#   + '       g   i     R
# ; i)Tr}   rP   on_key_pressrq   r   g(\9@g{Gz?)ZatolZunvalid_valueNrA   rA   r   i   )r`      )gR]@     xa@g=
ףp[@g     V@)g     W@g=
ףp]@g     b@g(\^@)n   r   )r      )rA   r   rA   g
ףp=b@)r   r   r
   Zrotationcornersnparrayr~   rD   rE   r%   r   r   ru   Zrotation_point)r   r   rI      && r   test_rectangle_rotater     s     "$/D4zz:
 T>s+ 4zz:T>s+ DMM5t4DM DLLHH==? @FJL
 4zz:DLL"<4H222]]:&&4CD""1 '& 3&&&s   1DD 	c                 s    \         P                  ! V R R7      p\        VRRR7       R F%  pVP                  V4       VP	                  V4       K'  	  R# )Tr}   rP   Nr   r   )Zrotater   r   )rD   rE   r   r   Zremove_state)r   rI   stater{   r   test_rectangle_add_remove_setr     sF    $$RT:D4zz: 0u%  0r   use_data_coordinatesc                 s>   V P                  R 4       \        P                  ! V RVR7      p\        VR	R
R7       VP	                  R4       VP	                  R4       V'       d   VP
                  pV^,          V^,          V^,          V^ ,          ,
          rep^
V^,          V^,          V^,          ,
          ^,          ,           rWG,           TrV^,          V,           p\        W$V3W3R7       \        VP
                  V^ ,          V,
          V	W,
          W,           .4       R# VP
                  pV^,          V^,          rT^
pWG,           TrV^,          VP                  ,          p\        W$V3W3R7       \        VP
                  V^ ,          V,
          V	RR.4       R# )皙?T)rO   r   rP   r   r   g      G@g     `@Nr   r   )
set_aspectrD   rE   r   r   r~   r
   Z_aspect_ratio_correction)r   r   rI   r~   r;   r<   Zwidthr   Zycenterr   r   Zychanges   &&          r   *test_rectangle_resize_square_center_aspectr     sa   MM#$$RT:NPD 4xZ8NN8NN8,,%aj'!*gaj71:6MegajGAJ,Cq+HHw$}e9!)e#t5>	7MNwqzE'99'.'8':K'M 	N ,,qz71:u$}e9!)d;;;t5>	7MNwqzE'99',f'6 	7r   c                s   \         P                  ! V ^
RR7      pR
Vn        \        VRRR7       \        VRRRR7       \        VRRRR7       VP                   Uu. uF  p\	        V4      NK  	  pp\        VRRRR7       VP                   Uu. uF  p\	        V4      NK  	  pp\        VP                  R,          R^d.4       R	# u upi u upi )z'For ellipse, test out the key modifiersT)
grab_rangerO   rP   r   r   r   z
ctrl+shiftr   NrA      rA   r   r   r   )r   r   r   r^   r^   )rd   rV   r   ):NNNr    )rD   EllipseSelectorr~   r   Zintr
   rF   )r   rI   Zer~      &   r   test_ellipser   	  s    ""2"$GD'DL 4zz: 4zzyI 4xX7C#||,|!s1v|G, 4zz|L#||,|!s1v|G, DMM$'#s4 -
 -s   CC
c           	      s    \         P                  ! V ^
RRRRR/R7      pR	Vn        \        VP                  R
4       \        VP
                  R4       \        VRRR7       \        VRRR7       \        VRRR7       R# )r^   TZmarkerfacecolorrq   rs   rj   )r   rO   rp   rP   Nr   ))rA   r   r   rA   )rA   rA   r   r   ))rA        @_@r   r   )r   rA   r   r   r   )r`   r`   )   r   r   )rD   rE   r~   r
   r   Zedge_centersr   r   r   r   test_rectangle_handlesr   $  s    $$RBD3Dc3Dc3KLD (DLDLL"NOD%%HJ
 4zz: 4zz: 4xZ8r   rO   c                 s   \         P                  ! \        R R7      p\        P                  ! WVR7      p\        VRRR7       VP                  4        VP                  4        \        VRRR7       VP                  4        R # )Nr7   )r8   rO   rP   rA   r   r   r`   r^   rA   )r   rC   r	   rD   rE   r   rG   rZ   r   rO   r8   rI      &&  r    test_rectangle_selector_onselectr   C  sd     yyd6H$$RTD4zz:! 4yi8!r   ignore_event_outsidec                 s:   \         P                  ! \        R R7      p\        P                  ! WVR7      p\        VRRR7       VP                  4        VP                  4        \        VRRR7       V'       d   VP                  4        R # VP                  4        R # )Nr7   )r8   r   rP   r   r   r   r   r   r   )	r   rC   r	   rD   rE   r   rG   rZ   rY   )r   r   r8   rI   r   r   &test_rectangle_selector_ignore_outsider   T  sw    yyd6H$$R:NPD4zz:! 4zz:""$ 	##%r   z$orientation, onmove_callback, kwargs
horizontal)Zminspanr/   vertical)r0   r}   c                 s   \         P                  ! \        R R7      p\         P                  ! \        R R7      pV'       d   WSR&   V P                  R4       V P	                  4       p\
        P                  ! WV3/ VB p\        VR^d^d^R7       \        VR^^^R7       \        VR^^^R7       VP                  ^d^4       V'       d   VP                  ^d^4       R # R # )Nr7   onmove_callbackZautor9   r:   r=   r>   )	r   rC   r	   r   ZtwinxrD   SpanSelectorr   assert_called_once_with)r   orientationr   r.   r8   r=   ZtaxrI   s   &&&&    r   test_span_selectorr   k  s     yyd6HYYDt4F$* ! MM&
((*CkDVDDT7#S;T83c!<T9Cs1=$$S#.&&sC0 r   c                 s   \         P                  ! \        R R7      p\        P                  ! WRVR7      p\        VRRR7       VP                  4        VP                  4        \        VRRR7       VP                  4        R # )Nr7   r   r}   rP   r   )r   rA   r   )r   rC   r	   rD   r   r   rG   rZ   r   r   r   test_span_selector_onselectr     si    yyd6Hl,79D 4zz:! 4yi8!r   c                 s   \         P                  ! \        R R7      p\         P                  ! \        R R7      p\        P                  ! WRVVR7      p\        VRRR7       VP                  4        VP                  4        VP                  4        VP                  4        \        VRRR7       V'       d#   VP                  4        VP                  4        R # VP                  4        VP                  4        R # )	Nr7   r   )r   r   rP   r   r   r   r   )	r   rC   r	   rD   r   r   rG   rZ   rY   )r   r   r8   r=   rI      &&   r   !test_span_selector_ignore_outsider     s    yyd6HYYDt4Fl065IKD 4zz:!
 
4zz:""$  " 	##%!!#r   r\   c                 s    \         P                  ! V \        R RVR7      p\        VRRR7       \        VRRR7       V'       d    \        VR	R
R7       R# )r   T)r8   	directionrO   r\   rP   Nr   r_   ra   rc   re   rh   )rD   r   r	   r   )r   r\   rI   r   r   test_span_selector_dragr     sQ     T\,03EGD 4xZ8 4xX6 4zz:r   c                 s   \         P                  ! V \        R RR7      p\        P                  ! \
        4      ;_uu_ 4        \         P                  ! V \        RR7      pRRR4       RVn        \        P                  ! \
        4      ;_uu_ 4        RVn        RRR4       R#   + '       g   i     LK; i  + '       g   i     R# ; i)r   T)r8   r   rO   Zinvalid_direction)r8   r   Nr   Zinvalid_string)rD   r   r	   r%   r   r   r   r   r   r   test_span_selector_directionr     s    T\,02D
 
z	"	"##B.AC 
#  DN 
z	"	") 
#	" 
#	" 
#	"	"s   B"B5"B2	5C	c                 s<   \         P                  ! V \        R R\        RRR7      \        RR7      R7      p\	        VRRR7       VP
                  pVP                  R	R
R7       VP                   F  pK  	  VP                  R	R
R7       VP                   F  pK  	  R# )r   Trj   rk   rl   rn   ro   )r8   r   rO   r6   rp   rP   rq   rr   r   rm   Nr]   r_   )	rD   r   r	   rt   r   ru   rv   rw   rx   ry   r{   r   )test_span_selector_set_props_handle_propsr     s    T\,0&*S&D-1_>D
 4wJ7##FNNSN, ''' 	3/'''r   selectorspanZ	rectanglec                 sB   \        V R R7      pVR8X  d    \        P                  pRVR&   \        VR&   M\        P                  pV! R/ VB p\        VRRR7       \        VRRR7       R VR&   V! R/ VB p\        VRRR7       \        VRRR7       \        VRR	R
7       R# )T)r   rO   r   r   r   r8   rP   r   r   escaper   Nr   r   r_   )r   r   )rt   rD   r   r	   rE   r   r   )r   r   r.   ZSelectorrI   r   r   test_selector_clearr     s    RT*F6''*{!z,,fD4xZ8 4zz: &*F!"fD4xZ8 4zz: T>x0r   c                 s    VR 8X  d!   \         P                  ! V \        RRRR7      pM\         P                  ! V RR7      p\	        VRRR7       VR 8X  d   VP                  4        \	        VRR	R7       VR 8X  d   R# R# )
r   r   T)r8   r   rO   r   r}   rP   Nr   r_   )2   r`   )rD   r   r	   rE   r   r   )r   r   rI   r   r   test_selector_clear_methodr     sv    6##B049=? ((>4xZ8 6 	JJL
 4xY7 6r   c                 s>   \         P                  ! V \        R RR7      p\        P                  ! \
        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \
        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \
        4      ;_uu_ 4        VP                  R4       RRR4       VP                  R4       R#   + '       g   i     L; i  + '       g   i     Lr; i  + '       g   i     LI; i)r   Tr}   r   Nr   r   r   )rD   r   r	   r%   r   r   r   r   r   r   test_span_selector_add_stater   0  s    D,,02D 
z	"	"*+ 
#	z	"	"x  
#	z	"	"x  
# 	NN6 
#	"	"	"	"	"s$   C&=C99D&C6	9D		D	c                 s    . ROp\         P                  ! WRRR7      pVP                   F  pK  	  VP                  R4       VP	                  R4       VP                   F  pK  	  R# )rT   r   F)r/   TN)rT   rV   r   )rD   ZToolLineHandlesZartistsZset_visibleZset_animated)r   Z	positionsZtool_line_handlerz   r   r   test_tool_line_handler   >  s[    I..rl7<> #***   &!!$'"***r   r   c                 s   \         P                  ! ^^4      w  rVP                  ^
^.^
^.4       VP                  P	                  4        VP                  4       pVP                  4       p\        P                  ! V\        V RR7      pV R8X  d   TMTpRpRpTp	\        WWVR7       V R8X  d   ^ M^p
Wz,          W,          .pR# )r#   Tr}   r   rP   N)rN   g      '@)i   i   )r&   r'   plotr(   r)   Z
get_xboundZ
get_yboundrD   r   Zprintr   )r   r+   r   Zx_boundZy_boundrI   Zbound
press_data	move_datarelease_dataindexhandle_positionss   &           r   test_span_selector_boundr   Q  s    ll1a GCGGRHr2hJJOOmmoGmmoGE9$GD !L0GgE JIL4y9
 l*AE")<+>?r   ZQtAgg)Zskip_on_importerrorc            
     s  aa	a
 \         P                  ! ^ ^\         P                  ,          ^d4      o
\         P                  ! S
4      o	\        P
                  ! 4       w  rVP                  S
S	RR7      w  pVP                  . RR7      w  o\        P                  ! R4       VP                  V4       V P                  P                  V P                  4       VV	V
3R lp\        P                  ! WRVRRRR7      p^^.p^^.p\        VRV^ ,          V^,          ^R7       \        VR	V^ ,          V^,          ^R7       \        SP!                  4       R
4       VP#                  4        ^^ .p^^.p^^.p\        VRV^ ,          V^,          ^R7       \        VR	V^ ,          V^,          ^R7       \        SP!                  4       R4       \        VRV^ ,          V^,          ^R7       R# )zACheck that the animated artists changed in callbacks are updated.T)Zanimated皙?c                 s   < \         P                  ! SW34      w  r#SW# P                  4       pSP                  S\         P                  ! SV4      4       R # r   )r   ZsearchsortedmeanZset_dataZ	full_like)vminvmaxZindminZindmaxZvln2valuesxs   &&   r   r   Z:test_span_selector_animated_artists_callback.<locals>.mean~  sC    TL96!&&(QQ*+r   r   )r   r   rO   r\   r/   r9   r:   r=   gSG-?r>   NgȄC()r   linspaceZpiZsinr&   r'   r   ZpauseZdraw_artistr(   ZblitZbboxrD   r   r   r
   	get_ydataZupdate)r+   r   Zlnr   r   r   r   r   r   r   r   s           @@@r   ,test_span_selector_animated_artists_callbackr   m  s    	Aq255y#&AVVAYFllnGC
''!Vd'
+CB7727%DC
 IIcNNN2JJOOCHH, L04,037(,	.D QJAIT7*Q-z!}QOT89Q<y|AN CMMO%78KKM
 QJAIq6LT7*Q-z!}QOT89Q<y|AN CMMO%89T9LO?1.r   c                 s
   R  p\         P                  ! WRR7      pVP                  p\        P                  ! ^ ^^4      p\        P
                  ! . RO4      p\        P
                  ! . RO4      pV! WT4      p\        WV4       R# )c                      R # r   r   )Zargss   *r   r8   Z4test_snapping_values_span_selector.<locals>.onselect  s    r   r   )r   N)
gr   rk   rn   333333?ffffff??g
ףp=
@      @      @)
        r   r   rn   rn   rn         ?r   r   r   )rD   r   Z_snapr   r   r   r
   )r   r8   rI   Zsnap_functionsnap_valuesr   Zexpectr   r   "test_snapping_values_span_selectorr     sf     FDJJM++aB'KXXJKFXXJKF6/FF#r   c                 s   a  V 3R  lp\         P                  ! ^24      ^,          p\        P                  ! S VRVR7      pRVn        RVn        RVn        R# )c                 s   < R Sn         R# )TN)Z_got_onselect)r   r   r   s   &&r   r8   Z)test_span_selector_snap.<locals>.onselect  s    r   r   )r   r   N)i   rd   )r   ZarangerD   r   r~   r   )r   r8   r   rI   s   f   r   test_span_selector_snapr     sM      ))B-!#KH,79DDL DDLr   c                 sl    \         P                  ! V R  RRR7      pRVn        RpRp\        WVR7       R# )	c                 r   r   r   )arj      &&r   <lambda>Z,test_span_selector_extents.<locals>.<lambda>  s    r   r   T)r   rP   N)r   r^   )      )rT   r  )rD   r   r~   r   )r   rI   r   r   r   r   test_span_selector_extentsr    s;    
|$
D DL JL4|<r   r   )r   )r/   r6   c                 s    \         P                  ! \        R R7      p\        P                  ! V 3RV/VB p\        VR^d^d^R7       \        VR^}^}^R7       \        VR^^^R7       VP                  . RO4       R # )Nr7   r8   r9   r:   r=   r>   )r   r   r   )r   rC   r	   rD   LassoSelectorr   r   )r   r.   r8   rI   r   r   test_lasso_selectorr    sm     yyd6H  AhA&ADT7#S;T83c!<T9Cs1=$$%IJr   c           	      s    \         P                  ! \        R R7      p\        P                  ! W\        RRR7      R7      pVP                  pVP                  RRR7       R # )Nr7   rj   rk   r   )r8   r6   rq   rr   )r   rC   r	   rD   r  rt   ru   rv   )r   r8   rI   rz   r   r   test_lasso_selector_set_propsr    sN    yyd6H  '+#S'ACD ##F 	NNCN(r   c                 s0   \         P                  ! \        R R7      p\        P                  ! V R	V4      pVP
                  p\        P                  ! V R	V\        RRR^R7      R7      pVP
                  pVP                  R4       VP                  R4       R # )
Nr7   Z-Zdarkbluerk   )Z	linestyler   rm   Zlwr5   rq   rr   r   )	r   rC   r	   rD   ZLassor?   rt   Z	set_colorZ	set_alpha)r   r8   rI   r?   r   r   test_lasso_set_propsr	    sx    yyd6H==Z2D99D ==ZZsq:: ;D 99D
 	NN3NN3r   c                 sb   Rp\         P                  ! WR4      pVP                  ^ 4       VP                  4        R\	        V4      \	        V4      ^,           3 F@  p\
        P                  ! \        4      ;_uu_ 4        VP                  VR7       RRR4       KB  	  R FA  p\
        P                  ! \        4      ;_uu_ 4        VP                  ^VR7       RRR4       KC  	  VP                  R 4      pVP                  V4       R#   + '       g   i     K  ; i  + '       g   i     K  ; i)	r   )r   N)r   c                  r   r   r   r   r   r   r  Z#test_CheckButtons.<locals>.<lambda>  s    4r   )r   rj   c)TFT)Zinvalidr  )rD   r   
set_activer   Zlenr%   r   r   Z	TypeErrorZ
on_clickedZ
disconnect)r   ZlabelsZcheckZinvalid_indexZinvalid_valueZcid   &     r   test_CheckButtonsr  	  s    F  -@AE	Q 
KKM c&k3v;q=9]]:&&=1 '& : )]]9%%Qm4 &% ) 

<
(C	S '&& &%%s   >D	D	DD.toolbarc                 s   \         P                  P                  R V4       \        P                  ! \
        RR7      p\        P                  ! \
        RR7      p\        P                  ! V R4      pVP                  V4       VP                  V4       \        VR4       VP                  R4       VP                  4        VP                  4        \        VRRRR7       \        VRR	R
7       \        VRRR
7       R# )r  Nr7    Z_clickzx**2rn   r;   r<   Z	_keypressZ+r   Z5)r&   rcParamsZ_setr   rC   r	   rD   ZTextBoxZ	on_submitZon_text_changer   set_valZbegin_typingZstop_typing)r   r  Zsubmit_eventZtext_change_eventrI   r   r   test_TextBoxr     s     LLi)99$T:L		t$???2r"DNN< )* T8LL
 	 T82R0T;C(T;C(r   c                 sv    \         P                  ! V R4      pVP                  ^4       VP                  4        R# )Radio 1Nr  zRadio 2zRadio 3)rD   r   r  r   )r   Zradior   r   test_RadioButtonsr  @  s.      %FGE	Q 
KKMr   zcheck_radio_buttons.pngZmpl20)ZstyleZremove_textc                  s   \        4       p V P                  R R7      pVP                  RR7       VP                  R4      p\        P
                  ! VR4      pVP                  R4      p\        P                  ! VRR4      pVP                  R4      p\        P
                  ! VRR. ROR. RO/R. ROR. RO/R7      pVP                  R4      p\        P                  ! VRRR. ROR. RO/R. ROR. RO/R. RO/R	7      p	R
# )FZrootrr   )Zleftr   r   r   r   r   r   r   r   N)皙?r   rk   333333?r  )r  rn   rk   r  )zCheck 1zCheck 2zCheck 3)FTT)r  rr   rk   r  )i   r  i   )r   greenblue)r   Z	palegreenZ	lightblue)r  r   rk   r  )r   
get_figureZsubplots_adjustZadd_axesrD   r   r   )
r   r+   Zrax1Zrb1Zrax2Zcb1Zrax3Zrb3Zrax4Zcb4r,   r   test_check_radio_buttons_imager  J  s   	B
--U-
#CS!<<./D


t%F
GC<<./D


t%F24C <<./D


/68 ": "IK	LC <<./D


/1D68 ": "IK679Cr   Zpng)Z
extensionsc                 s   \         P                  ! V P                  4       R R.4       VP                  . . R7      pVP	                  RR.RR.VP
                  \        P                  R,          ^,          ^,          RR.R7       VP                  RRR VP
                  R	R
7       VP                  RRRVP
                  R	R
7       R# )teacoffeeZxticksZyticksr  	font.sizeZC0r@   )rX   sr
        ?r   rX   ZvaNUUUUUU?UUUUUU?)	rD   r   r'   add_subplotscatter	transAxesr&   r  textfig_testfig_refr   r   r   test_radio_buttonsr0  i  s    **,uh.?@			Br		2BJJSzC:,,{+a/A5$  IGGCer||GAGGCh",,8GDr   c                 s   R R.R^./pRRRRR^/p\         P                  ! VP                  4       RR	.W#R
7       \         P                  ! V P                  4       RR	.4      pVP                  V4       VP	                  / VCRR/C4       R# )r   r   r   r   r  r   r  	linewidthr   r!  r   r$  N      b@)rD   r   r'   set_label_propsZset_radio_props)r.  r/  r   r   cbr   r   test_radio_buttons_propsr5  s  s    UGZ"6Kfk1MK))+eX->%0K 
		h//1E83D	EB{# 8+8sK89r   c           	      s    \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! V RR.RRR/R7      pRRR4       R#   + '       g   i     R# ; i)	z"Both the \*activecolor\* parameter)Zmatchr   r!  r   r   r  )activecolorr   N)r%   ZwarnsZUserWarningrD   r   )r   Zrbr   r   !test_radio_button_active_conflictr7    sW    	kA
C 
C!!"uh&7U/:G.DF
C 
C 
C 
Cs   AA	c                 s    \         P                  ! VP                  4       R R.RR7       \         P                  ! V P                  4       R R.RR7      pRVn        R# )r   r!  r  )r6  r   N)rD   r   r'   r6  )r.  r/  r4  r   r   %test_radio_buttons_activecolor_changer8    sS    ))+eX->%,. 
		h//1E83D*/
1BBNr   c           	      s(   \         P                  ! V P                  4       R R.RR.4       VP                  . . R7      pVP	                  RR.RR.RVP
                  \        P                  R,          ^,          ^,          RR.R7       VP	                  RR.RR.R	VP
                  \        P                  R,          ^,          ^,          R
R
.R7       VP                  RRR VP
                  RR7       VP                  RRRVP
                  RR7       R# )r   r!  Tr"  r  r$  r#  r@   )ZmarkerrX   r$  r
  r   Zkr%  r   r&  Nr'  r(  )	rD   r   r'   r)  r*  r+  r&   r  r,  r-  r   r   test_check_buttonsr9    s    **,uh.?$N			Br		2BJJSzC:cR\\,,{+a/A5&&9I  KJJSzC:cR\\,,{+a/A5#s  EGGCer||GAGGCh",,8GDr   c           	      s   R R.R^./pRRRRR^/pRRR^/p\         P                  ! VP                  4       RR	.R
R
.W#VR7       \         P                  ! V P                  4       RR	.R
R
.4      pVP                  V4       VP	                  / VCRR/C4       VP                  R4      VR&   VP                  / VCRR/C4       R# )r   r   r   r   r  r   r  r1  r   r!  Tr  r$  Nr2  )rD   r   r'   r3  Zset_frame_propsZpopZset_check_props)r.  r/  r   r   r   r4  rL   r   test_check_button_propsr:    s    UGZ"6Kfk1MK{A6K))+eX->t%0%02 
		h//1E83D#Tl
,B{# 8+8sK89  +{;K8+8sK89r   c            
      s   \         P                  ! 4       w  r\        P                  ! \        4      ;_uu_ 4        \
        P                  ! VR RRRR7       RRR4       \        P                  ! \        4      ;_uu_ 4        \
        P                  ! VR RRRR7       RRR4       R#   + '       g   i     LX; i  + '       g   i     R# ; i)r  r         8@      $@)r   labelvalminvalmax	sliderminN)r   r=  r>  r?  	slidermax)r&   r'   r%   r   r   rD   Slider)r+   r   s     r   'test_slider_slidermin_slidermax_invalidrC    s    llnGC	z	"	""Bs4!%	' 
# 
z	"	""Bs4!%	' 
#	" 
#	" 
#	"	"s   B& B9&B6	9C
	c            	      s    \         P                  ! 4       w  r\        P                  ! VR RRRR7      p\        P                  ! VR RRRVR7      p\        P                  ! VR RRRVR7      pR	# )
r  r   r;  r   r   r=  r>  r?  valinitr   )r   r=  r>  r?  rE  r@  r<  )r   r=  r>  r?  rE  rA  Nr&   r'   rD   rB  )r+   r   Zslider_slider       r   test_slider_slidermin_slidermaxrI    sb    llnGCnn"S%(*G ^^rC$'7<F ^^rC$(G=Fr   c                  s    \         P                  ! 4       w  r\        P                  ! VR RRRR7      p\        P                  ! VR RRRR7      pR# )r  r   r;  rD  g      9@Ng      $rF  r+   r   rG        r   test_slider_valmin_valmaxrL    sC    llnGC^^rC$)+F ^^rC$(*Fr   c            	      s    \         P                  ! 4       w  r\        P                  ! VR RRR^R7      p\        P                  ! VR RRR. ROR7      pR# )r  r   r;  g&@)r   r=  r>  r?  rE  ZvalstepN)r    r#   r   g333333@rF  rJ  rK  r   test_slider_valstep_snappingrM    sI    llnGC^^rC$(!5F ^^rC$(2CEFr   c            	      sz   \         P                  ! 4       w  r\        P                  ! VR ^ ^^RR7      pVP	                  ^
4       VP
                  P                  4       P                  VP                  P                  4       4      p\        VP                  . RO4       \         P                  ! 4       w  r\        P                  ! VR ^ ^^RR7      pVP	                  ^
4       VP
                  P                  4       P                  VP                  P                  4       4      p\        VP                  . RO4       R# )r  r   )r   r=  r>  r?  rE  r   r   N)r    r%  竪?rn   )r%  r    rn   rN  )r&   r'   rD   rB  r  polyget_extentstransformedr+  invertedr
   Zbounds)r+   r   rG  boxrH  r   test_slider_horizontal_verticalrT    s    llnGC^^rAb$&LBF
NN2 ++
!
!
#
/
/0E0E0G
HCCJJ 34llnGC^^rAb$&J@F
NN2 ++
!
!
#
/
/0E0E0G
HCCJJ 34r   c                  s    \         P                  ! 4       w  r\        P                  ! VR ^ ^RR7      pVP	                  R4       VP                  4        R# )r  rn   rD        ?N)r&   r'   rD   rB  r  resetrJ  rK  r   test_slider_resetrW    s:    llnGC^^rAaLF
NN4
LLNr   r   c           	      sX  a  S R 8X  d   . R	OpM. R
Op\         P                  ! 4       w  r#\        P                  ! VRRRS RR.R7      pVP                  P                  4       P                  VP                  P                  4       4      p\        VP                  4       P                  4       V,          . RO4       \        VP                  R4       V 3R lpVP                  R4       \        VP                  R4       \        V! V4      R4       VP                  P                  4       P                  VP                  P                  4       4      p\        VP                  4       P                  4       V,          . RO4       VP                  R4       \        VP                  R4       \        V! V4      R4       VP                  R4       \        VP                  R4       \        V! V4      R4       VP                  4        \        VP                  R4       \        V! V4      R4       R# )r   r  r   r   r   (\?r   r=  r>  r?  r   rE  c                 s   < SR 8X  d1   V P                    Uu. uF  qP                  4       ^ ,          NK  	  up# V P                    Uu. uF  qP                  4       ^ ,          NK  	  up# u upi u upi )r   )Z_handlesr   Z	get_xdata)rG  Zhr   s   & r   r   Z+test_range_slider.<locals>.handle_positions  s]    *$.4oo>oKKM!$$o>>.4oo>oKKM!$$o>> ?>s   A)A.Nr#   r       r    r    r#   r    r[  )r   r%  rX  rU  )r   rX  )皙?r   )r]  r%  r   rU  )rk   r   )r   rk   )r  r^   r"   )r&   r'   rD   RangeSliderrO  rP  rQ  r+  rR  r
   
get_pointsflattenZvalr  rV  )r   idxr+   r   rG  rS  r   s   f      r   test_range_sliderrb    s   j llnGC  RC[dF ++
!
!
#
/
/0E0E0G
HCCNN$,,.s35LM FJJ,? NN:FJJ
+$V,j9
++
!
!
#
/
/0E0E0G
HCCNN$,,.s35IJ
NN:FJJ
+$V,j9
NN8FJJ'$V,f5
LLNFJJ,$V,k:r   c           	      st   V R 8X  d   . ROpM. ROp\         P                  ! 4       w  r#\        P                  ! VRRRV ^ ^ .R7      pVP                  P                  4       P                  VP                  P                  4       4      p\        VP                  4       P                  4       V,          . RO4       R# )	r   r  r   r   rY  NrZ  r\  )r    r%  r    rU  )r&   r'   rD   r^  rO  rP  rQ  r+  rR  r
   r_  r`  )r   ra  r+   r   rG  rS  r  r   "test_range_slider_same_init_valuesrc  1  s    j llnGC  bSkQF ++
!
!
#
/
/0E0E0G
HCCNN$,,.s35GHr   c                s    \        4       p\        P                  ! \        RR7      p\        P
                  ! V3RV/VB pV  F  w  rx\        Wg3/ VB  K  	  R# )a  
Helper function to test Polygon Selector.

Parameters
----------
event_sequence : list of tuples (etype, dict())
    A sequence of events to perform. The sequence is a list of tuples
    where the first element of the tuple is an etype (e.g., 'onmove',
    'press', etc.), and the second element of the tuple is a dictionary of
     the arguments for the event (e.g., xdata=5, key='shift', etc.).
expected_result : list of vertices (xdata, ydata)
    The list of vertices that are expected to result from the event
    sequence.
selections_count : int
    Wait for the tool to call its `onselect` function `selections_count`
    times, before comparing the result to the `expected_result`
**kwargs
    Keyword arguments are passed to PolygonSelector.
Nr7   r8   )r   r   rC   r	   rD   PolygonSelectorr   )	event_sequenceexpected_resultZselections_countr.   r   r8   rI   etype
event_argss	   &&&,     r   check_polygon_selectorri  B  sO    * 
Byyd6H""2CCFCD-+
+  .r   c                 sT    R \        WR7      3R\        WR7      3R\        WR7      3.# )r=   r  r9   r>   rt   r  r  r   polygon_place_vertexrk  d  s3    t%56d455679 9r   c           	      sX    R \        WR7      3R\        W^R7      3R\        W^R7      3.# )r=   r  r9   r:   r>   rj  r  r  r   polygon_remove_vertexrl  j  s9    t%56dA>?5a@AC Cr   draw_bounding_boxc                 s   \         P                  ! \        V R 7      p. ROp. \        ^2^24      O\        ^^24      O\        ^2^4      O\        ^2^24      OpV! W2^4       . ROp. \        ^2^24      O\        ^^24      OR\	        RR7      3NR\	        ^2^2R7      3NR\	        ^2^2R7      3NR\	        ^K^2R7      3NR\	        ^K^2R7      3NR\	        RR7      3N\        ^2^4      O\        ^K^24      OpV! W2^4       . ROp. \        ^2^24      O\        ^^24      OR\	        R	R7      3NR\	        ^d^dR7      3NR\	        ^d^dR7      3NR\	        ^d^}R7      3NR\	        ^d^}R7      3NR\	        R	R7      3N\        ^2^4      O\        ^2^K4      OpV! W2^4       . ROp. \        ^2^24      O\        ^^24      O\        ^2^4      O\        ^2^24      OR\	        ^2^2R7      3NR\	        ^2^2R7      3NR\	        ^K^2R7      3NR\	        ^K^2R7      3NpV! W2^4       . ROp. \        ^2^24      O\        ^^24      O\        ^2^4      O\        ^2^24      OR\	        R	R7      3NR\	        ^d^dR7      3NR\	        ^d^dR7      3NR\	        ^}^}R7      3NR\	        ^}^}R7      3NR\	        R	R7      3NpV! W2^4       . ROpR\	        RR7      3R\	        ^d^dR7      3R\	        ^d^dR7      3R\	        ^}^}R7      3R\	        ^}^}R7      3R\	        RR7      3R\	        R	R7      3R\	        ^d^dR7      3R\	        ^d^dR7      3R\	        ^}^}R7      3R\	        ^}^}R7      3R\	        R	R7      3.\        ^2^24      O\        ^^24      O\        ^2^4      O\        ^2^24      OpV! W2^4       . ROp. \        ^2^24      O\        ^^24      OR\	        R
R7      3NR\	        R
R7      3N\        ^2^24      O\        ^^24      O\        ^2^4      O\        ^2^24      OpV! W2^4       R# )rm  r   r   r   r=   r  r9   r>   Zon_key_releaser   r   Nr   r   r   r   r   r   ))K   r   rq  rr  ))r   rs  )r   rs  rr  ))rs  rs  )rf   rs  )rs  rf   )	functoolsZpartialri  rk  rt   )rm  Zcheck_selectorrf  re  r   r   test_polygon_selectorru  p  sa   &&2CEN 7O	b"	%	c2	& 
b#	& 
b"	%	N >A6 7O	b"	%	c2	& 
),- 
4b+,	
 
$Rr*+ 
4b+, 
Dr,- 
4I./ 
b#	& 
b"	%N >A6 7O	b"	%	c2	& 
'*+ 
4c-.	
 
$S,- 
4c-. 
Ds#./ 
4G,- 
b#	& 
b"	%N >A6 7O		b"	%		c2	&	 
b#	&	 
b"	%		
 
4b+,	 
$Rr*+	 
4b+,	 
Dr,-	N >A6 7O	b"	%	c2	& 
b#	& 
b"	%	
 
'*+ 
4c-. 
$S,- 
4c-. 
Ds#./ 
4G,-N >A6 7O	),-	4c-.	$S,-	4c-.	Ds#./	4I./	'*+	4c-.	$S,-	4c-.	Ds#./	4G,- 
b"	% 
c2	& 
b#	&  
b"	%!N$ >A6 7O		b"	%		c2	&	 
(+,	 
4H-.		
 
b"	%	 
c2	&	 
b#	&	 
b"	%	N >A6r   c                 s   \         P                  ! V \        R RR7      \        RR7      VR7      p. \        ^2^24      O\        ^^24      O\        ^2^4      O\        ^2^24      OpV F  w  rE\	        W$3/ VB  K  	  VP
                  pVP                  RRR7       VP                   F  pK  	  VP                  RRR7       VP                   F  pK  	  R# )	rj   rk   r   rn   ro   )r6   rp   rm  rq   rr   N)	rD   rd  rt   rk  r   ru   rv   rw   rx   )r   rm  rI   re  rg  rh  rz      &&     r   ,test_polygon_selector_set_props_handle_propsrw    s    ""2)-Cs)C0435FHD
	b"	%	c2	& 
b#	& 
b"	%	N  .+
+  . ##F 	NNCN( ''' 	3/'''r   c                 s    V P                  4       pVP                  4       p\        P                  ! VR R/R7      pRVn        R# )ZvisibleFr5   N)rk   r   rr   r   )r'   rD   rE   r~   )r.  r/  ax_testZ_rI   r   r   test_rect_visibilityry    s>     !GA$$WY4FGD'DLr   ra  c                 s`   . ROp\        V^ ,          !  \        V^,          !  \        V^,          !  \        V^ ,          !  .pVP                  V \        ^^4      4       VP                  \        ^^4      4       \        P
                  ! \        P                  V. 4      p\        W2^VR7       R# r   rn  Nro  )	rk  ZinsertZappendrl  rt  ZreduceoperatorZiaddri  )ra  rm  vertsre  r   r   test_polygon_selector_remover}    s     -E*E!H5*E!H5*E!H5*E!H5	7N #3C=>/S9:%%hmm^RHN>!->@r   c                 s    . ROp. \        V^ ,          !  O\        V^,          !  O\        V^,          !  O\        V^ ,          !  O\        V^ ,          !  Op\        W!R,          ^V R7       R# )r   :r#   NNrn  Nro  )rk  rl  ri  )rm  r|  re  r{   r   (test_polygon_selector_remove_first_pointr~  !  s    ,E	uQx	(	uQx	( 
uQx	( 
uQx	(	
 
a	)N >9a->@r   c                 sN   . ROp. \        V^ ,          !  O\        V^,          !  O\        V^,          !  O\        V^ ,          !  O\        V^,          !  O\        V^,          !  O\        V^,          !  Op\        P                  ! WR7      pV F  w  rV\	        WE3/ VB  K  	  R# rz  )rk  rl  rD   rd  r   )r   rm  r|  re  rI   rg  rh  rv  r   test_polygon_selector_redrawr  /  s    ,E
	uQx	(
	uQx	(
 
uQx	(
 
uQx	(	
 
a	)
 
a	)
 
uQx	(
N ""2KD-+
+  .r   c                 sh   . ROpV P                  4       p\        P                  ! WBR7      pW5n        VP                  4       p\        P                  ! WbR7      p. \	        V^ ,          !  O\	        V^,          !  O\	        V^,          !  O\	        V^ ,          !  OpV F  w  r\        Wy3/ V
B  K  	  R# )r   rn  N))r   r]  )rn   r   )rr   rk   )r)  rD   rd  r|  rk  r   )r.  r/  rm  r|  rx  Z	tool_testZax_refZtool_refre  rg  rh  s   &&&        r   "test_polygon_selector_verts_setterr  F  s     1E""$G''UIO   "F&&vSH	uQx	(	uQx	( 
uQx	( 
uQx	(	N  ./J/  .r   c                 s&   V P                  R	R	R7       . R
Op. \        V^ ,          !  O\        V^,          !  O\        V^,          !  O\        V^,          !  O\        V^ ,          !  Op\        P                  ! V RR7      pV F  w  rE\	        W43/ VB  K  	  V P
                  pV P                  RR7      P                  p\        RV.VP                  R4      O^N5!  P                  4        \        RV.VP                  R4      O5!  P                  4        \        RV.VP                  R4      O^N5!  P                  4        \        P                  P                  VP                  . RO4       \        RV.VP                  R4      O^N5!  P                  4        \        RV.VP                  R4      O5!  P                  4        \        RV.VP                  R4      O^N5!  P                  4        \        P                  P                  VP                  . RO4       \        P                  P                  VP                  P                   R4       \        RV.VP                  R4      O^N5!  P                  4        \        RV.VP                  R4      O^N5!  P                  4        \        P                  P                  VP                  . RO4       \        P                  P                  VP                  P                   R4       R# )r^   )ZxlimZylimTrn  r  Zbutton_press_eventZmotion_notify_eventZbutton_release_eventN)ir   ))rT   r    )r    rT   )rT   (   )r  rT   )r  r  rS   ))r^   r    r]   )r^   rT   )rT   r^   r   rU   rV   rT   )r  rT   rV   rV   r  r  rV   )      4@      D@r  r  )r  r  r  )r  r  g      >@r  )Zsetrk  rD   rd  r   rW   r  r(   r   rX   Z_processr   testingr
   r|  Z_boxr~   )r   r|  re  rI   rg  rh  Ztr(   s   &       r   test_polygon_selector_boxr  \  s   FF		F*2E	uQx	(	uQx	( 
uQx	( 
uQx	(	
 
uQx	(N ""2>D-+
+  .
 	A]]]%,,F fA'({{8'<A>?AAIv?()H(=??GxzC)*X)>C@ACCK8:JJ

:< fA'({{8'<A>?AAIv?()H(=??GxzC)*X)>C@ACCK8:JJ

<> JJ		35 fA'({{8'<A>?AAIC)*X)>C@ACCK8:JJ

24JJ		35r   c                 s   \         P                  ! \        R R7      p\        P                  ! W4      p. RO. RO3 F  pV F%  w  rE\        WE4       F  w  rg\        W&3/ VB  K  	  K'  	  VP                  p\        P                  P                  VP                  4       V4       VP                  4        \        P                  P                  VP                  4       R.4       K  	  R # )Nr7   )rp  rq  rr  rp  )rp  )rA   r   rr  rp  r!   )r   rC   r	   rD   rd  rk  r   ru   r   r  Zassert_equalZ
get_xydatar   )	r   r8   rI   Zresultr   Zyrg  rh  rz   r   r   "test_polygon_selector_clear_methodr    s    yyd6H""20D==?DA%9!%?!3
3 &@  ''
 	

 1 1 3V< 	




 1 1 3fX>!?r   horizOnvertOnc                 s   \         P                  ! 4       pVP                  ^RR7      w  r4\         P                  ! 4       P                  4       p\        P                  ! RW53RWR7      p\        VRRR7      pVP                  V4       VP                  P                  4        VP                   F  pK  	  VP                   F  pK  	  VP                  '       * Vn        VP                  '       * Vn        \        VRRR7      pVP                  V4       \        VR	R	R7      pVP                  V4       VP                   F  pK  	  VP                   F  pK  	  R# )
r    T)ZsharexNF)r/   r  r  rn   r%  r  rU  )r&   Zfigurer'   rD   ZMultiCursorr   r=   r(   r)   ZvlinesZhlinesr  r  )	r  r  r+   Zax1Zax3Zax2ZmultiZeventZls	   &&       r   test_MultiCursorr    s     **,Ca-JS
**,


!C sj%E s"C0E	LLJJOO \\\\\\ %EM||#ELs"C0E	LL s#S1E	LL\\\\\\r   )i<   rs  r  )r   r   )r@   Ztoolbar2Ztoolmanager)r#   r    r[  )grt  r*   r{  Zunittestr   Zmatplotlib.backend_basesr   Zmatplotlib.colorsZcolorsZmcolorsr$   rD   Zmatplotlib.pyplotZpyplotr&   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.testing.widgetsr   r   r   r   r	   Znumpyr   Znumpy.testingr
   r%   Zfixturer   r-   ZmarkZparametrizert   rM   r[   ri   r|   r   r   r   r   r   rE   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zbackendr   r   r   r  r  r  r	  r  r  r  r  r0  r5  r7  r8  r9  r:  rC  rI  rL  rM  rT  rW  rb  rc  ri  rk  rl  ru  rw  ry  r}  r~  r  r  r  r  r  r   r   r   <module>r     s    	   / # $  O: :  )   $0N Fa "rh7t	$ 2 '9:1b'At9q"g)FG1b'At9q"g)FG  H H ; F 9* (+-.%.%*)* JF tUm4F; 5F;R tUm4F3 5F3R<C~ )!33W5L5LMODODB
% /%?7 @7B56D> u6" 7"  /$?< @<, ?5$r489t1~&5$Tt_565$401	B 110 u6" 7" /$?* @*8 -e}=& >&2*$), fk%:;) <): fk%:;( <(23& &@A< B<6 W$75 85p$$"#" Fd/0a $ 
K
K%#*. $GH- I->% ,-W$O9 P9< (E )E (: ):N ( ) (E )E (: ):,'%'5( z(BC); D);X z(BCI DI ;D9C ,udm<n7 =n7b ,udm<) =)@ (( )( 	*,udm<@ = +@" ,udm<
@ =
@ ,udm<$ =$, ,udm<(0 ) =0(55p?. UDM2E4=12+ 2 32+r   