§
    ‡Ûg{  ã                   ó~  — d Z ddlm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j        ¦  «        Z G d	„ d
ej        ¦  «        Z G d„ dej        ¦  «        Z G d„ de
¦  «        Z ee¦  «          edgd¬¦  «        d„ ¦   «         Z edgd¬¦  «        d„ ¦   «         Z dS )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        |                     ¦   «         ¦  «         Œ0t          j
        | j        j        |                      ¦   «         ¦  «        }t          j
        | j        j        |                      ¦   «         ¦  «        }| j                             | j                             ¦   «         o|¦  «         | j                             | j                             ¦   «         o|¦  «         | j                             | j                             ¦   «         o|¦  «         | j                             | j                             ¦   «         o|¦  «         t          ¦   «                              |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©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         €úP/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_skew.pyr   zSkewXTick.draw   sÛ  ø€ Ý‰[Œ[ð 	#˜EØœ=¨$¬.¸$¼.Øœ;¨¬ð5ð Ið I�à—’˜vÔ1°6×3EÒ3EÑ3GÔ3GÑHÔHÐHÐHÝ$Ô6Ø”	Ô$ d§l¢l¡n¤nñ6ô 6ˆKå$Ô6Ø”	Ô$ d§l¢l¡n¤nñ6ô 6ˆKàŒN×&Ò&Ø”×*Ò*Ñ,Ô,Ð<°ñ>ô >ð >àŒK×#Ò#Ø”×'Ò'Ñ)Ô)Ð9¨kñ;ô ;ð ;àŒN×&Ò&Ø”×*Ò*Ñ,Ô,Ð<°ñ>ô >ð >àŒK×#Ò#Ø”×'Ò'Ñ)Ô)Ð9¨kñ;ô ;ð ;å‰GŒG�LŠL˜Ñ"Ô"Ð"ð!	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#ð 	#ð 	#s   �F F=Æ=GÇGc                 ó>   — | j         j                             ¦   «         S r
   )r   ÚxaxisÚget_view_interval©r   s    r"   r%   zSkewXTick.get_view_interval)   s   € ØŒyŒ×0Ò0Ñ2Ô2Ð2ó    )Ú__name__Ú
__module__Ú__qualname__r   r%   Ú__classcell__©r!   s   @r"   r   r      sG   ø€ € € € € ð#ð #ð #ð #ð #ð&3ð 3ð 3ð 3ð 3ð 3ð 3r'   r   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú	SkewXAxisc                 ó0   — t          | j        d |¬¦  «        S )N)Úmajor)r   r   )r   r0   s     r"   Ú	_get_tickzSkewXAxis._get_tick0   s   € Ý˜œ D°Ð6Ñ6Ô6Ð6r'   c                 óJ   — | j         j        d         | j         j        d         fS )Nr   é   )r   r   r   r&   s    r"   r%   zSkewXAxis.get_view_interval3   s!   € ØŒyÔ# AÔ&¨¬	Ô(<¸QÔ(?Ð?Ð?r'   N)r(   r)   r*   r1   r%   © r'   r"   r.   r.   /   s7   € € € € € ð7ð 7ð 7ð@ð @ð @ð @ð @r'   r.   c                   ó   — e Zd Zd„ ZdS )Ú	SkewSpinec                 ó„   — | j         j        }| j        dk    r| j        j        |d d …df<   d S | j        j        |d d …df<   d S )NÚtopr   )Ú_pathÚverticesÚ
spine_typer   r   r   ©r   Úptss     r"   Ú_adjust_locationzSkewSpine._adjust_location;   sM   € ØŒjÔ!ˆØŒ?˜eÒ#Ð#Øœ	Ô,ˆC����1�‰IˆIˆIàœ	Ô,ˆC����1�‰IˆIˆIr'   N)r(   r)   r*   r>   r4   r'   r"   r6   r6   :   s#   € € € € € ð-ð -ð -ð -ð -r'   r6   c                   óZ   ‡ — 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        ¦  «         t          j        | ¦  «        | _        | j        j	                             | j        ¦  «         | j        j
                             | j        ¦  «         d S r
   )r.   r$   Úspinesr8   Úregister_axisÚbottomÚmaxisÚYAxisÚyaxisÚleftÚrightr&   s    r"   Ú
