
    
3jF                     n   S SK Jr  S SKrS SKrS SKJr  S SKrS SKJ	r	J
r
  S SKJr  S SKJr  S SKJr  S SKJrJr  S SKJrJrJrJrJrJrJrJrJ r J!r!J"r"  \
" S/SS	S
9S 5       r#S r$S r%S r&\RN                  RQ                  SS// SQS/SS/45      \RN                  RQ                  SS5      \RN                  RQ                  SS5      \RN                  RQ                  SS5      S 5       5       5       5       r)\" SS5      r*\RN                  RQ                  S\*" / SQSSS/ S Q4S!9\*" / SQS"SS"/ S Q4S!9\*" / SQS#SS#/ S Q4S!9/5      S$ 5       r+\RN                  RQ                  S\*" / S%QSSS/ S&Q4S!9\*" / SQS"SS"/ S'Q4S!9\*" / SQS#SS#/ S(Q4S!9/5      S) 5       r,\RN                  RQ                  S\*" / S*QS+SS+/ S,Q4S!9\*" / S-QS.SS./ S/Q4S!9\*" / S0QSSS+/ S,Q4S!9/5      S1 5       r-S2 r.\RN                  RQ                  S3/ S4Q5      \RN                  RQ                  S5/ S6Q5      S7 5       5       r/\
" S8/SS9S
9S: 5       r0\RN                  RQ                  S;S<S=/5      S> 5       r1S? r2S@ r3\RN                  RQ                  SA/ SBQ5      SC 5       r4SD r5SE r6SF r7\	" 5       SG 5       r8\
" SH/SS9S
9SI 5       r9SJ r:SK r;SL r<g)M    )
namedtupleN)assert_allclose)check_figures_equalimage_comparison)MouseButton
MouseEvent)AnchoredOffsetboxAnnotationBboxAnchoredTextDrawingAreaHPacker	OffsetBoxOffsetImage	PaddedBoxTextAreaVPacker_get_packed_offsetsoffsetbox_clippingT_classic_test)remove_textstylec            
         [         R                  " 5       u  pSn[        X"SS9nUR                  (       d   e[        R
                  " SX"SSSS9n[        R                  " U* S	-  US
-  /US-  US-  /SSS9n[        SUSSSUR                  SS9nUR                  U5        UR                  U5        UR                  U5        UR                  SS5        UR                  SS5        g )Nd   Tclipr   r   #CCCCCCNoner   	facecolor	edgecolor	linewidth      ?      ?   black
   colorr"   center        Fr#   r#   locchildpadframeonbbox_to_anchorbbox_transform	borderpad   )pltsubplotsr   clip_childrenmpatches	RectanglemlinesLine2Dr	   	transAxes
add_artistset_xlimset_ylimfigaxsizedabglineanchored_boxs          Y/home/wildlama/miniconda3/lib/python3.13/site-packages/matplotlib/tests/test_offsetbox.pytest_offsetbox_clippingrJ      s     llnGCD	Td	+B			FD&/&,&'
)B ==4%(DH-QQ/?&#%'D %||L MM"MM$MM,KK1KK1    c            
         [         R                  " 5       u  pSn[        X"SS9n[        R                  " SX"SSSS9n[
        R                  " U* S	-  US
-  /US-  US-  /SSS9n[        SUSSSUR                  SS9nUR                  U5        UR                  U5        UR                  U5        U R                  R                  5         U R                  (       a   eSUl        U R                  (       d   eg )Nr   Tr   r   r   r   r   r   r#   r$   r%   r&   r'   r(   r*   r+   Fr,   r-   )r6   r7   r   r9   r:   r;   r<   r	   r=   r>   canvasdrawstaler8   rA   s          rI   test_offsetbox_clip_childrenrP   7   s     llnGCD	Td	+B			FD&/&,&'
)B ==4%(DH-QQ/?&#%'D %||L MM"MM$MM,JJOOyy=B999rK   c                      SSSSSSSSS	S
S.
n [         R                  " 5       u  p[        SS5      nU  H  n[        XCS9nUR	                  U5        M     UR
                  R                  5         g )Nr5   r%                     	   r'   )
upper right
upper left
lower leftlower rightrightcenter leftcenter rightzlower centerzupper centerr*   r   )r.   r/   )r6   r7   r   r	   r>   rM   rN   )codesrB   rC   rE   coderH   s         rI   test_offsetbox_loc_codesrb   \   sr    
E llnGC	S#	B(T<
l#  JJOOrK   c                      [         R                  " 5       u  pSS/nSS/nUR                  USS9  UR                  USS9  UR                  SSS9  U R	                  5         g )Nr5   r%   zseries 1)labelzseries 2expand)ncolsmode)r6   r7   plotlegendtight_layout)rB   rC   d1d2s       rI   test_expand_with_tight_layoutrm   q   s]    llnGC
QB
QBGGBjG!GGBjG!IIAHI%rK   widths   )ro   ro   ro   皙?total)   r   r   Nsep)rr   r5   r   rs   rg   )re   fixedequalc                     [        XX#S9  g )Nrg   )r   )rn   rq   rt   rg   s       rI   test_get_packed_offsetsry   ~   s     s6rK   _Paramszwd_list, total, sep, expectedzwidths, total, sep, expected)rR   r5   r%   r5   rW   )r   rS   rU   )rq   rt   expectedr'   rT   c                 Z    [        XUSS9nUS   US   :X  d   e[        US   US   5        g )Nru   rx   r   r5   r   r   rn   rq   rt   r{   results        rI   test_get_packed_offsets_fixedr      s:     !'BF!9###F1Ix{+rK   )rp   rp   rp   )r   g??)r   rT   rW   )r   g      @rR   c                 Z    [        XUSS9nUS   US   :X  d   e[        US   US   5        g )Nre   rx   r   r5   r}   r~   s        rI   test_get_packed_offsets_expandr      s:     !(CF!9###F1Ix{+rK   )rR   r%   r5   rU   )r   r%   rS   )rR   r%   r5   r#   r%   )r   r#   r5   r$   )r#   r5   皙?c                 Z    [        XUSS9nUS   US   :X  d   e[        US   US   5        g )Nrv   rx   r   r5   r}   r~   s        rI   test_get_packed_offsets_equalr      s:     !'BF!9###F1Ix{+rK   c                      [         R                  " [        5         [        / SQS S SS9  S S S 5        g ! , (       d  f       g = f)N)r5   r5   r5   rv   )rq   rt   rg   )pytestraises
ValueErrorr    rK   rI   1test_get_packed_offsets_equal_total_none_sep_noner      s(    	z	"ITt'J 
#	"	"s	   3
A
child_type)rN   imagetext	boxcoords)axes fractionaxes pixelsaxes pointsdatac           	      4  ^	 U S:X  a3  [        SS5      nUR                  [        R                  " SSSSS95        OJU S:X  a'  [        R
                  " S5      nSUS'   [        U5      nOU S	:X  a  [        S
SS0S9nO
 SU  35       e[        R                  " 5       u  pE[        USUS9nUR                  S5        UR                  U5        / m	UR                  R                  SU	4S j5        US:X  aH  UR                  R                  S5      u  pxUSUR                   -  S-  -  nUSUR                   -  S-  -  nOKUS:X  a(  UR                  R                  S5      u  pxUS-  nUS-  nOUR                  R                  S5      u  pxUR                  R#                  5         T	R%                  5         ['        SUR                  Xx[(        R*                  5      R-                  5         [/        T	5      S:X  a  T	S   R0                  U:X  d   eUR3                  SS5        UR5                  SS5        UR                  R#                  5         T	R%                  5         ['        SUR                  Xx[(        R*                  5      R-                  5         [/        T	5      S:X  d   eg )NrN   rT   r   r   )r"   r   rT   rT   )r%   r%   r   u   ■fontsize)	textpropszUnknown picking child type r,   )r   T
pick_eventc                 &   > TR                  U 5      $ )N)append)eventcallss    rI   <lambda>test_picking.<locals>.<lambda>   s    u||E7JrK   r   r#   H   r   button_press_eventr5   rs   )r   r>   r9   r:   nponesr   r   r6   r7   r
   
