
    P/Ph>                     H   d dl mZ d dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZ d dlmZmZmZmZmZmZmZmZm Z m!Z!m"Z"  e
dgd	          d
             Z#d Z$d Z%d Z&ej'        (                    ddgg ddgddgf          ej'        (                    dd          ej'        (                    dd          ej'        (                    dd          d                                                 Z) edd          Z*ej'        (                    d e*g ddddg df            e*g dd!dd!g df            e*g dd"dd"g df           g          d#             Z+ej'        (                    d e*g d$dddg d%f            e*g dd!dd!g d&f            e*g dd"dd"g d'f           g          d(             Z,ej'        (                    d e*g d)d*dd*g d+f            e*g d,d-dd-g d.f            e*g d/ddd*g d+f           g          d0             Z-d1 Z.ej'        (                    d2g d3          ej'        (                    d4g d5          d6                         Z/ e
d7gdd89          d:             Z0ej'        (                    d;d<d=g          d>             Z1d? Z2d@ Z3ej'        (                    dAg dB          dC             Z4dD Z5dE Z6dF Z7 e	            dG             Z8 e
dHgdd89          dI             Z9dJ Z:dK Z;dS )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            	         t          j                    \  } }d}t          ||d          }|j        sJ t	          j        d||ddd          }t          j        | d	z  |d
z  g|dz  |dz  gdd          }t          d|ddd|j	        d          }|
                    |           |
                    |           |
                    |           |                    d           |                    d           d S )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          _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/tests/test_offsetbox.pytest_offsetbox_clippingrH      s.    lnnGCD	T4d	+	+	+B		FD$&/&,&'
) 
) 
)B =4%(DH-QQ/?&#%' ' 'D %|  L MM"MM$MM,KKKK    c            	         t          j                    \  } }d}t          ||d          }t          j        d||ddd          }t          j        | d	z  |d
z  g|dz  |dz  gdd          }t          d|ddd|j        d          }|	                    |           |	                    |           |	                    |           | j
                                         | j        rJ d|_        | j        sJ d S )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   s1    lnnGCD	T4d	+	+	+B		FD$&/&,&'
) 
) 
)B =4%(DH-QQ/?&#%' ' 'D %|  L MM"MM$MM,JOOyB9rI   c                      ddddddddd	d
d
} t          j                    \  }}t          dd          }| D ](}t          ||          }|                    |           )|j                                         d S )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_   \   s    
 