_init_axiszSkewXAxes._init_axisK   s‘   € å˜t‘_”_ˆŒ
ØŒŒ×%Ò% d¤jÑ1Ô1Ð1ØŒÔ×(Ò(¨¬Ñ4Ô4Ð4Ý”[ Ñ&Ô&ˆŒ
ØŒÔ×&Ò& t¤zÑ2Ô2Ð2ØŒÔ×'Ò'¨¬
Ñ3Ô3Ð3Ð3Ð3r'   c                 óú   — t                                | d¦  «        t          j                             | d¦  «        t          j                             | d¦  «        t          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_spinesT   si   € Ý"×/Ò/°°eÑ<Ô<Ý#œM×6Ò6°t¸XÑFÔFÝ!œ-×4Ò4°T¸6ÑBÔBÝ"œ=×5Ò5°d¸GÑDÔDðFð Fˆð ˆr'   c                 ó¼  •— d}t          ¦   «                              ¦   «          | j        | j        t	          j        ¦   «                              |d¦  «        z   z   | _        | j        | j        z   | _	        t	          j
        | j        | j        z   t	          j        ¦   «         ¦  «        t	          j        ¦   «                              |d¦  «        z   | j        z   | _        dS )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Ý!+Ô!4Ñ!6Ô!6×!?Ò!?ÀÀQÑ!GÔ!Gñ"Hñ!IˆÔð
 Ô-°´Ñ>ˆŒõ ",Ô!EØŒO˜dÔ.Ñ.ÝÔ(Ñ*Ô*ñ",ô ",õ ÔÑ!Ô!×*Ò*¨3°Ñ2Ô2ñ"3ð 7;´nñ!EˆÔÐÐr'   c                 ó$   — | j         j        j        S r
   )r   ÚviewLimÚ	intervalxr&   s    r"   r   zSkewXAxes.lower_xlimx   s   € àŒyÔ Ô*Ð*r'   c                 ó~   — ddgddgg}| j                              ¦   «                              |¦  «        d d …df         S )Ng        g      ð?r   )rX   ÚinvertedÚ	transformr<   s     r"   r   zSkewXAxes.upper_xlim|   sD   € à�Bˆx˜"˜b˜Ð"ˆØÔ#×,Ò,Ñ.Ô.×8Ò8¸Ñ=Ô=¸a¸a¸aÀ¸dÔCÐCr'   )r(   r)   r*   ÚnamerK   rP   rS   Úpropertyr   r   r+   r,   s   @r"   r@   r@   F   sŸ   ø€ € € € € ð €Dð4ð 4ð 4ðð ð ðEð Eð Eð Eð Eð: ð+ð +ñ „Xð+ð ðDð Dñ „XðDð Dð Dð Dð Dr'   r@   Ú	skew_axesT)Úremove_textc                  ó  — t          j        ¦   «         } |                      dddd¬¦  «        }|                     dd¦  «         |                     dd¦  «         |                     d¦  «         |                     dd¬	¦  «         d S )
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Ô	5€BØ‡K‚K��RÑÔÐØ‡K‚K��CÑÔÐØ‡G‚GˆD�M„M€Mð ‡J‚Jˆq˜€JÑÔÐÐÐr'   Ú
skew_rectsc                  óÊ  — t          j        ddddd¬¦  «        \  } }|j        }t          t	          j        g d¢d¬¦  «        ¦  «        }|d                              d	d
g¦  «         |d                              d	d
g¦  «         |d                              dd¬¦  «         t          ||¦  «        D ]™\  }\  }}d|z  d|z  }}t          j        ¦   «                              ||¦  «        }|                     d                     ||¦  «        ¦  «         |                     t!          j        ddgdd||j        z   dd¬¦  «        ¦  «         Œšt          j        ddddd¬¦  «         d S )Né   T)é   r{   )ÚsharexÚshareyÚfigsize)éýÿÿÿéÿÿÿÿr   r3   é   é   )Úrepeatr   r   r�   Úequal)Úshareé-   zSkew of {0} in X and {1} 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ÚformatÚ	add_patchÚmpatchÚ	RectanglerZ   Úsubplots_adjust)	Úfixr   Ú	rotationsrv   ÚxrotsÚyrotsÚxdegÚydegÚts	            r"   Útest_skew_rectanglerŸ   “   s‹  € õ ”˜Q ¨$°tÀVÐLÑLÔL�I€CˆØŒ9€Då•YÔ&Ð'8Ð'8Ð'8ÀÐCÑCÔCÑDÔD€Iàˆ„G×Ò�b˜!�WÑÔÐØˆ„G×Ò�b˜!�WÑÔÐØˆ„G×Ò�w dÐÑ+Ô+Ð+å! $¨	Ñ2Ô2ð Eð EÑˆ‰NˆU�EØ˜%‘Z  e¡ˆdˆÝÔÑ!Ô!×*Ò*¨4°Ñ6Ô6ˆà
�ŠÐ4×;Ò;¸DÀ$ÑGÔGÑHÔHÐHØ
�Š•VÔ% r¨2 h°°1Ø01°B´LÑ0@Ø,/¸7ðDñ Dô Dñ 	Eô 	Eð 	Eð 	Eõ Ô˜q t°4ÀÈ$ÐOÑOÔOÐOÐOÐOr'   )!Ú__doc__Ú
contextlibr   rŽ   Ú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   rŸ   r4   r'   r"   ú<module>r¯      sü  ððð ð !Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :à  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6ð
3ð 3ð 3ð 3ð 3�”ñ 3ô 3ð 3ð4@ð @ð @ð @ð @�”ñ @ô @ð @ð-ð -ð -ð -ð -�”ñ -ô -ð -ð9Dð 9Dð 9Dð 9Dð 9D�ñ 9Dô 9Dð 9Dð| Ð �IÑ Ô Ð ð Ð�;�-¨TÐ2Ñ2Ô2ðð ñ 3Ô2ðð Ð�<�.¨dÐ3Ñ3Ô3ðPð Pñ 4Ô3ðPð Pð Pr'   