set_pickerrM   mpl_connectr=   transform_pointdpirN   clearr   r   LEFT_processlenartistr?   r@   )
r   r   picking_childimrB   rC   abxyr   s
            @rI   test_pickingr      s-    V#Aq)  !3!3FAqA!NO	w	WWV_4#B	v	 !3
AO@3J<@@ullnGC	zY	GBMM$MM"EJJ<)JK M!||++F3	S377]R	S377]R	m	#||++F3	S	S||++J7JJOO	KKMcjj!0@0@BBJ(*u:?uQx"444 KKAKKAJJOO	KKMcjj!0@0@BBJ(*u:??rK   zanchoredtext_align.pngmpl20c                      [         R                  " 5       u  p[        SSSSS0S9nUR                  U5        [        SSSSS0S9nUR                  U5        [        SSSSS	0S9nUR                  U5        g )
Nztest
test long textr^   r   haleft)r.   r0   propr*   r_   r]   )r6   r7   r   r>   )rB   rC   text0text1text2s        rI   &test_anchoredtext_horizontal_alignmentr      s|    llnGC/] f~7EMM%/X h'79EMM%/^ g8EMM%rK   extent_kindwindow_extent	tightbboxc                    [         R                  R                  [         R                  5        [         R                  " SSS9u  pUR                  / SQ5        UR                  SSS[        SS	9S
SSS9n[        SSSSSS9n[        R                  " SS5      nUR                  U5        [        USS/SSSS[        SS	9S9nUR                  U5        [        [        R                  R!                  SS5      SS9nX'R"                  l        [        USSSSS [        SS	9S!9nUR                  U5        ['        US"U  35      " 5       n	/ S#Qn
[)        U	R*                  U
S$S%9  ['        US"U  35      " 5       n/ S&Qn[)        UR*                  US$S%9  ['        US"U  35      " 5       n/ S'Qn[)        UR*                  US$S%9  [,        R.                  " 5       nUR1                  US(S)9  UR3                  S5        [         R4                  " U5      R6                  nS*n[)        UUS$S%9  UR8                  R;                  5         UR=                  5         UR8                  R;                  5         g )+N)rS   rR   r   )figsizer   )r   r5   r   r5   
Annotation)r   r   )皙?r   ->)
arrowstyleFbaseliner   )xyxytext
arrowpropsclip_onvar      r   Tr   )i       r#   皙ɿr#   r   r   r+   r#   xyboxxycoordsr   box_alignmentr   r'   rR   )zoom)r#   g333333ӿ)r   K   zoffset points333333?)r   r   r   r0   r   get_)gffffft@gYn@g     0}@gfffffr@r%   )atol)g1g      `@gfffffi@gd@)g     f@g      @g     l@g9W@tight)bbox_inches)i^  i  rS   )r6   rcParamsupdatercParamsDefaultr7   axisannotatedictr   r9   Circler>   r
   r   r   randomrandr   axesgetattrr   extentsioBytesIOsavefigseekimreadshaperM   rN   rj   )r   rB   rC   an1rE   pab3r   ab6bb1target1bb3target3bb6target6bufr   targetshapes                     rI   test_annotationbbox_extentsr     s   LL++,ll6s3GCGGL
