+
     ]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VP                  ^d8X  g   Q hVP                  ^d8X  g   Q hVP                  ^8X  g   Q hVP                  ^8X  g   Q hV/ 8X  g   Q hR # )NZspecZreturn_valueonselectpressxdataydatar0   onmovereleaseZdrawtype)Zerr_msg)linenone)      Y@d      rC   rB   )rB   rC   rC   rB   rB   )r   Mockr	   widgetsRectangleSelectorr   Zgetr
   geometryassert_called_once	call_argsr;   r<   )r   r.   r8   toolepresserelease   &&    r   test_rectangle_selectorrN   @   s	    yyd6H$$RE(EfEDT7#S;T83c!< T9Cs1=zz*d#+;;324 $	/
 !!)!3!3V<<3<<3>>S   >>S   R<<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                  '       d   Q hVP                  4        \        V	RRR7       V	P                  '       g   Q hVP                  4        VP                  4        \        WV3W53R7       V	P                  '       d   Q hVP                  4        VP                  w  w  rpV
P                  V8X  g   Q hV
P                  V8X  g   Q hVP                  V8X  g   Q hVP                  V8X  g   Q hV/ 8X  g   Q hR # )Nr7   r1   T)r8   interactiver4   r2   r3   startend   rU      rW   )r   rD   r	   	transData	transformrE   rF   r   _selection_completedassert_not_calledrH   
reset_mockrI   r;   r<   )r   r4   r2   Zx1r3   Zy1r8   Zx0Zy0rJ   rK   rL   r.   s   &&&&&&       r   test_rectangle_minspanr]   _   so   
 yyd6H"X ll44bX> ll44bX>? $$R0:.6KD 4BxbX6((((( 4xX6$$$$$! 4BxbX6(((((!!)!3!3V<<2<<2>>R>>RR<<r   zdrag_from_anywhere, new_centerFc                 s    \         P                  ! V R VR7      p\        VRRR7       VP                  R8X  g   Q h\        VRRR7       VP                  V8X  g   Q h\        VR	R
R7       VP                  R8X  g   Q hR# )T)rP   drag_from_anywhererQ   Nr    
   rB   x   )2   A      i   #   rf         rk   i   )i   i   )rE   rF   r   center)r   r^   Z
