
    h                         S SK rS SKrS SKJr  S SKJr  S SKJ	r	J
r
  S r\
" S/5      S 5       r\
" S/5      S 5       r\	" S	/S
9S 5       r\
" S/5      S 5       rS r\
" S/5      S 5       rg)    N)Spines)check_figures_equalimage_comparisonc                  @    " S S5      n U " 5       U " 5       U " 5       U " 5       S.n[        S0 UD6nUS   US   L d   eUR                  US   L d   eUSS/   R                  S5        UR                  R                  S:X  d   eUR                  R                  S:X  d   eUR
                  R                  b   eUR                  R                  b   eUSS R                  S5        [        S	 UR                  5        5       5      (       d   eUSS R                  S
S9  [        S UR                  5        5       5      (       d   e[        R                  " [        SS9   UR                    SSS5        [        R                  " [        SS9   US     SSS5        [        R                  " [        SS9   U/ SQ     SSS5        [        R                  " [        SS9   US     SSS5        [        R                  " [        SS9   USS   SSS5        [        R                  " [        SS9   USS   SSS5        g! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nz= f! , (       d  f       g= f)z)Test Spines and SpinesProxy in isolation.c                   &    \ rS rSrS rS rS rSrg)#test_spine_class.<locals>.SpineMock   c                     S U l         g Nval)selfs    N/var/www/html/env/lib/python3.13/site-packages/matplotlib/tests/test_spines.py__init__,test_spine_class.<locals>.SpineMock.__init__   s	    DH    c                 8    [        U 5      R                  U5        g r   )varsupdate)r   kwargss     r   set'test_spine_class.<locals>.SpineMock.set   s    Jf%r   c                     Xl         g r   r   )r   r   s     r   set_val+test_spine_class.<locals>.SpineMock.set_val   s    Hr   r   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__ r   r   	SpineMockr      s    		&	r   r"   )leftrighttopbottomr#   r$   xNyc              3   >   #    U  H  oR                   S :H  v   M     g7f)r(   Nr   .0spines     r   	<genexpr>#test_spine_class.<locals>.<genexpr>'   s     =_EyyC_   barfooc              3   >   #    U  H  oR                   S :H  v   M     g7f)r0   Nr1   r*   s     r   r-   r.   *   s     ?eyyE!r/   r2   )matchzfoo, bar)r#   r2   r$   r0   zsingle list)r#   r$   zSpines does not support slicingr%   r!   )r   r#   r   r   r$   r%   r&   allvaluesr   pytestraisesAttributeErrorr2   KeyError
ValueError)r"   spines_dictspiness      r   test_spine_classr>   	   s     {+	K "k"F&>[0000;;+f----
FG%%c*;;??c!!!<<s"""::>>!!!==$$$
1Ic=V]]_=====
1IMMeM?v}}?????	~U	3

 
4	xu	-u 
.	xz	2./ 
3	z	7 
8	z)J	Kvg 
L	z)J	Kuv 
L	K 
4	3	-	-	2	2	7	7	K	K	K	KsH   H:I4II-I>+J:
I
I
I*-
I;>
J
Jspines_axes_positionsc                     [         R                  " 5       n [        R                  " SS[        R                  -  S5      nS[        R
                  " U5      -  nU R                  SSS5      nUR                  S5        UR                  X5        UR                  R                  R                  S5        UR                  R                  S5        UR                  R                  R                  S5        UR                  R                  S	5        UR                  R                   R#                  S
5        UR                  R$                  R#                  S
5        g )Nr      d      zcentered spines)axes皙?r$   )rD   g      ?r%   none)pltfigurenplinspacepisinadd_subplot	set_titleplotr=   r$   set_positionyaxisset_ticks_positionr%   xaxisr#   	set_colorr&   )figr'   r(   axs       r   test_spines_axes_positionsrW   :   s     **,C
Aqw$A	"&&)A	Aq	!BLL"#GGAMIIOO  /HH(IIMM~.HH&IINNV$IIv&r   spines_data_positionsc                     [         R                  " 5       u  pUR                  R                  R	                  S5        UR                  R
                  R	                  S5        UR                  R                  R	                  S5        UR                  R                  R	                  S5        UR                  SS/5        UR                  SS/5        g )N)datag      )rZ   g      ?)rZ   g      zerorA   )
rG   subplotsr=   r#   rP   r%   r$   r&   set_xlimset_ylimrU   rV   s     r   test_spines_data_positionsra   K   s    llnGCIINN/IIMM}-IIOO  0II!!&)KKQKKQr   png)
extensionsc                 0   [         R                  R                  S5        U R                  5       nUR	                  SSS9  UR
                  R                  R                  S5        UR
                  R                  R                  S5        UR
                  R                  R                  S5        UR                  SS	S
S9  UR                  5       nUR	                  SSS9  UR
                  R                  R                  S5        UR                  SS	S	SS9  g )Ndefaultlog)rE   rC   )xscalexlim)rZ   rC   rA   )rZ   rE   r(   Fin)axis	labelleft	directionT)rj   rk   r#   r$   )rG   styleuserM   r   r=   r#   rP   set_linewidthr$   tick_params)fig_testfig_refrV   s      r   #test_spine_nonlinear_data_positionsrs   V   s    IIMM)				BFF%gF&
 IINN,IINN  #IIOO  .NNuN=				BFF%gF&IIOO!!!$NNu5NEr   spines_capstylec                      [         R                  " SSS9  [         R                  " 5       u  pUR                  / 5        UR	                  / 5        g )NrD      )	linewidth)rG   rcr]   
set_xticks
set_yticksr`   s     r   test_spines_capstyler{   k   s7     FF6R llnGCMM"MM"r   c                  H   [         R                  " 5       u  p[         R                  " SSS9  UR                  [        R
                  " S5      5        UR                  R                  S5        UR                  R                  R                  S5        UR                  R                  R                  S5        UR                  S5        UR                  R                  S5        UR                  R                  R                  S5        UR                  R                   R                  S5        UR#                  S	5        UR                  R%                  / 5        UR                  R%                  / 5        [         R&                  " 5         UR                  R                  nUR)                  5       R+                  UR-                  5       5      R/                  5       nUR                  R0                  R3                  5       S
   UR4                  :  d   S5       eUR                  R                  nUR)                  5       R+                  UR-                  5       5      R/                  5       nUR                  R0                  R3                  5       S   UR6                  :  d   S5       eg )Ng333333?)r#   r&   
   r#   )outward   Fzy labelr&   zx labelr   z"Y-Axis label not left of the spinerC   z X-Axis label not below the spine)rG   r]   subplots_adjustrO   rI   arangerQ   rR   r=   r#   rP   r$   set_visible
set_ylabelrS   r&   r%   
set_xlabel	set_ticksdrawget_transformtransform_pathget_pathget_extentslabelget_positionxminymin)rU   rV   r,   	spinebboxs       r   test_label_without_ticksr   t   s   llnGCS-GGBIIbMHH'IINN0IIOO&MM)HH)II!!/2IIMMe$MM)HHrHHrHHJIINNE##%44%+- 88>>&&(+inn< -,-< IIE##%44%+- 88>>&&(+inn< +*+<r   
black_axesc                  F   S[         R                  S'   S[         R                  S'   [         R                  " SSS9n U R                  S5      nUR	                  / 5        UR                  / 5        UR                  / 5        UR                  / 5        UR                  S5        g )	Nr   zsavefig.pad_inchestightzsavefig.bbox)   r   )figsize)r   r   rC   rC   )r   r   r   )	rG   rcParamsrH   add_axesset_xticklabelsset_yticklabelsry   rz   set_facecolorr`   s     r   test_spines_black_axesr      s     *+CLL%&#*CLL 
**Q
'C	l	#BrrMM"MM"Yr   )numpyrI   r7   matplotlib.pyplotpyplotrG   matplotlib.spinesr   matplotlib.testing.decoratorsr   r   r>   rW   ra   rs   r{   r   r   r!   r   r   <module>r      s       $ O.b *+,' -'  *+, - (F )F( $%& '+: <.!
  "
 r   