
    h>                     f   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	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\*" / S/QSSS*/ S+Q4S 9/5      S0 5       r-S1 r.\RN                  RQ                  S2/ S3Q5      \RN                  RQ                  S4/ S5Q5      S6 5       5       r/\
" S7/SS8S99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S8S99SI 5       r9SJ r:SK r;g)L    )
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)remove_textc            
         [         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5        UR                  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)r      )pltsubplotsr   clip_childrenmpatches	RectanglemlinesLine2Dr	   	transAxes
add_artistset_xlimset_ylimfigaxsizedabglineanchored_boxs          Q/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_offsetbox.pytest_offsetbox_clippingrH      s     llnGCD	Td	+B			FD&/&,&'
)B ==4%(DH-QQ/?&#%'D %||L MM"MM$MM,KKKK    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+   )r4   r5   r   r7   r8   r9   r:   r	   r;   r<   canvasdrawstaler6   r?   s          rG   test_offsetbox_clip_childrenrN   7   s     llnGCD	Td	+B			FD&/&,&'
)B ==4%(DH-QQ/?&#%'D %||L MM"MM$MM,JJOOyy=B999rI   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 )Nr3   r#                     	   r%   )
upper right
upper leftz
lower leftlower rightrightcenter leftcenter rightzlower centerzupper centerr(   r   )r,   r-   )r4   r5   r   r	   r<   rK   rL   )codesr@   rA   rC   coderF   s         rG   test_offsetbox_loc_codesr_   \   sr    
E llnGC	S#	B(T<
l#  JJOOrI   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 )Nr3   r#   zseries 1)labelzseries 2expand)ncolsmode)r4   r5   plotlegendtight_layout)r@   rA   d1d2s       rG   test_expand_with_tight_layoutrj   q   s]    llnGC
QB
QBGGBjG!GGBjG!IIAHI%rI   widths   )rl   rl   rl   皙?total)   r   r   Nsep)ro   r3   r   rp   rd   )rb   fixedequalc                     [        XX#S9  g )Nrd   )r   )rk   rn   rq   rd   s       rG   test_get_packed_offsetsrv   ~   s     s6rI   _Paramszwd_list, total, sep, expectedzwidths, total, sep, expected)rP   r3   r#   r3   rU   )r   rQ   rS   )rn   rq   expectedr%   rR   c                 Z    [        XUSS9nUS   US   :X  d   e[        US   US   5        g )Nrr   ru   r   r3   r   r   rk   rn   rq   rx   results        rG   test_get_packed_offsets_fixedr}      s:     !'BF!9###F1Ix{+rI   )rm   rm   rm   )r   g??)r   rR   rU   )r   g      @rP   c                 Z    [        XUSS9nUS   US   :X  d   e[        US   US   5        g )Nrb   ru   r   r3   rz   r{   s        rG   test_get_packed_offsets_expandr      s:     !(CF!9###F1Ix{+rI   )rP   r#   r3   rS   )r   r#   rQ   )rP   r#   r3   r!   r#   )r   r!   r3   r"   )r!   r3   皙?c                 Z    [        XUSS9nUS   US   :X  d   e[        US   US   5        g )Nrs   ru   r   r3   rz   r{   s        rG   test_get_packed_offsets_equalr      s:     !'BF!9###F1Ix{+rI   c                      [         R                  " [        5         [        / SQS S SS9  S S S 5        g ! , (       d  f       g = f)N)r3   r3   r3   rs   )rn   rq   rd   )pytestraises
ValueErrorr    rI   rG   1test_get_packed_offsets_equal_total_none_sep_noner      s(    	z	"ITt'J 
#	"	"s	   3
A
child_type)rL   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 )NrL   rR   r   r   )r    r   )rR   rR   )r#   r#   r   u   ■fontsize)	textpropszUnknown picking child type r*   )r   T
pick_eventc                 &   > TR                  U 5      $ )N)append)eventcallss    rG   <lambda>test_picking.<locals>.<lambda>   s    u||E7JrI   r   r!   H   r   button_press_eventr3   rp   )r   r<   r7   r8   nponesr   r   r4   r5   r
   
