
    ^jF                        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	
      d        Z#d Z$d Z%d Z&ejN                  jQ                  ddgg ddgddgf      ejN                  jQ                  dd      ejN                  jQ                  dd      ejN                  jQ                  dd      d                             Z) edd      Z*ejN                  jQ                  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jN                  jQ                  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jN                  jQ                  d e*g d*d+dd+g d,f!       e*g d-d.dd.g d/f!       e*g d0ddd+g d,f!      g      d1        Z-d2 Z.ejN                  jQ                  d3g d4      ejN                  jQ                  d5g d6      d7               Z/ e
d8gdd9
      d:        Z0ejN                  jQ                  d;d<d=g      d>        Z1d? Z2d@ Z3ejN                  jQ                  dAg dB      dC        Z4dD Z5dE Z6dF Z7 e	       dG        Z8 e
dHgdd9
      dI        Z9dJ Z:dK Z;dL Z<y)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            	         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      }|j                  |       |j                  |       |j                  |       |j                  dd       |j                  dd       y )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          j/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_offsetbox.pytest_offsetbox_clippingrJ      s     llnGCD	T4d	+B			FD$&/&,&'
)B ==4%(DH-QQ/?&#%'D %||L MM"MM$MM,KK1KK1    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                  |       |j                  |       | j                  j                          | j                  rJ d|_        | j                  sJ y )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	T4d	+B			FD$&/&,&'
)B ==4%(DH-QQ/?&#%'D %||L MM"MM$MM,JJOOyy=B999rK   c                      ddddddddd	d
d
} t        j                         \  }}t        dd      }| D ]   }t        ||      }|j	                  |       " |j
                  j                          y )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   \   s{    
E llnGC	S#	B $(T<
l#$ JJOOrK   c                      t        j                         \  } }ddg}ddg}|j                  |d       |j                  |d       |j                  dd       | j	                          y )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                 "    t        | |||       y )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                 `    t        | ||d      }|d   |d   k(  sJ t        |d   |d          y )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                 `    t        | ||d      }|d   |d   k(  sJ t        |d   |d          y )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                 `    t        | ||d      }|d   |d   k(  sJ t        |d   |d          y )Nrv   rx   r   r5   r}   r~   s        rI   test_get_packed_offsets_equalr      s<     !'BF!9###F1Ix{+rK   c                      t        j                  t              5  t        g dd d d       d d d        y # 1 sw Y   y xY w)N)r5   r5   r5   rv   )rq   rt   rg   )pytestraises
ValueErrorr    rK   rI   1test_get_packed_offsets_equal_total_none_sep_noner      s5    	z	" KITt'JK K Ks   5>
child_type)rN   imagetext	boxcoords)axes fractionaxes pixelsaxes pointsdatac                 :  	 | dk(  r5t        dd      }|j                  t        j                  dddd             nJ| 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|      }|j                  d       |j                  |       g 	|j                  j                  d	fd       |dk(  rI|j                  j                  d      \  }}|d|j                   z  dz  z  }|d|j                   z  dz  z  }nL|dk(  r)|j                  j                  d      \  }}|dz  }|dz  }n|j                  j                  d      \  }}|j                  j#                          	j%                          t'        d|j                  ||t(        j*                        j-                          t/        	      dk(  r	d   j0                  |k(  sJ |j3                  dd       |j5                  dd       |j                  j#                          	j%                          t'        d|j                  ||t(        j*                        j-                          t/        	      dk(  sJ y )NrN   rT   r   r   )r"   r   rT   rT   )r%   r%   r   u   ■fontsize)	textpropszUnknown picking child type r,   )r   T
pick_eventc                 &    j                  |       S )N)append)eventcallss    rI   <lambda>ztest_picking.<locals>.<lambda>   s    u||E7J rK   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      s9    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1	S377]R	S377]R	m	#||++F31	S	S||++J71JJOO	KKMcjj!Q0@0@BBJ(*u:?uQx"444 KKAKKAJJOO	KKMcjj!Q0@0@BBJ(*u:??rK   zanchoredtext_align.pngmpl20c                      t        j                         \  } }t        dddddi      }|j                  |       t        dddddi      }|j                  |       t        ddddd	i      }|j                  |       y )
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                    t         j                  j                  t         j                         t        j                  dd      \  }}|j                  g d       |j                  dddt        d	      d
dd      }t        ddddd      }t        j                  dd      }|j                  |       t        |ddgddddt        d	            }|j                  |       t        t        j                  j!                  dd      d      }||j"                  _        t        |ddddd t        d	      !      }|j                  |        t'        |d"|               }	g d#}
t)        |	j*                  |
d$%        t'        |d"|               }g d&}t)        |j*                  |d$%        t'        |d"|               }g d'}t)        |j*                  |d$%       t-        j.                         }|j1                  |d()       |j3                  d       t        j4                  |      j6                  }d*}t)        ||d$%       |j8                  j;                          |j=                          |j8                  j;                          y )+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BHHM
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                  :    t        d      j                  dk(  sJ y )N*   )zorder)r   r   r   rK   rI   test_zorderr   ?  s    B&&",,,rK   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 y )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           
         t        j                  d      }|j                  j                         }d\  }}d\  }}t	        ||      }t	        ||      }t        ||g|       }	|	j                  |       |	j                  |      }