new_centerrJ   s   &&& r   test_rectangle_dragrn      s|     $$RT8JLD 4wJ7;;(""" 4xX6;;*$$$ 4zz:;;*$$$r   c           	      s   \         P                  ! V R \        RRR7      \        RR7      R7      p\        VRRR7       VP                  pVP                  4       \        P                  ! RRR7      8X  g   Q hVP                  RR	R7       VP                  4       \        P                  ! RR	R7      8X  g   Q hVP                   F1  pVP                  4       R
8X  g   Q hVP                  4       R8X  d   K1  Q h	  VP                  RR	R7       VP                   F1  pVP                  4       R8X  g   Q hVP                  4       R	8X  d   K1  Q h	  R# )Tb皙?r   alpha      ?rr   )rP   r6   handle_propsrQ   r333333?black)markeredgecolorrr   Nr_   ra   )rE   rF   dictr   _selection_artistget_facecolormcolorsto_rgba	set_props_handles_artistsget_markeredgecolor	get_alphaset_handle_propsr   rJ   artist   &  r   .test_rectangle_selector_set_props_handle_propsr      s&   $$RT+/#S+I26S/CD 4wJ7##F!W__S%DDDDNNSN,!W__S%DDDD''))+w666!S((( ( 	#S9''))+s222!S((( (r   c                 s   \         P                  ! V R R7      p\        VRRR7       VP                  R8X  g   Q hVP                  pV^,          V^,          rCV^
,           V^,           re\        WV3WV3R7       VP                  V^ ,          WR^,          V38X  g   Q hVP                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           rCV^
,           Tre\        WV3WV3R7       VP                  V^ ,          WR^,          V^,          38X  g   Q hVP                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           rCV^,           Tre\        WV3WV3R7       VP                  WR^,          V^,          V^,          38X  g   Q hVP                  pV^ ,          V^,          rCV^,           V^,           re\        WV3WV3R7       VP                  WR^,          Wb^,          38X  g   Q hR# )TrP   rQ   Nr_   ra   )        rA         $@      ^@)rE   rF   r   extents)r   rJ   r   r;   r<   	xdata_new	ydata_new   &      r   test_rectangle_resizer      s   $$RT:D4wJ7<<4444 llG1:wqz5 2:uqyy4u~I3IJ<<GAJ	1:yIIII llG1:wqzWQZ'!*-D,II5 2:uy4u~I3IJ<<GAJ	1:wqzJJJJ llG1:wqzWQZ'!*-D,II5 2:uy4u~I3IJ<<Iqz71:wqzJJJJ llG1:wqz5 2:urzy4u~I3IJ<<Iqz9ajIIIIr   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   rQ   unsupported_stateNclearmovesquarerm   F   rd   }      )rE   rF   r   r%   raises
ValueError	add_stater   rJ      & r   test_rectangle_add_stater      s    $$RT:D4xZ8	z	"	"*+ 
# 
z	"	"w 
#NN6NN8NN8 
#	" 
#	"s   	CC'C$	'C7	r   c                 s   \         P                  ! V R R7      p\        VRRR7       VP                  R	8X  g   Q h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                  V^ ,          V,
          V	V^,          V,
          V
38X  g   Q hVP                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           re^
pWW,           Tr\        W%V3W3VR7       VP                  V^ ,          V,
          V	V^,          V^,          38X  g   Q hVP                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           reR
pWW,           Tr\        W%V3W3VR7       VP                  V^ ,          V,
          V	V^,          V^,          38X  g   Q hVP                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           re^pWW,           Tr\        W%V3W3VR7       VP                  W^,          V,
          V^,          V^,          38X  g   Q hVP                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           reRpWW,           Tr\        W%V3W3VR7       VP                  W^,          V,
          V^,          V^,          38X  g   Q hVP                  pV^ ,          V^,          re^^rWW,           Wh,           r\        W%V3W3VR7       VP                  W^,          V,
          W^,          V,
          38X  g   Q hR# )Tr   rQ   rm   NcontrolrR   rS   keyr   r   )     Q@     @_@     @P@g     @`@rE   rF   r   r   r   r   r   rJ   Zuse_keyr   r;   r<   xdiffydiffr   r      &&         r   test_rectangle_resize_centerr      s\   $$RT:D4xZ8<<5555x  llG1:wqz5q5 =%-y4u~I3I <<GAJ.	#AJ.	; ; ; ; llG1:wqzWQZ'!*-D,II5E =%y4u~I3I <<GAJ.	#AJ
4 4 4 4 llG1:wqzWQZ'!*-D,II5E =%y4u~I3I <<GAJ.	#AJ
4 4 4 4 llG1:wqzWQZ'!*-D,II5E =%y4u~I3I <<IqzE'9#AJ
4 4 4 4 llG1:wqzWQZ'!*-D,II5E =%y4u~I3I <<IqzE'9#AJ
4 4 4 4 llG1:wqz5r5 =%-y4u~I3I <<IqzE'9%qzE'9; ; ; ;r   c                 s   \         P                  ! V R R7      p\        VRRR7       VP                  R	8X  g   Q h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                  V^ ,          V	V^,          V^,          V,           38X  g   Q hVP                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           re^
pWW,           Tr\        W%V3W3VR7       VP                  V^ ,          V	V^,          V^,          V,           38X  g   Q hVP                  pV^,          V^,          V^,          V^,          ,
          ^,          ,           reR
pWW,           Tr\        W%V3W3VR7       VP                  V^ ,          V	V^,          V^,          V,           38X  g   Q hVP                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           re^pWW,           Tr\        W%V3W3VR7       VP                  W^,          V^,          V^,          V,
          38X  g   Q hVP                  pV^ ,          V^,          V^,          V^,          ,
          ^,          ,           reRpWW,           Tr\        W%V3W3VR7       VP                  W^,          V^,          V^,          V,
          38X  g   Q hVP                  pV^ ,          V^,          re^^rWW,           Wh,           r\        W%V3W3VR7       VP                  V^ ,          V,           V^,          W^,          38X  g   Q hR# )Tr   rQ   r   Nshiftr   r   rb   is   r   r   r   g     \@r   r   r   r   r   r   test_rectangle_resize_squarer   .  s\   $$RT:D4xZ8<<5555x  llG1:wqz5q5 =%-y4u~I3I <<GAJ	#AJ
U(:< < < < llG1:wqzWQZ'!*-D,II5E =%y4u~I3I <<GAJ	#AJ
U(:< < < < llG1:wqzWQZ'!*-D,II5E =%y4u~I3I <<GAJ	#AJ
U(:< < < < llG1:wqzWQZ'!*-D,II5E =%y4u~I3I <<Iqz#AJ
U(:< < < < llG1:wqzWQZ'!*-D,II5E =%y4u~I3I <<Iqz#AJ
U(:< < < < llG1:wqz5r5 =%-y4u~I3I <<GAJ.
%qz3 3 3 3r   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   rQ   r   rm   Nr   r   r   r   r   )rE   rF   r   r   r
   r   )	r   rJ   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                 s   V! V R R7      p\        VRRR7       VP                  R8X  g   Q h\        VP                  4      ^ 8X  g   Q h\	        VRRR7       VP                  R08X  g   Q h\        VP                  4      ^8X  g   Q h\        VRRR7       \	        VRRR7       \        VP                  4      ^ 8X  g   Q hVP                  R8X  g   Q h\        VP                  RRR	7       ^-Vn        VP                  ^-8X  g   Q h\        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   rQ   on_key_pressrv   r   rotateg(\9@g{Gz?)ZatolZunvalid_valueNrB   rB   r      rB   r   rB   r   )rb      )gR]@     xa@g=
ףp[@g     V@)g     W@g=
ףp]@g     b@g(\^@)n   r   )r      )rB   r   rB   g
ףp=b@)r   r   len_stater   r
   ZrotationcornersnparrayrE   rF   r%   r   r   r{   Zrotation_point)r   r   rJ      && r   test_rectangle_rotater     su    "$/D4zz:<<////t{{q    T>s+;;8*$$$t{{q   4zz:T>s+t{{q   <<////DMM5t4DM==BDLLHH==? @FJL
 4zz:DLL"<4H222]]:&&4CD""1 '& 3&&&s   F00G	c                 sv   \         P                  ! V R R7      p\        VRRR7       VP                  R8X  g   Q h\	        VP
                  4      ^ 8X  g   Q hR F]  pVP                  V4       \	        VP
                  4      ^8X  g   Q hVP                  V4       \	        VP
                  4      ^ 8X  d   K]  Q h	  R# )Tr   rQ   Nr   r   r   )r   r   rm   )rE   rF   r   r   r   r   r   Zremove_state)r   rJ   stater   r   test_rectangle_add_remove_setr     s    $$RT:D4zz:<<////t{{q   /u4;;1$$$% 4;;1$$$	 0r   use_data_coordinatesc                 sd   V P                  R 4       \        P                  ! V RVR7      p\        VR	R
R7       VP                  R8X  g   Q h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)rP   r   rQ   r   rm   g      G@g     `@Nr   r   r   )
set_aspectrE   rF   r   r   r   r
   Z_aspect_ratio_correction)r   r   rJ   r   r;   r<   Zwidthr   Zycenterr   r   Zychanges   &&          r   *test_rectangle_resize_square_center_aspectr     st   MM#$$RT:NPD 4xZ8<<5555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                sP   \         P                  ! V ^
RR7      pR
Vn        \        VRRR7       VP                  R8X  g   Q h\        VRRRR7       VP                  R8X  g   Q h\        VRRRR7       VP                   Uu. uF  p\	        V4      NK  	  ppV. RO8X  g   Q h\        VRRRR7       VP                   Uu. uF  p\	        V4      NK  	  ppV. RO8X  g   Q hVP
                  P                  R8X  g   Q h\        VP
                  R,          R^d.4       R	# u upi u upi )z'For ellipse, test out the key modifiersT)
grab_rangerP   rQ   r   r   r   z
ctrl+shiftr   NrB      rB   r   r   r   )r   r   )rb      rb   r   r   )K   r   r   r   r`   r`   )rh   rW   )r`   rh   r`   rh   r   )r   r   r   r   )r    iI   ):NNNr    )rE   EllipseSelectorr   r   ZintrG   Zshaper
   )r   rJ   Zer      &   r   test_ellipser   	  s   ""2"$GD'DL 4zz:<<//// 4zzyI<<---- 4xX7C#||,|!s1v|G,&&&& 4zz|L#||,|!s1v|G,((((==')))DMM$'#s4 -
 -s   D?D#c           	      s   \         P                  ! V ^
RRRRR/R7      pR	Vn        \        VP                  R
4       VP                  R	8X  g   Q h\        VP
                  R4       VP                  R	8X  g   Q h\        VRRR7       VP                  R8X  g   Q h\        VRRR7       VP                  R8X  g   Q h\        VRRR7       VP                  R8X  g   Q h\        P                  ! VP                  P                  ^ ,          P                  4       R4      '       g   Q h\        P                  ! VP                  P                  ^ ,          P                  4       R4      '       g   Q hR# )r`   TZmarkerfacecolorrv   ry   ro   )r   rP   ru   rQ   Nr   ))rB   r   r   rB   )rB   rB   r   r   ))rB   r   r   r   )r   rB   r   r   r   )rb   rb   )rb   r   rb   r   )   r   )l      r   r   r   )r`   rB   r`   rB   )rE   rF   r   r
   r   Zedge_centersr   r}   
same_colorZ_corner_handlesartistsZget_markerfacecolorr   r   r   r   test_rectangle_handlesr   $  s`   $$RBD3Dc3Dc3KLD (DLDLL"NO<<////D%%HJ<<//// 4zz:<<//// 4zz:<<//// 4xZ8<<---- $$Q';;=sD D D D$$Q';;=sD D D Dr   rP   c                 s,   \         P                  ! \        R R7      p\        P                  ! WVR7      p\        VRRR7       VP                  4        VP                  R8X  g   Q hVP                  4        \        VRRR7       VP                  4        R # )Nr7   )r8   rP   rQ   rB   r   r   rb   rA        b@g     [@r   r`   rB   )	r   rD   r	   rE   rF   r   rH   r   r\   r   rP   r8   rJ      &&  r    test_rectangle_selector_onselectr   C  su     yyd6H$$RTD4zz:!<<7777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                  R8X  g   Q hVP                  4        \        VRRR7       V'       d&   VP                  4        VP                  R8X  g   Q hR # VP                  4        VP                  R	8X  g   Q hR # )
Nr7   )r8   r   rQ   r   r   r   r   r   r   r   )r         d@r   r   )
r   rD   r	   rE   rF   r   rH   r   r\   r[   )r   r   r8   rJ   r   r   &test_rectangle_selector_ignore_outsider   T  s    yyd6H$$R:NPD4zz:!<<7777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   rD   r	   r   ZtwinxrE   SpanSelectorr   assert_called_once_with)r   orientationr   r.   r8   r=   ZtaxrJ   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                  R8X  g   Q hVP                  4        \        VRRR7       VP                  4        R # )	Nr7   r   r   rQ   r   )r   rB   )rB   r   r   )	r   rD   r	   rE   r   r   rH   r   r\   r   r   r   test_span_selector_onselectr     sy    yyd6Hl,79D 4zz:!<<:%%%4yi8!r   c                 sh   \         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                  R8X  g   Q hVP                  4        VP                  4        \        VRR	R7       V'       d6   VP                  4        VP                  4        VP                  R8X  g   Q hR # VP                  4        VP                  4        VP                  R
8X  g   Q hR # )Nr7   r   )r   r   rQ   r   r   )rB   r   r   r   )r   r   )
r   rD   r	   rE   r   r   rH   r   r\   r[   )r   r   r8   r=   rJ      &&   r   !test_span_selector_ignore_outsider     s    yyd6HYYDt4Fl065IKD 4zz:!
<<:%%%
4zz:""$  "||z))) 	##%!!#||z)))r   r^   c                 sB   \         P                  ! V \        R RVR7      p\        VRRR7       VP                  R8X  g   Q h\        VRR	R7       V'       d   VP                  R
8X  g   Q hMVP                  R8X  g   Q h\        VRRR7       VP                  R8X  g   Q hR# )r   T)r8   	directionrP   r^   rQ   Nr   ra   r   re   rg   )rU   r   )rf   rh   ri   rl   )rE   r   r	   r   r   )r   r^   rJ   r   r   test_span_selector_dragr     s     T\,03EGD 4xZ8<<9$$$ 4xX6||y(((||x''' 4zz:<<:%%%r   c                 sR   \         P                  ! V \        R RR7      pVP                  R 8X  g   Q hVP                  P                  R 8X  g   Q h\
        P                  ! \        4      ;_uu_ 4        \         P                  ! V \        RR7      pRRR4       RVn        VP                  R8X  g   Q hVP                  P                  R8X  g   Q h\
        P                  ! \        4      ;_uu_ 4        RVn        RRR4       R#   + '       g   i     L{; i  + '       g   i     R# ; i)r   T)r8   r   rP   Zinvalid_direction)r8   r   Nr   Zinvalid_string)rE   r   r	   r   _edge_handlesr%   r   r   r   r   r   test_span_selector_directionr     s    T\,02D>>\)))''<777	z	"	"##B.AC 
#  DN>>Z''''':555	z	"	") 
#	" 
#	" 
#	"	"s   1D0DD	D&	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                  4       \        P                  ! RRR7      8X  g   Q hVP                  R	R
R7       VP                  4       \        P                  ! R	R
R7      8X  g   Q hVP                   F1  pVP                  4       R8X  g   Q hVP                  4       R8X  d   K1  Q h	  VP                  R	R
R7       VP                   F1  pVP                  4       R	8X  g   Q hVP                  4       R
8X  d   K1  Q h	  R# )r   Tro   rp   rq   rs   rt   )r8   r   rP   r6   ru   rQ   rv   rw   r   rr   Nr_   ra   )rE   r   r	   rz   r   r{   r|   r}   r~   r   r   	get_colorr   r   r   r   r   )test_span_selector_set_props_handle_propsr     s*   T\,0&*S&D-1_>D
 4wJ7##F!W__S%DDDDNNSN,!W__S%DDDD''!S(((!S((( ( 	3/''!S(((!S((( (r   selectorspanZ	rectanglec                 s   \        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       VP                  '       d   Q hR VR&   V! R/ VB pVP                  '       g   Q h\        VRRR7       \        VRRR7       VP                  '       g   Q h\        VRR	R
7       VP                  '       d   Q hR# )T)r   rP   r   r   r   r8   rQ   r   r   escaper   Nr   r   ra   )r   r   )	rz   rE   r   r	   rF   r   rZ   r   r   )r   r   r.   ZSelectorrJ   r   r   test_selector_clearr     s    RT*F6''*{!z,,fD4xZ8 4zz:(((((%)F!"fD$$$$$4xZ8 4zz:$$$$$T>x0((((((r   c                 sP   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P
                  '       g   Q hVP                  4       '       g   Q hVR 8X  d   VP                  R	8X  g   Q hVP                  4        VP
                  '       d   Q hVP                  4       '       d   Q h\	        VRR
R7       VP
                  '       g   Q hVP                  4       '       g   Q hVR 8X  d   VP                  R8X  g   Q hR# R# )r   r   T)r8   r   rP   r   r   rQ   Nr   ra   r   )rc   rb   )r`   rc   )	rE   r   r	   rF   r   rZ   get_visibler   r   )r   r   rJ   r   r   test_selector_clear_methodr     s   6##B049=? ((>4xZ8$$$$$6||y(((JJL(((((!!!! 4xY7$$$$$6||x''' 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   Nrm   r   r   )rE   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                   F3  pVP                  4       '       d   Q hVP	                  4       '       g   K3  Q h	  VP                  R4       VP                  R4       VP                   F3  pVP                  4       '       g   Q hVP	                  4       '       d   K3  Q h	  VP                  V8X  g   Q hR# )rU   r   F)r/   TN)rU   rW   rc   )rE   ZToolLineHandlesr   Zget_animatedr   Zset_visibleZset_animated	positions)r   r  Ztool_line_handler   r   r   test_tool_line_handler  >  s    I..rl7<> #**&&((((%%'''' +   &!!$'"**""$$$$!!#### + %%222r   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P                  4       V8X  g   Q hVP                  4       V8X  g   Q hV R8X  d   TMTpVP                  P                  \        V4      8X  g   Q hRpRpTp	\        WWVR7       VP                  4       V8X  g   Q hVP                  4       V8X  g   Q hV R8X  d   ^ M^p
Wz,          W,          .pVP                  P                  V8X  g   Q hR# )r#   Tr   r   rQ   N)rO   g      '@)i   i   )r&   r'   plotr(   r)   Z
get_xboundZ
get_yboundrE   r   Zprintr   r  Zlistr   )r   r+   r   Zx_boundZy_boundrJ   Zbound
press_data	move_datarelease_dataindexhandle_positionss   &           r   test_span_selector_boundr
  Q  s3   ll1a GCGGRHr2hJJOOmmoGmmoGE9$GD==?g%%%==?g%%% L0GgE''4;666JIL4y9==?g%%%==?g%%%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       VP                  4       VS38X  g   Q hVP                   R
J g   Q hSP                   '       g   Q h\#        SP%                  4       R4       VP'                  4        SP                   R
J g   Q h^^ .p^^.p^^.p\        VRV^ ,          V^,          ^R7       \        VR	V^ ,          V^,          ^R7       VP                   R
J g   Q hSP                   '       g   Q h\#        SP%                  4       R4       \        VRV^ ,          V^,          ^R7       SP                   R
J g   Q h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   rP   r^   r/   r9   r:   r=   FgSG-?r>   NgȄC()r   linspaceZpiZsinr&   r'   r  ZpauseZdraw_artistr(   ZblitZbboxrE   r   r   Z_get_animated_artistsZstaler
   	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%%'B944488u9999CMMO%78KKM99 QJAIq6LT7*Q-z!}QOT89Q<y|AN88u9999CMMO%89T9LO?1.99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  rp   rs   333333?ffffff??g
ףp=
@      @      @)
r   r   r   rs   rs   rs         ?r  r  r  )rE   r   Z_snapr   r  r   r
   )r   r8   rJ   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        VP                  R8X  g   Q hRVn        VP
                  e   Q hRVn        VP                  R8X  g   Q h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   rh   )   i$   )r   ZarangerE   r   r   r  )r   r8   r  rJ   s   f   r   test_span_selector_snapr    s      ))B-!#KH,79DDL<<8###D###DL<<8###r   c                 s    \         P                  ! V R  RRR7      pRVn        VP                  R8X  g   Q hVP                  '       g   Q hRpRp\	        WVR7       VP                  R8X  g   Q hR# )	c                 r  r   r   )aro      &&r   <lambda>Z,test_span_selector_extents.<locals>.<lambda>  s    r   r   T)r   rQ   N)r   r`   )      )rU   r$  )rE   r   r   rZ   r   )r   rJ   r  r  r   r   test_span_selector_extentsr%    sq    
|$
D DL<<7"""$$$$$ JL4|<<<7"""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   rD   r	   rE   LassoSelectorr   r   )r   r.   r8   rJ   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\        P                  ! VP                  4       R4      '       g   Q hVP                  4       R8X  g   Q hVP                  RRR7       \        P                  ! VP                  4       R4      '       g   Q hVP                  4       R8X  g   Q hR # )Nr7   ro   rp   r   )r8   r6   rv   rw   )r   rD   r	   rE   r&  rz   r{   r}   r   r   r   r   )r   r8   rJ   r   r   r   test_lasso_selector_set_propsr(    s    yyd6H  '+#S'ACD ##Ff..0#6666$$$NNCN(f..0#6666$$$r   c                 sR   \         P                  ! \        R R7      p\        P                  ! V R
V4      pVP
                  p\        P                  ! VP                  4       R4      '       g   Q hVP                  4       R8X  g   Q hVP                  4       ^8X  g   Q h\        P                  ! V R
V\        RRR^R7      R7      pVP
                  p\        P                  ! VP                  4       R4      '       g   Q hVP                  4       R8X  g   Q hVP                  4       ^8X  g   Q hVP                  4       R8X  g   Q hVP                  R4       VP                  R	4       \        P                  ! VP                  4       R4      '       g   Q hVP                  4       R	8X  g   Q hR # )Nr7   rx   Z-Zdarkbluerp   )Z	linestyler   rr   Zlwr5   rv   rw   r   )r   rD   r	   rE   ZLassor?   r}   r   r   Zget_linestyleZget_lwrz   r   Z	set_colorZ	set_alpha)r   r8   rJ   r?   r   r   test_lasso_set_propsr)    sT   yyd6H==Z2D99Ddnn.88883&&&;;=A==ZZsq:: ;D 99Ddnn.
;;;;>>s""";;=A3&&&NN3NN3dnn.4444>>s"""r   c                 sV   Rp\         P                  ! WR4      pVP                  4       . RO8X  g   Q hVP                  ^ 4       VP                  4       . RO8X  g   Q hVP	                  4       R.8X  g   Q hVP                  4        VP                  4       . R	O8X  g   Q hVP	                  4       . 8X  g   Q h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   c)r  N)r   c                  r  r   r   r   r   r   r"  Z#test_CheckButtons.<locals>.<lambda>  s    4r   )r   ro   r*  )TFT)FFT)FFF)Zinvalidr+  )rE   r   Z
get_status
set_activeZget_checked_labelsr   r   r%   r   r   Z	TypeErrorZ
on_clickedZ
disconnect)r   ZlabelsZcheckZinvalid_indexZinvalid_valueZcid   &     r   test_CheckButtonsr.  	  s\   F  -@AE!4444	Q!5555##%#...	KKM!6666##%+++c&k3v;q=9]]:&&=1 '& : )]]9%%Qm4 &% ) 

<
(C	S '&& &%%s   8F>FFF(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P                  R8X  g   Q h\        VR4       VP                  R4       VP                  R8X  g   Q hVP                  ^8X  g   Q hVP                  4        VP                  4        VP                  ^8X  g   Q h\        VRRRR7       \        VRR	R
7       \        VRRR
7       VP                  ^8X  g   Q hR# )r/  Nr7    Z_clickzx**2rs   r;   r<   Z	_keypressZ+r   Z5)r&   rcParamsZ_setr   rD   r	   rE   ZTextBoxZ	on_submitZon_text_changetextr   set_val
call_countZbegin_typingZstop_typing)r   r/  Zsubmit_eventZtext_change_eventrJ   r   r   test_TextBoxr6     s    LLi)99$T:L		t$???2r"DNN< )*99??T8LL99''1,,,""a'''T82R0T;C(T;C(''1,,,r   c                 s   \         P                  ! V R4      pVP                  ^4       VP                  R8X  g   Q hVP                  ^8X  g   Q hVP                  4        VP                  R 8X  g   Q hVP                  ^ 8X  g   Q hR# )Radio 1Radio 2Nr7  r8  zRadio 3)rE   r   r,  Zvalue_selectedZindex_selectedr   )r   Zradior   r   test_RadioButtonsr:  @  s|      %FGE	Q9,,,1$$$	KKM9,,,1$$$r   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rootrw   )Zleftr   r   r   r   r   r   r   r   N)皙?r  rp   333333?r9  )r=  rs   rp   r>  )zCheck 1zCheck 2zCheck 3)FTT)r=  rw   rp   r>  )i   r#  r  )r   greenblue)r   Z	palegreenZ	lightblue)r=  r  rp   r>  )r   
get_figureZsubplots_adjustZadd_axesrE   r   r   )
r   r+   Zrax1Zrb1Zrax2Zcb1Zrax3Zrb3Zrax4Zcb4r,   r   test_check_radio_buttons_imagerB  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@   )rY   sr*        ?rm   rY   ZvaNUUUUUU?UUUUUU?)	rE   r   r'   add_subplotscatter	transAxesr&   r2  r3  fig_testfig_refr   r   r   test_radio_buttonsrR  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@  	linewidthrC  rD  r   rG  N      b@)rE   r   r'   set_label_propsZset_radio_props)rP  rQ  r   r   cbr   r   test_radio_buttons_propsrW  s  s    UGZ"6Kfk1MK))+eX->%0K 
		h//1E83D	EB{# 8+8sK89r   c           	      s4   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! V RR.RRR/R7      pRRR4       \
        P                  ! XP                  P                  4       RR	.4      '       g   Q hR#   + '       g   i     LK; i)
z"Both the \*activecolor\* parameter)ZmatchrC  rD  r   r   r?  )activecolorr   Nr@   )	r%   ZwarnsZUserWarningrE   r   r}   r   Z_buttonsr|   )r   Zrbr   r   !test_radio_button_active_conflictrY    s~    	kA
C 
C!!"uh&7U/:G.DF
C
 bkk779GV;LMMMM
C 
Cs   BB	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# )rC  rD  r?  )rX  r   N)rE   r   r'   rX  )rP  rQ  rV  r   r   %test_radio_buttons_activecolor_changerZ    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# )rC  rD  TrE  r>  rG  rF  r@   )ZmarkerrY   rG  r*  r  ZkrH  rm   rI  NrJ  rK  )	rE   r   r'   rL  rM  rN  r&   r2  r3  rO  r   r   test_check_buttonsr[    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@  rS  rC  rD  Tr<  rG  NrT  )rE   r   r'   rU  Zset_frame_propsZpopZset_check_props)rP  rQ  r   r   r   rV  rM   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)r0  r         8@r   )r   labelvalminvalmax	sliderminN)r   r^  r_  r`  	slidermax)r&   r'   r%   r   r   rE   Slider)r+   r   s     r   'test_slider_slidermin_slidermax_invalidrd    s    llnGC	z	"	""Bs4!%	' 
# 
z	"	""Bs4!%	' 
#	" 
#	" 
#	"	"s   B& B9&B6	9C
	c            	      sN   \         P                  ! 4       w  r\        P                  ! VR RRRR7      p\        P                  ! VR RRRVR7      pVP                  VP                  8X  g   Q h\        P                  ! VR RRRVR7      pVP                  VP                  8X  g   Q hR	# )
r0  r   r]  r  r   r^  r_  r`  valinitr  )r   r^  r_  r`  rf  ra  r   )r   r^  r_  r`  rf  rb  Nr&   r'   rE   rc  val)r+   r   Zslider_slider       r   test_slider_slidermin_slidermaxrk    s    llnGCnn"S%(*G ^^rC$'7<F::$$$^^rC$(G=F::$$$r   c                  s   \         P                  ! 4       w  r\        P                  ! VR RRRR7      pVP                  VP
                  8X  g   Q h\        P                  ! VR RRRR7      pVP                  VP                  8X  g   Q hR# )r0  r   r]  re  g      9@Ng      $)r&   r'   rE   rc  rh  r_  r`  r+   r   ri        r   test_slider_valmin_valmaxrn    sm    llnGC^^rC$)+F::&&&^^rC$(*F::&&&r   c            	      s    \         P                  ! 4       w  r\        P                  ! VR RRR^R7      pVP                  ^8X  g   Q h\        P                  ! VR RRR. ROR7      pVP                  R8X  g   Q hR# )r0  r   r]  g&@)r   r^  r_  r`  rf  Zvalstepr  N)r    r#   r  g333333@rg  rl  rm  r   test_slider_valstep_snappingro    sk    llnGC^^rC$(!5F::^^rC$(2CEF::r   c            	      s   \         P                  ! 4       w  r\        P                  ! VR ^ ^^RR7      pVP	                  ^
4       VP
                  ^
8X  g   Q h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
                  ^
8X  g   Q hVP                  P                  4       P                  VP                  P                  4       4      p\        VP                  . RO4       R# )r0  r   )r   r^  r_  r`  rf  r   r   N)r    rH  竪?rs   )rH  r    rs   rp  )r&   r'   rE   rc  r4  rh  polyget_extentstransformedrN  invertedr
   Zbounds)r+   r   ri  boxrj  r   test_slider_horizontal_verticalrv    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        VP                  R8X  g   Q hR# )r0  rs   re        ?N)r&   r'   rE   rc  r4  resetrh  rl  rm  r   test_slider_resetry    sL    llnGC^^rAaLF
NN4
LLN::r   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   r0  r   r  r  (\?r   r^  r_  r`  r   rf  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  	get_xdata)ri  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  rH  rz  rw  )r  rz  )皙?r  )r  rH  r  rw  )rp   r  )r  rp   )r+  r`   r"   )r&   r'   rE   RangeSliderrq  rr  rs  rN  rt  r
   
get_pointsflattenrh  r4  rx  )r   idxr+   r   ri  ru  r	  s   f      r   test_range_sliderr    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   r0  r   r  r{  Nr}  r  )r    rH  r    rw  )r&   r'   rE   r  rq  rr  rs  rN  rt  r
   r  r  )r   r  r+   r   ri  ru  r-  r   "test_range_slider_same_init_valuesr  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  	  VP                  V8X  g   Q hVP                  V3/ 38X  g   Q h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   rD   r	   rE   PolygonSelectorr   r5  rI   )	event_sequenceexpected_resultZselections_countr.   r   r8   rJ   etype
event_argss	   &&&,     r   check_polygon_selectorr  B  s    * 
Byyd6H""2CCFCD-+
+  . "2222?"5r!::::r   c                 sT    R \        WR7      3R\        WR7      3R\        WR7      3.# )r=   r1  r9   r>   rz   r1  r!  r   polygon_place_vertexr  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=   r1  r9   r:   r>   r  r1  r!  r   polygon_remove_vertexr  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# )r  r   r   r   r=   r1  r9   r>   Zon_key_releaser   r   Nrc   rc   r   rc   rc   r   ))r   rc   r  r  ))rc   r   )r   r   r  ))r   r   )rj   r   )r   rj   )	functoolsZpartialr  r  rz   )r  Zcheck_selectorr  r  r   r   test_polygon_selectorr  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                  4       R 8X  g   Q hVP                  4       R8X  g   Q hVP                  RRR7       VP                  4       R8X  g   Q hVP                  4       R8X  g   Q hVP                   F1  pVP                  4       R 8X  g   Q hVP                  4       R8X  d   K1  Q h	  VP                  RRR7       VP                   F1  pVP                  4       R8X  g   Q hVP                  4       R8X  d   K1  Q h	  R# )	ro   rp   r   rs   rt   )r6   ru   r  rv   rw   N)rE   r  rz   r  r   r{   r   r   r   r   r   )r   r  rJ   r  r  r  r      &&     r   ,test_polygon_selector_set_props_handle_propsr    s   ""2)-Cs)C0435FHD
	b"	%	c2	& 
b#	& 
b"	%	N  .+
+  . ##F$$$$$$NNCN($$$$$$''!S(((!S((( ( 	3/''!S(((!S((( (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)rp   r   rw   r  )r'   rE   rF   r   )rP  rQ  ax_testZ_rJ   r   r   test_rect_visibilityr    s>     !GA$$WY4FGD'DLr   r  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# )rc   r  Nr  )	r  ZinsertZappendr  r  ZreduceoperatorZiaddr  )r  r  vertsr  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# )rc   :r#   NNr  Nr  )r  r  r  )r  r  r  r   r   (test_polygon_selector_remove_first_pointr  !  s    ,E	uQx	(	uQx	( 
uQx	( 
uQx	(	
 
a	)N >9a->@r   c                 s   . 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  	  VP
                  VR,          8X  g   Q hR# )rc   r  :r    r    NNr  )r  r  rE   r  r   r  )r   r  r  r  rJ   r  r  r  r   test_polygon_selector_redrawr  /  s    ,E
	uQx	(
	uQx	(
 
uQx	(
 
uQx	(	
 
a	)
 
a	)
 
uQx	(
N ""2KD-+
+  . ::s###r   c                 s   . ROpV P                  4       p\        P                  ! WBR7      pW5n        VP                  V8X  g   Q h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  r  N))r  r  )rs   r  )rw   rp   )rL  rE   r  r  r  r   )rP  rQ  r  r  r  Z	tool_testZax_refZtool_refr  r  r  s   &&&        r   "test_polygon_selector_verts_setterr  F  s     1E""$G''UIO??e###  "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ylimTr  r;  Zbutton_press_eventZmotion_notify_eventZbutton_release_eventN)irc   ))rU   r    )r    rU   )rU   (   )r  rU   )r  r  rT   ))r`   r    r_   )r`   rU   )rU   r`   r   rV   rW   rU   )r  rU   rW   rW   r  r  rW   )      4@      D@r  r  )r  r  r  )r  r  g      >@r  )Zsetr  rE   r  r   rX   rA  r(   r   rY   Z_processr   testingr
   r  Z_boxr   )r   r  r  rJ   r  r  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 EF  pV F%  w  rE\        WE4       F  w  rg\        W&3/ VB  K  	  K'  	  VP                  pVP                  '       g   Q hVP                  4       '       g   Q hVP                  4       '       g   Q h\        P                  P                  VP                  4       V4       VP                  VR R 3/ 38X  g   Q hVP                  4        VP                  '       d   Q h\        P                  P                  VP                  4       R.4       EK  	  R # )Nr7   )r  r  r  r  )r  )rB   rc   r  r  r+  r!   )r   rD   r	   rE   r  r  r   r{   rZ   r   r   r  Zassert_equalZ
get_xydatarI   r   )	r   r8   rJ   Zresultr  Zyr  r  r   r   r   "test_polygon_selector_clear_methodr    s!   yyd6H""20D==?DA%9!%?!3
3 &@  ''(((((!!!!!!####


 1 1 3V<!!vcr{nb%9999

,,,,,


 1 1 3fX>!?r   horizOnvertOnc                 sl   \         P                  ! 4       pVP                  ^RR7      w  r4\         P                  ! 4       P                  4       p\        P                  ! RW53RWR7      p\        VP                  4      ^8X  g   Q h\        VP                  4      ^8X  g   Q h\        VRRR7      pVP                  V4       VP                  P                  4        VP                   F  pVP                  4       R
8X  d   K  Q h	  VP                   F  pVP                  4       R8X  d   K  Q h	  \        VP                   U	u. uF  qP                  4       '       g   K  V	NK  	  up	4      V'       d   ^M^ 8X  g   Q h\        VP                   U	u. uF  qP                  4       '       g   K  V	NK  	  up	4      V '       d   ^M^ 8X  g   Q hVP                  '       * Vn        VP                   '       * Vn        \        VRRR7      pVP                  V4       \        VP                   U	u. uF  qP                  4       '       g   K  V	NK  	  up	4      V'       d   ^ M^8X  g   Q h\        VP                   U	u. uF  qP                  4       '       g   K  V	NK  	  up	4      V '       d   ^ M^8X  g   Q h\        VR	R	R7      pVP                  V4       VP                   F  pVP                  4       R
8X  d   K  Q h	  VP                   F  pVP                  4       R8X  d   K  Q h	  R# u up	i u up	i u up	i u up	i )r    T)ZsharexNF)r/   r  r  rs   rH  r1  rw  )rs   rs   )rH  rH  )r&   Zfigurer'   rE   ZMultiCursorr   ZvlinesZhlinesr   r=   r(   r)   r|  r  r   r  r  )
r  r  r+   Zax1Zax3Zax2ZmultiZeventZlr?   s
   &&        r   test_MultiCursorr    s    **,Ca-JS
**,


!C sj%E
 u||!!!u||!!!
 s"C0E	LLJJOO \\{{}((( \\{{}
***  D1A1A1CDE  D1A1A1CDE!   %EM||#ELs"C0E	LLD1A1A1CDE  D1A1A1CDE!  
 s#S1E	LL\\{{}((( \\{{}
*** + ED EDs0   L"L"L'*L'&L,L,3L1L1)i<   r   r  )r   r   )r@   Ztoolbar2Ztoolmanager)r#   r    r~  )gr  r*   r  Zunittestr   Zmatplotlib.backend_basesr   Zmatplotlib.colorsZcolorsr}   r$   rE   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parametrizerz   rN   r]   rn   r   r   r   r   r   r   rF   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.  r6  r:  rB  rR  rW  rY  rZ  r[  r\  rd  rk  rn  ro  rv  ry  r  r  r  r  r  r  r  r  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   