set_pickerrK   mpl_connectr;   transform_pointdpirL   clearr   r   LEFT_processlenartistr=   r>   )
r   r   picking_childimr@   rA   abxyr   s
            @rG   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:??rI   zanchoredtext_align.pngmpl20)r   stylec                      [         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,   r.   propr(   r\   rZ   )r4   r5   r   r<   )r@   rA   text0text1text2s        rG   &test_anchoredtext_horizontal_alignmentr      s|    llnGC/] f~7EMM%/X h'79EMM%/^ g8EMM%rI   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)rQ   rP   r   )figsizer   )r   r3   r   r3   
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%   rP   )zoom)r!   g333333ӿ)r   K   zoffset points333333?)r   r   r   r.   r   get_)gffffft@gYn@g     0}@gfffffr@r#   )atol)g1g      `@gfffffi@gd@)g     f@g      @g     l@g9W@tight)bbox_inches)i^  i  rQ   )r4   rcParamsupdatercParamsDefaultr5   axisannotatedictr   r7   Circler<   r
   r   r   randomrandr   axesgetattrr   extentsioBytesIOsavefigseekimreadshaperK   rL   rg   )r   r@   rA   an1rC   pab3r   ab6bb1target1bb3target3bb6target6bufr   targetshapes                     rG   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rI   c                  6    [        SS9R                  S:X  d   eg )N*   )zorder)r   r   r   rI   rG   test_zorderr   ?  s    B&&",,,rI   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   )rC   r   r   s      rG   test_arrowprops_copiedr   C  sc    	RQ	-B $9J	RHK&"1#-
/B =="""h8+++rI   align)r   bottomtopr   rZ   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   )rZ   r  r(   r#   )r4   figurerK   get_rendererr   r   rL   get_bbox
get_offsetr   boundsmaxget_childrenr   )r   r@   rendererx1y1x2y2r1r2hpackerbboxpxpyy_heightr-   vpackerx_heights                    rG   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foorX   r   rT)patch_attrs
draw_frame)r4   r5   r   r   r<   draw_without_rendering)r@   rA   atpbs       rG   test_paddedbox_default_valuesr#  ~  sF    llnGC	el	+B	2K#5$	GBMM" rI   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    rG   test_annotationbbox_propertiesr'    s    	BAqt<j!'
)B88z!!!<<6!!!	BAqt<j)F"1
3B 88{"""<<?***rI   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    rG   test_textarea_propertiesr0    sw    	%B;;=E!!!''))))KKT";;=E!!!##%%%%rI   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)  rX   r*  )add_subplotr   r<   txtr-  )fig_testfig_refax_refr   ax_testr   s         rG   test_textarea_set_textr8    sd      "F-E
e""$G-Eu	IIurI   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  rR   r   r  T)r.   r  r  rX   )r-   barr%   b)r.   r  rW   foobar   )r.   r  rY   )r4   r5   r   r   r	   r<   )r@   rA   r/  r"  r   s        rG   test_paddedboxr>    s    llnGC	%B	21;*<	NB	<r	2BMM"	%B	22K+=	>B	=	3BMM"	(	B	22$	/B	=	3BMM"rI   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_eventr3   )r4   r5   r   	draggableremover   rK   r   )r@   rA   ans      rG   test_remove_draggablerD    sP    llnGC	UH	%BLLIIK%szz1a8AACrI   c                  l   [         R                  " 5       n U R                  5       R                  / SQ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g )N)r   r   r3   r3   r  r   Tr   r3   )r4   r  
subfiguresadd_axesr   rA  rK   rL   r   r   
_draggable
got_artist)r@   anns     rG   test_draggable_in_subfigurerK    sz    
**,C
..

#
#L
1
:
:5&
ICMM$JJOO#SZZA6??A>>$$$$rI   )<collectionsr   r   numpyr   numpy.testingr   r   matplotlib.testing.decoratorsr   r   matplotlib.pyplotpyplotr4   matplotlib.patchespatchesr7   matplotlib.lineslinesr9   matplotlib.backend_basesr   r   matplotlib.offsetboxr	   r
   r   r   r   r   r   r   r   r   r   rH   rN   r_   rj   markparametrizerv   rw   r}   r   r   r   r   r   r   r   r   r  r#  r'  r0  r8  r>  rD  rK  r   rI   rG   <module>rZ     sh   " 	  )  O  % ! <O O O O
 '(d;  < 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%rI   