++lx
!%!6#  0C 
RQ	-B	2&AMM!
b"X[6#2($(D$9;C MM#	RYY^^B+!	4BHHM
Zw"1#2$(D$9;C MM# #k]+
,
.C*GCKKq1 #k]+
,
.C*GCKKq1
#k]+
,
.C)GCKKq1 **,CKKK)HHQKJJsO!!EKE;Q/ JJOOJJOOrK   c                  6    [        SS9R                  S:X  d   eg )N*   )zorder)r   r   r   rK   rI   test_zorderr   ?  s    B&&",,,rK   c            
          [        SSSSSS9n SSS.n[        U SS/S	S
SSUS9nUR                  ULd   eUS   S:X  d   eg )Nr   r   Tr   r   )r   gffffff?)r   relposr#   r   r   r   r   r   r   )r   r
   r   )rE   r   r   s      rI   test_arrowprops_copiedr  C  sc    	RQ	-B $9J	RHK&"1#-
/B =="""h8+++rK   align)r   bottomtopr   r]   r*   c           
         [         R                  " SS9nUR                  R                  5       nSu  p4Su  pV[	        X45      n[	        XV5      n[        Xx/U S9n	U	R                  U5        U	R                  U5      n
U	R                  X5      u  p[        U
R                  SSX5-   [        XF5      45        U S;   a  SnOU S;   a  Xd-
  nOU S	:X  a  Xd-
  S
-  n[        U	R                  5        Vs/ s H  oR                  5       PM     snXW-   4X-   U4/5        [        Xx/U S9nUR                  U5        UR                  U5      n
UR                  X5      u  p[        U
R                  S[        XF5      * [        X55      XF-   45        U S;   a  SnOU S;   a  XS-
  nOU S	:X  a  XS-
  S
-  n[        UR                  5        Vs/ s H  oR                  5       PM     snUW-   U4XU-
  4/5        g s  snf s  snf )Nr   )r   )r'   r   )r   <   )childrenr  r   )r   r   r  )r]   r  r*   r%   )r6   figurerM   get_rendererr   r   rN   get_bbox
get_offsetr   boundsmaxget_childrenr   )r  rB   rendererx1y1x2y2r1r2hpackerbboxpxpyy_heightr/   vpackerx_heights                    rI   test_packersr  M  s    **
Czz&&(HFBFB	R	B	R	B xu5GLLH%D/FBDKK!QR!=>..	"	"7	(	Gq=W5I5I5KL5KE%%'5KLx-(27B-8: xu5GLLH%D/FBDKK!c"k\3r;!HI..	"	"7	(	Gq=W5I5I5KL5KE%%'5KL8mR(2Bw-8:% M$ Ms   *G)<G.c                      [         R                  " 5       u  p[        SS5      n[        USS0SS9nUR	                  U5        U R                  5         g )NfoorZ   r    rT)patch_attrs
draw_frame)r6   r7   r   r   r>   draw_without_rendering)rB   rC   atpbs       rI   test_paddedbox_default_valuesr&  ~  sF    llnGC	el	+B	2K#5$	GBMM" rK   c            
          [        [        SSSSSS9SSS9n U R                  S:X  d   eU R                  S:X  d   e[        [        SSSSSS9SSSS	S
9n U R                  S:X  d   eU R                  S	:X  d   eg )Nr   r   Tr   r,   r   )r   )r   g?r   )r   r   r   )r
   r   xyann	anncoords)r   s    rI   test_annotationbbox_propertiesr*    s    	BAqt<j!'
)B88z!!!<<6!!!	BAqt<j)F"1
3B 88{"""<<?***rK   c                     [        S5      n U R                  5       S:X  d   eU R                  5       (       a   eU R                  S5        U R	                  S5        U R                  5       S:X  d   eU R                  5       (       d   eg )NFooBarT)r   get_textget_multilinebaselineset_textset_multilinebaseline)tas    rI   test_textarea_propertiesr3    sw    	%B;;=E!!!''))))KKT";;=E!!!##%%%%rK   c                     UR                  5       n[        SS5      nUR                  U5        U R                  5       n[        SS5      nUR                  U5        UR                  R	                  S5        g )Nr,  rZ   r-  )add_subplotr   r>   txtr0  )fig_testfig_refax_refr   ax_testr   s         rI   test_textarea_set_textr;    sd      "F-E
e""$G-Eu	IIurK   zpaddedbox.pngc                  b   [         R                  " 5       u  p[        S5      n[        USSS0SS9n[	        SUS9nUR                  U5        [        S	5      n[        US
SS0S9n[	        SUS9nUR                  U5        [        S5      n[        USSS9n[	        SUS9nUR                  U5        g )Nr  rT   r    r   T)r0   r!  r"  rZ   )r/   barr'   b)r0   r!  rY   foobar   )r0   r"  r\   )r6   r7   r   r   r	   r>   )rB   rC   r2  r%  r   s        rI   test_paddedboxrA    s    llnGC	%B	21;*<	NB	<r	2BMM"	%B	22K+=	>B	=	3BMM"	(	B	22$	/B	=	3BMM"rK   c                      [         R                  " 5       u  pUR                  SS5      nUR                  S5        UR	                  5         [        SU R                  SS5      R                  5         g )Nr  r,   Tbutton_release_eventr5   )r6   r7   r   	draggableremover   rM   r   )rB   rC   ans      rI   test_remove_draggablerG    sP    llnGC	UH	%BLLIIK%szz1a8AACrK   c                  N   [         R                  " 5       n U R                  5       R                  S5      R	                  SS5      nUR                  S5        U R                  R                  5         [        SU R                  SS5      R                  5         UR                  R                  (       d   e[        SU R                  SS5      R                  5         UR                  R                  (       a   e[        SU R                  SS5      R                  5         UR                  R                  (       a   eUR                  5       n[        SU R                  UR                  S	-   UR                  S	-   5      R                  5         UR                  R                  (       a   eg )
N)r   r   r5   r5   r  r   Tr   r5   rC  scroll_eventr%   )r6   r  
subfiguresadd_axesr   rD  rM   rN   r   r   
_draggable
got_artistget_window_extentr  r  )rB   annr  s      rI   test_draggable_in_subfigurerP    s'   
**,C
..

