
    
3j                         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/SS9S 5       r\
" S	/SS9S
 5       r\	" 5       S 5       r\
" S/SS9S 5       rS r\
" S/SS9S 5       rS rS 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    V/home/wildlama/miniconda3/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zspines_axes_positions.pngmpl20)stylec                     [         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$   )rE   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_positionsrX   :   s     **,C
Aqw$A	"&&)A	Aq	!BLL"#GGAMIIOO  /HH(IIMM~.HH&IINNV$IIv&r   zspines_data_positions.pngc                     [         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        UR                  R                  S5        UR                  R                  S5        g )N)datag      )rZ   g      ?)rZ   g      zerorB   both)rH   subplotsr=   r#   rQ   r%   r$   r&   set_xlimset_ylimrT   rS   rR   rV   rW   s     r   test_spines_data_positionsrb   K   s    llnGCIINN/IIMM}-IIOO  0II!!&)KKQKKQHH'HH'r   c                 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)rF   rD   )xscalexlim)rZ   rD   rB   )rZ   rF   r(   Fin)axis	labelleft	directionT)ri   rj   r#   r$   )rH   r@   userN   r   r=   r#   rQ   set_linewidthr$   tick_params)fig_testfig_refrW   s      r   #test_spine_nonlinear_data_positionsrq   X   s    IIMM)				BFF%gF&
 IINN,IINN  #IIOO  .NNuN=				BFF%gF&IIOO!!!$NNu5NEr   zspines_capstyle.png_classic_testc                      [         R                  " SSS9  [         R                  " 5       u  pUR                  / 5        UR	                  / 5        g )NrE      )	linewidth)rH   rcr^   
set_xticks
set_yticksra   s     r   test_spines_capstylery   m   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 spinerD   z X-Axis label not below the spine)rH   r^   subplots_adjustrP   rJ   arangerR   rS   r=   r#   rQ   r$   set_visible
set_ylabelrT   r&   r%   
set_xlabel	set_ticksdrawget_transformtransform_pathget_pathget_extentslabelget_positionxminymin)rV   rW   r,   	spinebboxs       r   test_label_without_ticksr   v   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   zblack_axes.pngc                  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   rD   rD   )r   r   r   )	rH   rcParamsrI   add_axesset_xticklabelsset_yticklabelsrw   rx   set_facecolorra   s     r   test_spines_black_axesr      s     *+CLL%&#*CLL 
**Q
'C	l	#BrrMM"MM"Yr   c                      [         R                  " 5       n U R                  SS9nUR                  S   nUR	                  S 5        UR                  S   R
                  b   eU R                  5         g )Npolar)
projectioninner)rH   rI   rN   r=   register_axisri   draw_without_rendering)rV   rW   inner_spines      r   test_arc_spine_inner_no_axisr      sb     **,C	G	,B))G$Kd#99W""*** r   c                  z   [         R                  " 5       u  p[        R                  " SSS5      n[        R                  " U5      nUR                  X#5        UR                  R                  nUR                  R                  nUR                  S   R                  SS5        UR                  S   R                  SS5        UR                  S   R                  5       nUS   c   S	5       e[        R                  " US   S5      (       d   S
5       e[        R                  " US   US   5      (       d   S5       eUR                  S   R                  5       nUS   b  US   c   S5       e[        R                  " US   US   5      (       d   S5       e[        R                  " US   US   5      (       d   S5       eg)z?Test that set_bounds(None, ...) uses original axis view limits.r   r{   rC   r&   rB   Nr#   rD   zHigher bound should be numericz'Lower bound should match provided valuez'Upper bound should match original valuezleft bound should be numericz'Lower bound should match original value)rH   r^   rJ   rK   rM   rP   viewLim	intervalx	intervalyr=   
set_bounds
get_boundsisclose)rV   rW   r'   r(   rg   ylimbottom_bound
left_bounds           r   test_spine_set_bounds_with_noner      s   llnGC 	Ar3A
q	AGGAM::D::DIIh""1d+IIf  t, 99X&113L?&H(HH&::l1oq))T+TT)::l1oAw    K!JK   6"--/JqM%JqM,E '&'F::jmT!W--X/XX-::jmT!W--X/XX-r   )numpyrJ   r7   matplotlib.pyplotpyplotrH   matplotlib.spinesr   matplotlib.testing.decoratorsr   r   r>   rX   rb   rq   ry   r   r   r   r   r!   r   r   <module>r      s       $ O.b ./w?' @'  ./w?	( @	( F F( ()A B+: #$O<
  =
 	!Yr   