E lnnGC	S#		B $ $(T<<<
l####JOOrI   c                      t          j                    \  } }ddg}ddg}|                    |d           |                    |d           |                    dd           |                                  d S )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}    lnnGC
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                 ,    t          | |||           d S )Nrd   )r   )rk   rn   rq   rd   s       rG   test_get_packed_offsetsrv   ~   s!     s666666rI   _Paramszwd_list, total, sep, expectedzwidths, total, sep, expected)rP   r3   r#   r3   rU   )r   rQ   rS   )rn   rq   expectedr%   rR   c                     t          | ||d          }|d         |d         k    sJ t          |d         |d                    d S )Nrr   ru   r   r3   r   r   rk   rn   rq   rx   results        rG   test_get_packed_offsets_fixedr}      sQ     !'BBBF!9####F1Ix{+++++rI   )rm   rm   rm   )r   g??)r   rR   rU   )r   g      @rP   c                     t          | ||d          }|d         |d         k    sJ t          |d         |d                    d S )Nrb   ru   r   r3   rz   r{   s        rG   test_get_packed_offsets_expandr      sQ     !(CCCF!9####F1Ix{+++++rI   )rP   r#   r3   rS   )r   r#   rQ   )rP   r#   r3   r!   r#   )r   r!   r3   r"   )r!   r3   皙?c                     t          | ||d          }|d         |d         k    sJ t          |d         |d                    d S )Nrs   ru   r   r3   rz   r{   s        rG   test_get_packed_offsets_equalr      sQ     !'BBBF!9####F1Ix{+++++rI   c                      t          j        t                    5  t          g dd d d           d d d            d S # 1 swxY w Y   d S )N)r3   r3   r3   rs   )rn   rq   rd   )pytestraises
ValueErrorr    rI   rG   1test_get_packed_offsets_equal_total_none_sep_noner      s    	z	"	" K KIIITt'JJJJK K K K K K K K K K K K K K K K K Ks   =AA
child_type)rL   imagetext	boxcoords)axes fractionaxes pixelsaxes pointsdatac                   	 | dk    r<t          dd          }|                    t          j        dddd                     nV| dk    r)t	          j        d          }d|d<   t          |          }n'| d	k    rt          d
ddi          }nJ d|              t          j	                    \  }}t          |d|          }|                    d           |                    |           g 	|j                            d	fd           |dk    r>|j                            d          \  }}|d|j        z  dz  z  }|d|j        z  dz  z  }nK|dk    r(|j                            d          \  }}|dz  }|dz  }n|j                            d          \  }}|j                                         	                                 t'          d|j        ||t(          j                                                   t/          	          dk    r	d         j        |k    sJ |                    dd           |                    dd           |j                                         	                                 t'          d|j        ||t(          j                                                   t/          	          dk    sJ d S )NrL   rR   r   r   )r    r   )rR   rR   )r#   r#   r   u   ■fontsize)	textpropsFzUnknown picking child type r*   )r   T
pick_eventc                 .                         |           S )N)append)eventcallss    rG   <lambda>ztest_picking.<locals>.<lambda>   s    u||E7J7J rI   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))  !3FAqA!N!N!NOOOO	w		WV__4#B	v		 !3
AOOO@@J@@@@@lnnGC	zY	G	G	GBMM$MM"EJ<)J)J)J)JKKK M!!|++F331	S37]R	S37]R	m	#	#|++F331	S	S|++J771JOO	KKMMMcj!Q0@B BBJ(***u::??uQx"4444 KKAKKAJOO	KKMMMcj!Q0@B BBJ(***u::??????rI   zanchoredtext_align.pngmpl20)r   stylec                  .   t          j                    \  } }t          dddddi          }|                    |           t          dddddi          }|                    |           t          ddddd	i          }|                    |           d S )
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    lnnGC/] f~7 7 7EMM%/X h'79 9 9EMM%/^ g8 8 8EMM%rI   extent_kindwindow_extent	tightbboxc                    t           j                            t           j                   t          j        dd          \  }}|                    g d           |                    dddt          d	          d
dd          }t          ddddd          }t          j
        dd          }|                    |           t          |ddgddddt          d	                    }|                    |           t          t          j                            dd          d          }||j        _        t          |ddddd t          d	          !          }|                    |            t'          |d"|                        }	g d#}
