ó
    “’¤j·  ã                   óÞ   • 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    ÚªC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\matplotlib/tests/test_spines.pyÚ__init__Ú,test_spine_class.<locals>.SpineMock.__init__   s	   € ØˆD�Hó    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   é € Ð=ª_ E�y‰y˜CÖª_ùó   ‚Úbar©Úfooc              3   ó>   #   • U  H  oR                   S :H  v •  M     g7f)r0   Nr1   r*   s     r   r-   r.   *   s   é € Ð?ª e�y‰y˜EÖ!ªù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Ñ-Ò-Ð-Ð-à
ˆF�GÐÑ×%Ñ% cÔ*Ø�;‰;�?‰?˜cÓ!Ð!Ð!Ø�<‰<×Ñ˜sÓ"Ð"Ð"Ø�:‰:�>‰>Ñ!Ð!Ð!Ø�=‰=×ÑÑ$Ð$Ð$à
‰1€I×Ñ�cÔÜÑ=¨V¯]©]¬_Ó=×=Ñ=Ð=Ð=à
‰1€I‡M�M�e€MÑÜÑ?¨v¯}©}¬Ó?×?Ñ?Ð?Ð?ä	�Š”~¨UÓ	3Ø�
Š
÷ 
4ä	�Š”x uÓ	-ØˆuŠ÷ 
.ä	�Š”x zÓ	2ØÒ.Ò/÷ 
3ä	�Š”z¨Ó	7ØˆÒ÷ 
8ä	�Š”zÐ)JÓ	KØˆv�gÑ÷ 
Lä	�Š”zÐ)JÓ	KØˆuˆv‰÷ 
LÐ	K÷ 
4Õ	3úç	-Õ	-úç	2Õ	2úç	7Õ	7úç	KÕ	Kúç	KÕ	KúsH   Å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Ü
�Š�A�qœŸ™‘w Ó$€AØ	Œ"�&Š&�‹)‰€AØ	�‰˜˜A˜qÓ	!€BØ‡L�LÐ"Ô#Ø‡G�GˆA„MØ‡I�I‡O�O× Ñ  Ô/Ø‡H�H×Ñ Ô(Ø‡I�I‡M�M×Ñ˜~Ô.Ø‡H�H×Ñ Ô&Ø‡I�I‡N�N×Ñ˜VÔ$Ø‡I�I×Ñ×Ñ˜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      à¿ÚzeroéþÿÿÿrB   Úboth)rH   Úsubplotsr=   r#   rQ   r%   r$   r&   Úset_xlimÚset_ylimrT   rS   rR   ©rV   rW   s     r   Útest_spines_data_positionsrb   K   s­   € ä�lŠl‹n�G€CØ‡I�I‡N�N×Ñ Ô/Ø‡I�I‡M�M×Ñ˜}Ô-Ø‡I�I‡O�O× Ñ  Ô0Ø‡I�I×Ñ×!Ñ! &Ô)Ø‡K�K��Q�ÔØ‡K�K��Q�ÔØ‡H�H×Ñ Ô'Ø‡H�H×Ñ Õ'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Î   € ä‡I�I‡M�M�)Ôà	×	Ñ	Ó	€BØ‡F�F�%˜g€FÑ&ð
 ‡I�I‡N�N×Ñ Ô,Ø‡I�I‡N�N× Ñ  Ô#Ø‡I�I‡O�O× Ñ  Ô.Ø‡N�N˜ u¸€NÑ=à	×	Ñ	Ó	€BØ‡F�F�%˜g€FÑ&Ø‡I�I‡O�O×!Ñ! !Ô$Ø‡N�N˜ u°5À€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   € ô ‡F‚Fˆ6˜RÒ Ü�lŠl‹n�G€CØ‡M�M�"ÔØ‡M�M�"Õ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Ò  € Ü�lŠl‹n�G€CÜ×Ò˜S¨Ò-Ø‡G�GŒB�IŠI�b‹MÔØ‡H�H×Ñ Ô'Ø‡I�I‡N�N×Ñ Ô0Ø‡I�I‡O�O×Ñ Ô&Ø‡M�M�)ÔØ‡H�H×Ñ Ô)Ø‡I�I×Ñ×!Ñ! /Ô2Ø‡I�I‡M�M×Ñ˜eÔ$Ø‡M�M�)ÔØ‡H�H×Ñ�rÔØ‡H�H×Ñ�rÔÜ‡H‚H„Jà�I‰I�N‰N€EØ×#Ñ#Ó%×4Ñ4Ø�‰Óóß%™+›-ð à�8‰8�>‰>×&Ñ&Ó(¨Ñ+¨i¯n©nÓ<ð -Ø,ó-Ð<ð �I‰I×Ñ€EØ×#Ñ#Ó%×4Ñ4Ø�‰Óóß%™+›-ð à�8‰8�>‰>×&Ñ&Ó(¨Ñ+¨i¯n©nÓ<ð +Ø*ó+Ñ<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�   € ð *+„C‡L�LÐ%Ñ&Ø#*„C‡L�L�Ñ Ü
�*Š*�Q Ñ
'€CØ	�‰�lÓ	#€BØ×Ñ�rÔØ×Ñ�rÔØ‡M�M�"ÔØ‡M�M�"ÔØ×Ñ�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Ô#Ø�9‰9�WÑ×"Ñ"Ñ*Ð*Ð*à×ÑÕ 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“  € ä�lŠl‹n�G€Cô 	�Š�A�r˜3Ó€AÜ
�Šˆq‹	€AØ‡G�GˆA„Mà�:‰:×Ñ€DØ�:‰:×Ñ€Dà‡I�IˆhÑ×"Ñ" 1 dÔ+Ø‡I�IˆfÑ× Ñ   tÔ,ð —9‘9˜XÑ&×1Ñ1Ó3€LØ˜‰?Ñ&ÐHÐ(HÓHÐ&Ü�:Š:�l 1‘o q×)Ñ)ÐTÐ+TÓTÐ)Ü�:Š:�l 1‘oØ˜A‘w÷ ñ  ð KØ!JóKð  ð —‘˜6Ñ"×-Ñ-Ó/€JØ�q‰MÑ%¨J°q©MÑ,Eð 'Ø&ó'ÐFä�:Š:�j ‘m T¨!¡W×-Ñ-ÐXÐ/XÓXÐ-Ü�:Š:�j ‘m T¨!¡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   