#
#L
1
:
:5&
ICMM$JJOO#SZZA6??A>>$$$$%szz1a8AAC~~((((~szz1a099;~~((((  "D#SZZDGGAIFOOQ~~(((((rK   c                  N   [         R                  " 5       u  p[        SSSS9nUR                  U5        [        SSSS9nUR                  U5        [        SSSS9nUR                  U5        U R                  R                  5         UR                  5       nUR                  5       nUR                  5       nUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :  d   eUR                  UR                  :  d   eg	)
zN
Test AnchoredOffsetbox correctly handles both float and tuple for borderpad.
floatr[   rT   )r.   r4   tupler   
tuple_asym)r'   rS   N)	r6   r7   r   r>   rM   rN   rN  x0y0)rB   rC   
text_floattext_tuple_equaltext_tuple_asym	pos_floatpos_tuple_equalpos_tuple_asyms           rI   1test_anchored_offsetbox_tuple_and_float_borderpadr]    s   
 llnGC g<1EJMM* $GPMM"# #<\WUOMM/" JJOO,,.I&88:O$668N ------
 y||+++y||+++rK   )=collectionsr   r   numpyr   numpy.testingr   r   matplotlib.testing.decoratorsr   r   matplotlib.pyplotpyplotr6   matplotlib.patchespatchesr9   matplotlib.lineslinesr;   matplotlib.backend_basesr   r   matplotlib.offsetboxr	   r
   r   r   r   r   r   r   r   r   r   rJ   rP   rb   rm   markparametrizery   rz   r   r   r   r   r   r   r   r   r  r  r&  r*  r3  r;  rA  rG  rP  r]  r   rK   rI   <module>rl     sp   " 	  )  O  % ! <O O O O
 '(d/R  S F"J*
 %3%#sDF"9:0!=>7 ? 1 ;F
7 Y ?
@ 719~?b)_>Q	N<: ,, 7Dda5FHb)_>Q,<>: ,, 79~?QDA7G3HJ4Q!YA: ,,K
 '@A"#/# B/d +,$gN O +(FG7 H7t-,  #> ?,:?,:^!
+&   ?#WE F&D)(",rK   