t)          |	j        |
d$%            t'          |d"|                        }g d&}t)          |j        |d$%            t'          |d"|                        }g d'}t)          |j        |d$%           t-          j                    }|                    |d()           |                    d           t          j        |          j        }d*}t)          ||d$%           |j                                         |                                 |j                                         d S )+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   L+,,,l6s333GCGGLLL
++lx
!%!6!6!6#  0 0C 
RQ	-	-	-B	2&&AMM!
b"X[6#2($(D$9$9$9; ; ;C MM#	RY^^B++!	4	4	4BBHM
Zw"1#2$(D$9$9$9; ; ;C MM# -'#+k++
,
,
.
.C***GCKq1111 -'#+k++
,
,
.
.C***GCKq1111
,'#+k++
,
,
.
.C)))GCKq1111 *,,CKKK)))HHQKKKJsOO!EKE;Q//// JOOJOOrI   c                  <    t          d          j        dk    sJ d S )N*   )zorder)r   r   r   rI   rG   test_zorderr   ?  s'    B&",,,,,,rI   c            	          t          ddddd          } ddd}t          | ddgd	d
dd|          }|j        |usJ |d         dk    sJ d S )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  s    	RQ	-	-	-B $99J	RHK&"1#-
/ 
/ 
/B =""""h8++++++rI   align)r   bottomtopr   rZ   r(   c           
      0   t          j        d          }|j                                        }d\  }}d\  }}t	          ||          }t	          ||          }t          ||g|           }	|	                    |           |	                    |          }
|	                    |
|          \  }}t          |
j
        dd||z   t          ||          f           | dv rd}n| dv r||z
  }n| d	k    r||z
  d
z  }t          d |	                                D             |||z   f||z   |fg           t          ||g|           }|                    |           |                    |          }
|                    |
|          \  }}t          |
j
        dt          ||           t          ||          ||z   f           | dv rd}n| dv r||z
  }n| d	k    r||z
  d
z  }t          d |                                D             ||z   |f|||z
  fg           d S )Nr   )r   )r%   r   )r   <   )childrenr   r   )r   r   r   )rZ   r   r(   r#   c                 6    g | ]}|                                 S r   
get_offset.0r-   s     rG   
<listcomp>z test_packers.<locals>.<listcomp>h  $    LLLEU%%''LLLrI   c                 6    g | ]}|                                 S r   r  r  s     rG   r	  z test_packers.<locals>.<listcomp>z  r
  rI   )r4   figurerK   get_rendererr   r   rL   get_bboxr  r   boundsmaxget_childrenr   )r   r@   rendererx1y1x2y2r1r2hpackerbboxpxpyy_heightvpackerx_heights                   rG   test_packersr   M  s{    *


Cz&&((HFBFB	R		B	R		B Bxu555GLLH%%Dh//FBDK!QRR!=>>>...	"	"	"7	(		Gq=LLW5I5I5K5KLLL"x-(27B-8: : : Bxu555GLLH%%Dh//FBDK!c"bkk\3r2;;R!HIII...	"	"	"7	(		Gq=LLW5I5I5K5KLLL8mR(2rBw-8: : : : :rI   c                      t          j                    \  } }t          dd          }t          |ddid          }|                    |           |                                  d S )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)  ~  sc    lnnGC	el	+	+B	2K#5$	G	G	GBMM"     rI   c            	         t          t          ddddd          dd          } | j        dk    sJ | j        dk    sJ t          t          ddddd          dddd	
          } | j        dk    sJ | j        d	k    sJ d S )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8z!!!!<6!!!!	BAqt<<<j)F"1
3 
3 
3B 8{""""<?******rI   c                  8   t          d          } |                                 dk    sJ |                                 rJ |                     d           |                     d           |                                 dk    sJ |                                 sJ d S )NFooBarT)r   get_textget_multilinebaselineset_textset_multilinebaseline)tas    rG   test_textarea_propertiesr6    s    	%B;;==E!!!!'')))))KKT""";;==E!!!!##%%%%%%%rI   c                    |                                 }t          dd          }|                    |           |                                  }t          dd          }|                    |           |j                            d           d S )Nr/  rX   r0  )add_subplotr   r<   txtr3  )fig_testfig_refax_refr   ax_testr   s         rG   test_textarea_set_textr>    s      ""F--E
e""$$G--Eu	IurI   zpaddedbox.pngc                     t          j                    \  } }t          d          }t          |dddid          }t	          d|          }|                    |           t          d	          }t          |d
ddi          }t	          d|          }|                    |           t          d          }t          |dd          }t	          d|          }|                    |           d S )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   r5  r(  r   s        rG   test_paddedboxrD    s    lnnGC	%B	21;*<	N	N	NB	<r	2	2	2BMM"	%B	22K+=	>	>	>B	=	3	3	3BMM"	(		B	22$	/	/	/B	=	3	3	3BMM"rI   c                     t          j                    \  } }|                    dd          }|                    d           |                                 t          d| j        dd                                           d S )Nr"  r*   Tbutton_release_eventr3   )r4   r5   r   	draggableremover   rK   r   )r@   rA   ans      rG   test_remove_draggablerJ    sl    lnnGC	UH	%	%BLLIIKKK%sz1a88AACCCCCrI   c                  p   t          j                    } |                                                     g d                              dd          }|                    d           | j                                         t          d| j        dd          	                                 |j
        j        sJ d S )N)r   r   r3   r3   r"  r   Tr   r3   )r4   r  
subfiguresadd_axesr   rG  rK   rL   r   r   
_draggable
got_artist)r@   anns     rG   test_draggable_in_subfigurerQ    s    
*,,C
..


#
#LLL
1
1
:
:5&
I
ICMM$JOO#SZA66??AA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-  r6  r>  rD  rJ  rQ  r   rI   rG   <module>r`     s{   " " " " " " 				     ) ) ) ) ) )  O O O O O O O O       % % % % % % ! ! ! ! ! ! < < < < < < < <O O O O O O O O O O O O O O O O O O O O O O O O O O
 '(d;;;    <; F" " "J  *
 
 
 %3%#sDF F"9::00!=>>7 7 ?> 10 ;:F F
7 *Y ?
@
@ 7G		1999~? ? ?G		b)))_> > >G		Q			N< < <:  , , , 7GDda5FH H HG		b)))_> > >G		Q,<> > >:  , , , 7G		999~? ? ?GQDA7G7G7G3HJ J JG4Q!YYYA A A:  , , ,K K K
 '@'@'@AA" " "# #/ /# # BA/d +,$gNNN  ON +(FGG7 7 HG7t- - -, , ,  #> #> #> ? ?,: ,:? ?,:^! ! !
+ 
+ 
+& & &    ?#WEEE  FE&D D D% % % % %rI   