Ë
    ¨ehÅ  ã                   óš  — d Z ddlmZ ddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  G d„ dej2                  «      Z G d	„ d
ej6                  «      Z G d„ dej:                  «      Z G d„ de«      Z ee«        e	dgd¬«      d„ «       Z  e	dgd ejB                  «       dk(  rdnd¬«      d„ «       Z"y)z)
Testing that skewed Axes properly work.
é    )Ú	ExitStackN)Úimage_comparison)ÚAxes)Úregister_projectionc                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )Ú	SkewXTickc                 óÊ  •— t        «       5 }| j                  | j                  | j                  | j                  | j
                  fD ],  }|j                  |j                  |j                  «       «       Œ. t        j                  | j                  j                  | j                  «       «      }t        j                  | j                  j                  | j                  «       «      }| j                  j                  | j                  j                  «       xr |«       | j                  j                  | j                  j                  «       xr |«       | j                  j                  | j                  j                  «       xr |«       | j
                  j                  | j
                  j                  «       xr |«       t        ‰| �A  |«       d d d «       y # 1 sw Y   y xY w©N)r   ÚgridlineÚ	tick1lineÚ	tick2lineÚlabel1Úlabel2ÚcallbackÚset_visibleÚget_visibleÚ
transformsÚinterval_containsÚaxesÚ
lower_xlimÚget_locÚ
upper_xlimÚsuperÚdraw)ÚselfÚrendererÚstackÚartistÚneeds_lowerÚneeds_upperÚ	__class__s         €úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/tests/test_skew.pyr   zSkewXTick.draw   sc  ø€ Ü‹[ð 	#˜EØŸ=™=¨$¯.©.¸$¿.¹.ØŸ;™;¨¯©ð5ò I�à—‘˜v×1Ñ1°6×3EÑ3EÓ3GÕHðIô %×6Ñ6Ø—	‘	×$Ñ$ d§l¡l£nó6ˆKä$×6Ñ6Ø—	‘	×$Ñ$ d§l¡l£nó6ˆKà�N‰N×&Ñ&Ø—‘×*Ñ*Ó,Ò<°ô>à�K‰K×#Ñ#Ø—‘×'Ñ'Ó)Ò9¨kô;à�N‰N×&Ñ&Ø—‘×*Ñ*Ó,Ò<°ô>à�K‰K×#Ñ#Ø—‘×'Ñ'Ó)Ò9¨kô;ä‰G‰L˜Ô"÷!	#÷ 	#ñ 	#ús   ŒGGÇG"c                 óJ   — | j                   j                  j                  «       S r
   )r   ÚxaxisÚget_view_interval©r   s    r"   r%   zSkewXTick.get_view_interval*   s   € Ø�y‰y�‰×0Ñ0Ó2Ð2ó    )Ú__name__Ú
__module__Ú__qualname__r   r%   Ú__classcell__©r!   s   @r"   r   r      s   ø„ ô#ö&3r'   r   c                   ó   — e Zd Zd„ Zd„ Zy)Ú	SkewXAxisc                 ó2   — t        | j                  d |¬«      S )N)Úmajor)r   r   )r   r0   s     r"   Ú	_get_tickzSkewXAxis._get_tick1   s   € Ü˜Ÿ™ D°Ô6Ð6r'   c                 óf   — | j                   j                  d   | j                   j                  d   fS )Nr   é   )r   r   r   r&   s    r"   r%   zSkewXAxis.get_view_interval4   s+   € Ø�y‰y×#Ñ# AÑ&¨¯	©	×(<Ñ(<¸QÑ(?Ð?Ð?r'   N)r(   r)   r*   r1   r%   © r'   r"   r.   r.   0   s   „ ò7ó@r'   r.   c                   ó   — e Zd Zd„ Zy)Ú	SkewSpinec                 óÄ   — | j                   j                  }| j                  dk(  r| j                  j                  |d d …df<   y | j                  j
                  |d d …df<   y )NÚtopr   )Ú_pathÚverticesÚ