|	j                  |
|      \  }}t        |
j                  dd||z   t        ||      f       | dv rd}n| dv r||z
  }n| d	k(  r||z
  d
z  }t        |	j                         D cg c]  }|j                          c}||z   f||z   |fg       t        ||g|       }|j                  |       |j                  |      }
|j                  |
|      \  }}t        |
j                  dt        ||       t        ||      ||z   f       | dv rd}n| dv r||z
  }n| d	k(  r||z
  d
z  }t        |j                         D cg c]  }|j                          c}|z   |f|||z
  fg       y c c}w c c}w )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 Bxu5GLLH%Dh/FBDKK!QRR!=>..	"	"7	(	Gq=W5I5I5KLEU%%'L"x-(27B-8: Bxu5GLLH%Dh/FBDKK!c"bk\3r2;R!HI..	"	"7	(	Gq=W5I5I5KLEU%%'L8mR(2rBw-8:% M$ Ms   5G9G>c                      t        j                         \  } }t        dd      }t        |ddid      }|j	                  |       | j                          y )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%  ~  sH    llnGC	el	+B	2K#5$	GBMM" rK   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 y )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                      t        d      } | j                         dk(  sJ | j                         rJ | j                  d       | j	                  d       | j                         dk(  sJ | j                         sJ y )NFooBarT)r   get_textget_multilinebaselineset_textset_multilinebaseline)tas    rI   test_textarea_propertiesr2    sq    	%B;;=E!!!'')))KKT";;=E!!!##%%%rK   c                     |j                         }t        dd      }|j                  |       | j                         }t        dd      }|j                  |       |j                  j	                  d       y )Nr+  rZ   r,  )add_subplotr   r>   txtr/  )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                     t        j                         \  } }t        d      }t        |dddid      }t	        d|      }|j                  |       t        d	      }t        |d
ddi      }t	        d|      }|j                  |       t        d      }t        |dd      }t	        d|      }|j                  |       y )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   r1  r$  r   s        rI   test_paddedboxr@    s    llnGC	%B	21;*<	NB	<r	2BMM"	%B	22K+=	>B	=	3BMM"	(	B	22$	/B	=	3BMM"rK   c                      t        j                         \  } }|j                  dd      }|j                  d       |j	                          t        d| j                  dd      j                          y )Nr  r,   Tbutton_release_eventr5   )r6   r7   r   	draggableremover   rM   r   )rB   rC   ans      rI   test_remove_draggablerF    sR    llnGC	UH	%BLLIIK%szz1a8AACrK   c                  $   t        j                         } | j                         j                  d      j	                  dd      }|j                  d       | j                  j                          t        d| j                  dd      j                          |j                  j                  sJ t        d| j                  dd      j                          |j                  j                  rJ t        d| j                  dd      j                          |j                  j                  rJ |j                         }t        d| j                  |j                  d	z   |j                  d	z         j                          |j                  j                  rJ y )
N)r   r   r5   r5   r  r   Tr   r5   rB  scroll_eventr%   )r6   r  
subfiguresadd_axesr   rC  rM   rN   r   r   
_draggable
got_artistget_window_extentr  r  )rB   annr  s      rI   test_draggable_in_subfigurerO    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                  X   t        j                         \  } }t        ddd      }|j                  |       t        ddd      }|j                  |       t        ddd      }|j                  |       | j                  j                          |j                         }|j                         }|j                         }|j                  |j                  k(  sJ |j                  |j                  k(  sJ |j                  |j                  kD  sJ |j                  |j                  k  sJ y	)
zV
    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   rM  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)  r2  r:  r@  rF  rO  r\  r   rK   rI   <module>rk     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   