spine_typer   r   r   ©r   Úptss     r"   Ú_adjust_locationzSkewSpine._adjust_location<   sK   € Ø�j‰j×!Ñ!ˆØ�?‰?˜eÒ#ØŸ	™	×,Ñ,ˆC’�1�ŠIàŸ	™	×,Ñ,ˆC’�1�ŠIr'   N)r(   r)   r*   r>   r4   r'   r"   r6   r6   ;   s   „ ó-r'   r6   c                   óN   ‡ — e Zd ZdZd„ Zd„ Zˆ fd„Zed„ «       Zed„ «       Z	ˆ xZ
S )Ú	SkewXAxesÚskewxc                 óÐ  — t        | «      | _        | j                  j                  j	                  | j                  «       | j                  j
                  j	                  | j                  «       t        j                  | «      | _        | j                  j                  j	                  | j                  «       | j                  j                  j	                  | j                  «       y r
   )r.   r$   Úspinesr8   Úregister_axisÚbottomÚmaxisÚYAxisÚyaxisÚleftÚrightr&   s    r"   Ú
_init_axiszSkewXAxes._init_axisL   s‹   € ä˜t“_ˆŒ
Ø�‰�‰×%Ñ% d§j¡jÔ1Ø�‰×Ñ×(Ñ(¨¯©Ô4Ü—[‘[ Ó&ˆŒ
Ø�‰×Ñ×&Ñ& t§z¡zÔ2Ø�‰×Ñ×'Ñ'¨¯
©
Õ3r'   c                 óð   — t         j                  | d«      t        j                  j                  | d«      t        j                  j                  | d«      t        j                  j                  | d«      dœ}|S )Nr8   rE   rI   rJ   )r8   rE   rI   rJ   )r6   Úlinear_spineÚmspinesÚSpine)r   rC   s     r"   Ú_gen_axes_spineszSkewXAxes._gen_axes_spinesU   s]   € Ü"×/Ñ/°°eÓ<Ü#ŸM™M×6Ñ6°t¸XÓFÜ!Ÿ-™-×4Ñ4°T¸6ÓBÜ"Ÿ=™=×5Ñ5°d¸GÓDñFˆð ˆr'   c                 óÔ  •— d}t         ‰| �  «        | j                  | j                  t	        j
                  «       j                  |d«      z   z   | _        | j                  | j                  z   | _	        t	        j                  | j                  | j                  z   t	        j                  «       «      t	        j
                  «       j                  |d«      z   | j                  z   | _        y)z�
        This is called once when the plot is created to set up all the
        transforms for the data, text and grids.
        é   r   N)r   Ú_set_lim_and_transformsÚ
transScaleÚtransLimitsr   ÚAffine2DÚskew_degÚtransDataToAxesÚ	transAxesÚ	transDataÚblended_transform_factoryÚIdentityTransformÚ_xaxis_transform)r   Úrotr!   s     €r"   rS   z!SkewXAxes._set_lim_and_transforms\   sÍ   ø€ ð
 ˆô 	‰Ñ'Ô)ð !%§¡Ø!%×!1Ñ!1Ü!+×!4Ñ!4Ó!6×!?Ñ!?ÀÀQÓ!Gñ"Hñ!IˆÔð
 ×-Ñ-°·±Ñ>ˆŒô ",×!EÑ!EØ�O‰O˜d×.Ñ.Ñ.Ü×(Ñ(Ó*ó",ô ×ÑÓ!×*Ñ*¨3°Ó2ñ"3ð 7;·n±nñ!EˆÕr'   c                 óB   — | j                   j                  j                  S r
   )r   ÚviewLimÚ	intervalxr&   s    r"   r   zSkewXAxes.lower_xlimy   s   € à�y‰y× Ñ ×*Ñ*Ð*r'   c                 ór   — ddgddgg}| j                   j                  «       j                  |«      d d …df   S )Ng        g      ð?r   )rX   ÚinvertedÚ	transformr<   s     r"   r   zSkewXAxes.upper_xlim}   s=   € à�Bˆx˜"˜b˜Ð"ˆØ×#Ñ#×,Ñ,Ó.×8Ñ8¸Ó=ºaÀ¸dÑCÐCr'   )r(   r)   r*   ÚnamerK   rP   rS   Úpropertyr   r   r+   r,   s   @r"   r@   r@   G   sD   ø„ ð €Dò4òôEð: ñ+ó ð+ð ñDó ôDr'   r@   Ú	skew_axesT)Úremove_textc                  óæ   — t        j                  «       } | j                  dddd¬«      }|j                  dd«       |j	                  dd«       |j                  d«       |j                  dd¬	«       y )
Nr3   rA   )Ú
projectioniÎÿÿÿé2   Tr   Úb)Úcolor)ÚpltÚfigureÚadd_subplotÚset_xlimÚset_ylimÚgridÚaxvline)ÚfigÚaxs     r"   Útest_set_line_coll_dash_imagerw   ˆ   s\   € ä
�*‰*‹,€CØ	�‰˜˜A˜q¨WˆÓ	5€BØ‡K�K��RÔØ‡K�K��CÔØ‡G�GˆD„Mð ‡J�Jˆq˜€JÕr'   Ú
skew_rectsÚx86_64g;ßO�—n‚?)rh   Útolc                  ó~  — t        j                  ddddd¬«      \  } }|j                  }t        t	        j
                  g d¢d¬«      «      }|d   j                  d	d
g«       |d   j                  d	d
g«       |d   j                  dd¬«       t        ||«      D ]‡  \  }\  }}d|z  d|z  }}t        j                  «       j                  ||«      }|j                  d|› d|› d�«       |j                  t        j                   ddgdd||j"                  z   dd¬«      «       Œ‰ t        j$                  ddddd¬«       y )Né   T)é   r}   )ÚsharexÚshareyÚfigsize)éýÿÿÿéÿÿÿÿr   r3   é   é   )Úrepeatr   r�   rƒ   Úequal)Úshareé-   zSkew of z
 in X and z in Yr‚   g      à?Úcoral)rd   ÚalphaÚ	facecolorg{®Gáz„?g®Gáz®ï?)ÚwspacerI   rJ   rE   r8   )rn   ÚsubplotsÚflatÚlistÚ	itertoolsÚproductrq   rr   Ú
set_aspectÚzipr   rV   rW   Ú	set_titleÚ	add_patchÚmpatchÚ	RectanglerZ   Úsubplots_adjust)	Úfixr   Ú	rotationsrv   ÚxrotsÚyrotsÚxdegÚydegÚts	            r"   Útest_skew_rectangler    ”   s8  € ô —‘˜Q ¨$°tÀVÔL�I€CˆØ�9‰9€Dä”Y×&Ñ&Ò'8ÀÔCÓD€Iàˆ�G×Ñ�b˜!�WÔØˆ�G×Ñ�b˜!�WÔØˆ�G×Ñ�w dÐÔ+ä! $¨	Ó2ò EÑˆ‰NˆU�EØ˜%‘Z  e¡ˆdˆÜ×ÑÓ!×*Ñ*¨4°Ó6ˆà
�‰�x ˜v Z°¨v°UÐ;Ô<Ø
�‰”V×%Ñ% r¨2 h°°1Ø01°B·L±LÑ0@Ø,/¸7ôDõ 	EðEô ×Ñ˜q t°4ÀÈ$ÖOr'   )#Ú__doc__Ú
contextlibr   r�   ÚplatformÚmatplotlib.pyplotÚpyplotrn   Úmatplotlib.testing.decoratorsr   Úmatplotlib.axesr   Úmatplotlib.transformsr   Úmatplotlib.axisÚaxisrF   Úmatplotlib.spinesrC   rN   Úmatplotlib.patchesÚpatchesr–   Úmatplotlib.projectionsr   ÚXTickr   ÚXAxisr.   rO   r6   r@   rw   Úmachiner    r4   r'   r"   ú<module>r²      sÏ   ðñõ !Û Û å Ý :å  Ý *Ý Ý #Ý #Ý 6ô
3�—‘ô 3ô4@�—‘ô @ô-�—‘ô -ô9D�ô 9Dñ| �IÔ ñ �;�-¨TÔ2ñó 3ðñ �<�.¨dØ+˜8×+Ñ+Ó-°Ò9‘a¸uôFñPóFñPr'   