§
    ‡Ûg·p  ã                   ó  — d dl Z d dlZd dlmZmZmZ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mZ d„ Zd„ Z edgd	d
d¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z! G d„ dej"        ¦  «        Z# G d„ d¦  «        Z$ G d„ d¦  «        Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d „ Z,d!„ Z-d"„ Z.d#„ Z/d$„ Z0d%„ Z1d&„ Z2ej3         4                    d'g d(¢¦  «        d)„ ¦   «         Z5d*„ Z6d+„ Z7d,„ Z8 ed-g¬.¦  «        d/„ ¦   «         Z9dS )0é    N)Úassert_allcloseÚassert_almost_equalÚassert_array_equalÚassert_array_almost_equal)Úscale)ÚPath)Úimage_comparisonÚcheck_figures_equalc                  ó\  —  G d„ dt           j        ¦  «        }  | ¦   «         }t          j        ¦   «         }t          j        t          j        d¦  «        ||j        z   ¬¦  «         t          j        ¦   «          d|_	        |j
                             ¦   «          t          j        ¦   «          d S )Nc                   óB   ‡ — e Zd ZdZdxZZdZˆ fd„Zd„ ZeZ	d„ Z
e
Zˆ xZS )ú<test_non_affine_caching.<locals>.AssertingNonAffineTransformz�
        This transform raises an assertion error when called when it
        shouldn't be and ``self.raise_on_transform`` is True.

        é   Fc                 ó    •—  t          ¦   «         j        |i |¤Ž d| _        t          j        ¦   «                              dd¦  «        | _        d S )NFé
   )ÚsuperÚ__init__Úraise_on_transformÚmtransformsÚAffine2Dr   Úunderlying_transform)ÚselfÚargsÚkwargsÚ	__class__s      €úV/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_transforms.pyr   zEtest_non_affine_caching.<locals>.AssertingNonAffineTransform.__init__   sN   ø€ Ø�E‰GŒGÔ˜dÐ- fÐ-Ð-Ð-Ø&+ˆDÔ#Ý(3Ô(<Ñ(>Ô(>×(DÒ(DÀRÈÑ(LÔ(LˆDÔ%Ð%Ð%ó    c                 óX   — | j         r
J d¦   «         ‚| j                             |¦  «        S ©Nz3Invalidated affine part of transform unnecessarily.)r   r   Útransform_path©r   Úpaths     r   Útransform_path_non_affinezVtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_path_non_affine   s@   € ØÔ.ð Fð FØEñFô Fð FàÔ,×;Ò;¸DÑAÔAÐAr   c                 óX   — | j         r
J d¦   «         ‚| j                             |¦  «        S r   )r   r   Ú	transformr    s     r   Útransform_non_affinezQtest_non_affine_caching.<locals>.AssertingNonAffineTransform.transform_non_affine%   s@   € ØÔ.ð Fð FØEñFô Fð FàÔ,×6Ò6°tÑ<Ô<Ð<r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú
input_dimsÚoutput_dimsÚ	is_affiner   r"   r   r%   r$   Ú__classcell__©r   s   @r   ÚAssertingNonAffineTransformr      s{   ø€ € € € € ð	ð 	ð
 $%Ð$ˆ
�[Øˆ	ð	Mð 	Mð 	Mð 	Mð 	Mð
	Bð 	Bð 	Bð 3ˆð	=ð 	=ð 	=ð )ˆ	ˆ	ˆ	ˆ	ˆ	r   r/   r   ©r$   T)r   Ú	TransformÚpltÚaxesÚplotÚnpÚarangeÚ	transDataÚdrawr   Ú	transAxesÚ
invalidate)r/   Úmy_transÚaxs      r   Útest_non_affine_cachingr=      s¦   € ð)ð )ð )ð )ð )¥kÔ&;ñ )ô )ð )ð4 +Ð*Ñ,Ô,€HÝ	Œ‰Œ€BÝ„H�RŒY�r‰]Œ] h°´Ñ&=Ð>Ñ>Ô>Ð>Ý„H�J„J€Jð #'€HÔØ„L×ÒÑÔÐÝ„H�J„J€J€J€Jr   c                  óâ  —  G d„ d¦  «        } t          j        ¦   «         }t          j        t          j        d¦  «         | d¦  «        ¬¦  «        \  }|                     dd¦  «         |                     dd¦  «         t          |                     ¦   «         j	         
                    ¦   «         t          j        ¦   «                              d¦  «         
                    ¦   «         ¦  «         d S )Nc                   ó   — e Zd Zd„ Zd„ ZdS )ú-test_external_transform_api.<locals>.ScaledByc                 ó   — || _         d S ©N)Ú_scale_factor)r   Úscale_factors     r   r   z6test_external_transform_api.<locals>.ScaledBy.__init__8   s   € Ø!-ˆDÔÐÐr   c                 óh   — t          j        ¦   «                              | j        ¦  «        |j        z   S rB   )r   r   r   rC   r7   )r   r3   s     r   Ú_as_mpl_transformz?test_external_transform_api.<locals>.ScaledBy._as_mpl_transform;   s.   € ÝÔ(Ñ*Ô*×0Ò0°Ô1CÑDÔDØ”nñ%ð &r   N)r&   r'   r(   r   rF   © r   r   ÚScaledByr@   7   s2   € € € € € ð	.ð 	.ð 	.ð	&ð 	&ð 	&ð 	&ð 	&r   rH   r   r0   r   éd   )r2   r3   r4   r5   r6   Úset_xlimÚset_ylimr   Úget_transformÚ_aÚ
get_matrixr   r   r   )rH   r<   Úlines      r   Útest_external_transform_apirP   6   sé   € ð&ð &ð &ð &ð &ñ &ô &ð &õ 
Œ‰Œ€BÝŒH•R”Y˜r‘]”]¨h¨h°r©l¬lÐ;Ñ;Ô;�E€DØ‡K‚K��3ÑÔÐØ‡K‚K��3ÑÔÐå�D×&Ò&Ñ(Ô(Ô+×6Ò6Ñ8Ô8ÝÔ(Ñ*Ô*×0Ò0°Ñ4Ô4×?Ò?ÑAÔAñCô Cð Cð Cð Cr   Úpre_transform_dataTÚmpl20gš™™™™™©?)Úremove_textÚstyleÚtolc                  ó<  — t          j        ¦   «         } t          j        ¦   «                              d¦  «        }|                      t          j        d¦  «                             dd¦  «        || j	        z   ¬¦  «         |  
                    t          j        ddd¦  «        t          j        d	dd
¦  «        t          j        d¦  «                             dd¦  «        || j	        z   ¬¦  «         |                      t          j        dd¦  «        t          j        dd¦  «        || j	        z   ¬¦  «         t          j        ddd¦  «        }t          j        ddd¦  «        }dt          j        |¦  «        z  t          j        |d d …t          j        f         ¦  «        z   }t          j        |¦  «        t          j        |d d …t          j        f         ¦  «        z
  }|                      |||||| j	        z   t          j        ||¦  «        ¬¦  «         |d d d…         |d d d…         }}|d d d…d d d…f         |d d d…d d d…f         }}|                      ||dz   |||| j	        z   ¬¦  «         |                      |dz
  |dz   |dz  |dz  || j	        z   ¬¦  «         d S )Nr   é0   é   é   r0   r   é   é   g      @é	   é   é   é   r   )r$   Ú	linewidthé   )r2   r3   r   r   r   Úcontourfr5   r6   Úreshaper7   Ú
pcolormeshÚlinspaceÚscatterÚsinÚcosÚnewaxisÚ
streamplotÚhypotÚquiverÚbarbs)r<   Útimes10ÚxÚyÚuÚvs         r   Útest_pre_transform_plottingrs   H   so  € õ 
Œ‰Œ€BÝÔ"Ñ$Ô$×*Ò*¨2Ñ.Ô.€Gà‡K‚K•”	˜"‘”×%Ò% a¨Ñ+Ô+°wÀÄÑ7M€KÑNÔNÐNà‡M‚M•"”+˜a  AÑ&Ô&Ý”+˜c 1 aÑ(Ô(Ý”)˜B‘-”-×'Ò'¨¨1Ñ-Ô-Ø# b¤lÑ2ð ñ 4ô 4ð 4ð
 ‡J‚J�rŒ{˜1˜bÑ!Ô!¥2¤;¨r°1Ñ#5Ô#5Ø  2¤<Ñ/ð ñ 1ô 1ð 1õ 	Œ�A�r˜2ÑÔ€AÝ
Œ�A�q˜"ÑÔ€AØ	�"Œ&�‰)Œ)‰•b”f˜Q˜q˜q˜q¥"¤*˜}Ô-Ñ.Ô.Ñ.€AÝ
Œˆq‰	Œ	•B”F˜1˜Q˜Q˜Q¥¤
˜]Ô+Ñ,Ô,Ñ,€Aà‡M‚M�!�Q˜˜1¨°"´,Ñ(>ÝœH Q¨™NœNð ñ ,ô ,ð ,ð ˆSˆSˆqˆSŒ6�1�S�S�q�S”6€q€AØˆSˆSˆqˆS�#�#�A�#ˆXŒ;˜˜#˜#˜A˜#˜s˜s ˜s˜(œ€q€Aà‡I‚Iˆa��Q‘˜˜1¨°"´,Ñ(>€IÑ?Ô?Ð?à‡H‚HˆQ�‰U�A˜‘E˜1˜a™4  A¡°¸2¼<Ñ1G€HÑHÔHÐHÐHÐHr   c                  óâ  — t          j        ¦   «         } t          j        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  }}|                      ||t          j        ||z  ¦  «        t          j        ¦   «          	                    d¦  «        | j
        z   ¬¦  «         t          j        ddgd	d
gg¦  «        }t          || j                             ¦   «         ¦  «         d S )Né   r]   çÍÌÌÌÌÌ(@ç      )@çš™™™™™¹?r0   ç      ø?ç×£p=
×ó?ç       @ç      ô?)r2   r3   r5   Úmeshgridre   rb   Úlogr   r   r   r7   Úarrayr   ÚdataLimÚ
get_points©r<   ÚxsÚysÚexpecteds       r   Ú!test_contour_pre_transform_limitsr†   m   sØ   € Ý	Œ‰Œ€BÝŒ[�œ R¨¨RÑ0Ô0µ"´+¸dÀDÈ"Ñ2MÔ2MÑNÔN�F€BˆØ‡K‚K��B�œ˜r B™w™œÝ%Ô.Ñ0Ô0×6Ò6°sÑ;Ô;¸b¼lÑJð ñ Lô Lð Lõ Œx˜#˜t˜Ø˜d˜ð%ñ &ô &€Hå˜ "¤*×"7Ò"7Ñ"9Ô"9Ñ:Ô:Ð:Ð:Ð:r   c                  óú  — t          j        ¦   «         } t          j        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  }}|                      ||t          j        ||z  ¦  «        d d…d d…f         t          j        ¦   «          	                    d¦  «        | j
        z   ¬¦  «         t          j        dd	gd
dgg¦  «        }t          || j                             ¦   «         ¦  «         d S ©Nru   r]   rv   rw   éÿÿÿÿrx   r0   ry   rz   r{   r|   )r2   r3   r5   r}   re   Úpcolorr~   r   r   r   r7   r   r   r€   r�   r‚   s       r   Ú test_pcolor_pre_transform_limitsr‹   x   sé   € å	Œ‰Œ€BÝŒ[�œ R¨¨RÑ0Ô0µ"´+¸dÀDÈ"Ñ2MÔ2MÑNÔN�F€BˆØ‡I‚Iˆb�"•b”f˜R "™W‘o”o c r c¨3¨B¨3 hÔ/Ý#Ô,Ñ.Ô.×4Ò4°SÑ9Ô9¸B¼LÑHð ñ Jô Jð Jõ Œx˜#˜t˜Ø˜d˜ð%ñ &ô &€Hå˜ "¤*×"7Ò"7Ñ"9Ô"9Ñ:Ô:Ð:Ð:Ð:r   c                  óú  — t          j        ¦   «         } t          j        t          j        ddd¦  «        t          j        ddd¦  «        ¦  «        \  }}|                      ||t          j        ||z  ¦  «        d d…d d…f         t          j        ¦   «          	                    d¦  «        | j
        z   ¬¦  «         t          j        dd	gd
dgg¦  «        }t          || j                             ¦   «         ¦  «         d S rˆ   )r2   r3   r5   r}   re   rd   r~   r   r   r   r7   r   r   r€   r�   r‚   s       r   Ú$test_pcolormesh_pre_transform_limitsr�   „   sé   € å	Œ‰Œ€BÝŒ[�œ R¨¨RÑ0Ô0µ"´+¸dÀDÈ"Ñ2MÔ2MÑNÔN�F€BˆØ‡M‚M�"�b�"œ&  b¡™/œ/¨#¨2¨#¨s°¨s¨(Ô3Ý'Ô0Ñ2Ô2×8Ò8¸Ñ=Ô=ÀÄÑLð ñ Nô Nð Nõ Œx˜#˜t˜Ø˜d˜ð%ñ &ô &€Hå˜ "¤*×"7Ò"7Ñ"9Ô"9Ñ:Ô:Ð:Ð:Ð:r   c                  ó  — t          j        ddgddgddgg¦  «        } t          j                             dddddd¦  «        }|                     | ¦  «        }t          j        ddgddgddgg¦  «        }t          ||¦  «         t          j                             dddddd¦  «        }|                     | ¦  «        }t          j        ddgddgddgg¦  «        }t          ||¦  «         t          j                             dddddd¦  «        }|                     | ¦  «        }t          j        ddgd	dgddgg¦  «        }t          ||¦  «         t          j                             dddd
dd¦  «        }|                     | ¦  «        }t          j        ddgddgddgg¦  «        }t          ||¦  «         t          j                             dddddd¦  «        }|                     | ¦  «        }t          j        ddgddgddgg¦  «        }t          ||¦  «         t          j                             dddddd¦  «        }|                     | ¦  «        }t          j        ddgddgddgg¦  «        }t          ||¦  «         d S )Nr   r   r]   r‰   r^   r   éþÿÿÿra   é<   rZ   éP   r_   rX   )r5   r   r   r   Úfrom_valuesr$   r   )ÚpointsÚtÚactualr…   s       r   Útest_Affine2D_from_valuesr–   �   s†  € ÝŒX˜˜1�vØ˜B�xØ˜A�wðñ ô €Fõ
 	Ô×(Ò(¨¨A¨q°!°Q¸Ñ:Ô:€AØ�[Š[˜Ñ Ô €FÝŒx˜!˜Q˜ " a ¨2¨q¨'Ð2Ñ3Ô3€HÝ˜ Ñ)Ô)Ð)åÔ×(Ò(¨¨A¨q°!°Q¸Ñ:Ô:€AØ�[Š[˜Ñ Ô €FÝŒx˜!˜Q˜ ! R ¨1¨b¨'Ð2Ñ3Ô3€HÝ˜ Ñ)Ô)Ð)åÔ×(Ò(¨¨A¨q°!°Q¸Ñ:Ô:€AØ�[Š[˜Ñ Ô €FÝŒx˜!˜Q˜ " a ¨1¨a¨&Ð1Ñ2Ô2€HÝ˜ Ñ)Ô)Ð)åÔ×(Ò(¨¨A¨q°!°Q¸Ñ:Ô:€AØ�[Š[˜Ñ Ô €FÝŒx˜!˜Q˜ ! R ¨1¨a¨&Ð1Ñ2Ô2€HÝ˜ Ñ)Ô)Ð)åÔ×(Ò(¨¨A¨q°!°Q¸Ñ:Ô:€AØ�[Š[˜Ñ Ô €FÝŒx˜!˜Q˜ ! Q ¨!¨Q¨Ð0Ñ1Ô1€HÝ˜ Ñ)Ô)Ð)åÔ×(Ò(¨¨A¨q°!°Q¸Ñ:Ô:€AØ�[Š[˜Ñ Ô €FÝŒx˜!˜Q˜ ! Q ¨!¨Q¨Ð0Ñ1Ô1€HÝ˜ Ñ)Ô)Ð)Ð)Ð)r   c                  ó¤  — ddg} t          j        ¦   «         }t          | |                     |                     ¦   «                              | ¦  «        ¦  «        ¦  «         |                     dd¦  «                             ¦   «          t          | |                     |                     ¦   «                              | ¦  «        ¦  «        ¦  «         d S )Nç      ð?)r   r   r   r$   ÚinvertedÚ	translaterN   )Úpointr”   s     r   Ú test_affine_inverted_invalidatedrœ   µ   s£   € à�#ˆJ€EÝÔÑÔ€Aå˜˜qŸ{š{¨1¯:ª:©<¬<×+AÒ+AÀ%Ñ+HÔ+HÑIÔIÑJÔJÐJà‡K‚K��SÑÔ×$Ò$Ñ&Ô&Ð&Ý˜˜qŸ{š{¨1¯:ª:©<¬<×+AÒ+AÀ%Ñ+HÔ+HÑIÔIÑJÔJÐJÐJÐJr   c                  ót  — t          j        g d¢¦  «        } t          j        t          j        ¦   «         t          j        dd¦  «        ¦  «        }|                     | ¦  «        }|                     | 	                    ¦   «         dd¬¦  «        }t          |Ž \  }}t          || j        d d…         ¦  «         d S )N))çš™™™™™É?é�ÿÿÿ)çš™™™™™Ù?rŸ   )r    r]   )rž   r]   r   Úclip)r   r   rI   rI   F)r¡   Úsimplifyr‰   )r   Ú_create_closedr   ÚBlendedGenericTransformr   r   ÚLogTransformr"   Úiter_segmentsÚ
get_affineÚzipr   Úcodes)r!   ÚtransÚtpathÚresultÚtpointsÚtcodess         r   Útest_clipping_of_logr¯   À   s¸   € åÔÐMÐMÐMÑNÔN€DåÔ/ÝÔÑÔ¥Ô 2°2°vÑ >Ô >ñ@ô @€Eà×+Ò+¨DÑ1Ô1€EØ× Ò  ×!1Ò!1Ñ!3Ô!3Ø&6Ø*/ð !ñ 1ô 1€Fõ ˜6�l�O€GˆVÝ�F˜DœJ s¨ sœOÑ,Ô,Ð,Ð,Ð,r   c                   ó:   ‡ — e Zd ZdZdZdZdZˆ fd„Zd„ Zd„ Z	ˆ xZ
S )ÚNonAffineForTestzÚ
    A class which looks like a non affine transform, but does whatever
    the given transform does (even if it is affine). This is very useful
    for testing NonAffine behaviour with a simple Affine transform.

    Fr   c                 óH   •— || _          t          ¦   «         j        |i |¤Ž d S rB   )Ú
real_transr   r   )r   r³   r   r   r   s       €r   r   zNonAffineForTest.__init__Ù   s,   ø€ Ø$ˆŒØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)r   c                 ó6   — | j                              |¦  «        S rB   )r³   r$   )r   Úvaluess     r   r%   z%NonAffineForTest.transform_non_affineÝ   s   € ØŒ×(Ò(¨Ñ0Ô0Ð0r   c                 ó6   — | j                              |¦  «        S rB   )r³   r   r    s     r   r"   z*NonAffineForTest.transform_path_non_affineà   s   € ØŒ×-Ò-¨dÑ3Ô3Ð3r   )r&   r'   r(   r)   r,   r+   r*   r   r%   r"   r-   r.   s   @r   r±   r±   Î   sq   ø€ € € € € ðð ð €IØ€KØ€Jð*ð *ð *ð *ð *ð1ð 1ð 1ð4ð 4ð 4ð 4ð 4ð 4ð 4r   r±   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestBasicTransformc                 ó\  — t          j        d¬¦  «                             t          j        dz  ¦  «        | _        t          j        d¬¦  «                             dd¦  «        | _        t          j        d¬¦  «                             dd¦  «        | _	        t          t          j        ¦   «                              dd¦  «        d	¬¦  «        | _        t          t          j        ¦   «                              dd¦  «        d
¬¦  «        | _        t          t          j        ¦   «                              dd¦  «        d¬¦  «        | _        | j        | j        | j        z   z   | j	        z   | _        | j        | j        z   | j        z   | j	        z   | _        | j        | j        z   | j	        z   | _        d S )NÚta1)Úshorthand_namer   Úta2r   r   Úta3r^   Útn1Útn2Útn3)r   r   Úrotater5   Úpirº   rš   r¼   r   r½   r±   r¾   r¿   rÀ   Ústack1Ústack2Ústack2_subset©r   s    r   Úsetup_methodzTestBasicTransform.setup_methodå   sm  € åÔ'°uÐ=Ñ=Ô=×DÒDÅRÄUÈQÁYÑOÔOˆŒÝÔ'°uÐ=Ñ=Ô=×GÒGÈÈAÑNÔNˆŒÝÔ'°uÐ=Ñ=Ô=×CÒCÀAÀqÑIÔIˆŒå#¥KÔ$8Ñ$:Ô$:×$DÒ$DÀQÈÑ$JÔ$JØ38ð:ñ :ô :ˆŒå#¥KÔ$8Ñ$:Ô$:×$DÒ$DÀQÈÑ$JÔ$JØ38ð:ñ :ô :ˆŒå#¥KÔ$8Ñ$:Ô$:×$DÒ$DÀQÈÑ$JÔ$JØ38ð:ñ :ô :ˆŒð ”x 4¤8¨d¬hÑ#6Ñ7¸4¼8ÑCˆŒà”h ¤Ñ)¨D¬HÑ4°t´xÑ?ˆŒà!œX¨¬Ñ0°4´8Ñ;ˆÔÐÐr   c                 ór   — | j         j        dk    sJ ‚| j        j        dk    sJ ‚| j        j        dk    sJ ‚d S )NrZ   ra   )rÃ   ÚdepthrÄ   rÅ   rÆ   s    r   Útest_transform_depthz'TestBasicTransform.test_transform_depthþ   sK   € ØŒ{Ô  AÒ%Ð%Ð%Ð%ØŒ{Ô  AÒ%Ð%Ð%Ð%ØÔ!Ô'¨1Ò,Ð,Ð,Ð,Ð,Ð,r   c                 ó¦  — | j         | j        | j        | j        z   z   z   | j        z   }|| j        | j        | j        z   z   | j        z   | j        | j        z   | j        z   | j        | j        z   | j        g}d„ |                     ¦   «         D ¦   «         }t          |¦  «        t          |¦  «        k    sJ ‚t          ||¦  «        D ]\  }}||k    sJ ‚Œd S )Nc                 ó   — g | ]\  }}|‘ŒS rG   rG   )Ú.0Ú_Úrhs      r   ú
<listcomp>zCTestBasicTransform.test_left_to_right_iteration.<locals>.<listcomp>  s   € ÐEÐEÐE‘E�A�rˆRÐEÐEÐEr   )rº   r¾   r¼   r¿   r½   Ú_iter_break_from_left_to_rightÚlenr¨   )r   Ústack3Útarget_transformsÚrÚtarget_stackÚstacks         r   Útest_left_to_right_iterationz/TestBasicTransform.test_left_to_right_iteration  sï   € Ø”(˜dœh¨$¬(°T´XÑ*=Ñ>Ñ?À4Ä8ÑKˆð $Ø"œh¨$¬(°T´XÑ*=Ñ>À$Ä(ÑJØ"œh¨¬Ñ1°T´XÑ=Ø!œX¨¬Ñ0Ø!œXð	Ðð FÐE˜V×BÒBÑDÔDÐEÑEÔEˆÝ�1‰vŒv�Ð.Ñ/Ô/Ò/Ð/Ð/Ð/å#&Ð'8¸!Ñ#<Ô#<ð 	)ð 	)ÑˆL˜%Ø 5Ò(Ð(Ð(Ð(Ð(ð	)ð 	)r   c                 óF  — | j         | j        z
  | j        k    sJ ‚| j        | j        z
  | j        k    sJ ‚| j        | j        z
  | j                             ¦   «         k    sJ ‚| j        | j        z
  j        dk    sJ ‚t          j        t          ¦  «        5  | j         | j        z
   d d d ¦  «         n# 1 swxY w Y   | j        | j	        | j
        z   z   }| j	        | j
        z   }||z
  | j        k    sJ ‚|| j	        z
  || j	                             ¦   «         z   k    sJ ‚| j         | j
        z
  | j        | j        | j	        z   z   k    sJ ‚| j        | j
        z
  | j        | j        z   | j	        z   k    sJ ‚| j	        | j
        z   | j
        z
  | j
        z   | j	        | j
        z   k    sJ ‚d S )Nr^   )rÃ   rÅ   rº   rÄ   r™   rÉ   ÚpytestÚraisesÚ
ValueErrorr¼   r½   r¾   )r   Úaff1Úaff2s      r   Útest_transform_shortcutsz+TestBasicTransform.test_transform_shortcuts  sõ  € ØŒ{˜TÔ/Ñ/°4´8Ò;Ð;Ð;Ð;ØŒ{˜TÔ/Ñ/°4´8Ò;Ð;Ð;Ð;àÔ! D¤KÑ/°4´8×3DÒ3DÑ3FÔ3FÒFÐFÐFÐFØÔ" T¤[Ñ0Ô7¸1Ò<Ð<Ð<Ð<åŒ]�:Ñ&Ô&ð 	&ð 	&ØŒK˜$œ+Ñ%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð Œx˜4œ8 d¤hÑ.Ñ/ˆØŒx˜$œ(Ñ"ˆà�d‰{˜dœhÒ&Ð&Ð&Ð&Ø�d”h‰ $¨¬×):Ò):Ñ)<Ô)<Ñ"<Ò<Ð<Ð<Ð<àŒ{˜TœXÑ%¨¬°T´XÀÄÑ5HÑ)IÒIÐIÐIÐIØŒ{˜TœXÑ%¨¬°D´HÑ)<¸t¼xÑ)GÒGÐGÐGÐGà”˜DœHÑ$¨¬Ñ0°4´8Ñ;Ø”˜4œ8Ñ#ò$ð $ð $ð $ð $ð $s   ÂB0Â0B4Â7B4c                 óä  — | j         | j        z   }| j         | j        z   }||k    sJ ‚|| j        k    sJ ‚|                     |¦  «        sJ ‚|                     | j        ¦  «        sJ ‚|                     | j         ¦  «        rJ ‚|                     | j         | j         z   ¦  «        rJ ‚||k    sJ ‚| j                             | j        ¦  «        sJ ‚| j                             | j        ¦  «        sJ ‚| j                             | j        ¦  «        sJ ‚| j                             | j        ¦  «        sJ ‚| j                             | j        ¦  «        rJ ‚| j                             | j        ¦  «        rJ ‚| j                             | j         | j        z   ¦  «        sJ ‚| j                             | j         | j        z   ¦  «        sJ ‚| j                             | j        | j         z   ¦  «        rJ ‚d S rB   )r¼   rº   Úcontains_branchrÃ   r½   rÄ   rÅ   r¾   )r   Úr1Úr2s      r   Útest_contains_branchz'TestBasicTransform.test_contains_branch)  sé  € ØŒh˜œÑ!ˆØŒh˜œÑ!ˆØ�RŠxˆxˆxˆxØ�T”XŠ~ˆ~ˆ~ˆ~Ø×!Ò! "Ñ%Ô%Ð%Ð%Ð%Ø×!Ò! $¤(Ñ+Ô+Ð+Ð+Ð+Ø×%Ò% d¤hÑ/Ô/Ð/Ð/Ð/Ø×%Ò% d¤h°´Ñ&9Ñ:Ô:Ð:Ð:Ð:à�RŠxˆxˆxˆxàŒ{×*Ò*¨4¬8Ñ4Ô4Ð4Ð4Ð4ØŒ{×*Ò*¨4¬8Ñ4Ô4Ð4Ð4Ð4àŒ{×*Ò*¨4Ô+=Ñ>Ô>Ð>Ð>Ð>ØŒ{×*Ò*¨4Ô+=Ñ>Ô>Ð>Ð>Ð>àÔ%×5Ò5°d´kÑBÔBÐBÐBÐBØÔ%×5Ò5°d´kÑBÔBÐBÐBÐBàŒ{×*Ò*¨4¬8°d´hÑ+>Ñ?Ô?Ð?Ð?Ð?ØŒ{×*Ò*¨4¬8°d´hÑ+>Ñ?Ô?Ð?Ð?Ð?à”;×.Ò.¨t¬x¸$¼(Ñ/BÑCÔCÐCÐCÐCÐCÐCr   c                 ó  — t          j        ddgddgt           j        dgddggt           j        ¬¦  «        }| j                             |¦  «        }| j                             |¦  «        }t          j        ddgd	d
gt           j        t           j        gddggt           j        ¬¦  «        }t          j        ddgddgt           j        t           j        gddggt           j        ¬¦  «        }t          ||¦  «         t          ||¦  «         t          | j                             |¦  «        |¦  «         t          | j         	                    ¦   «                              |¦  «        |¦  «         | j
        | j        z                        ¦   «         }| j         	                    ¦   «                              ¦   «         }t          ||¦  «         | j         	                    ¦   «                              ¦   «         }t          ||¦  «         d S )Nr   r   r]   r^   r‰   )Údtyper˜   r{   g      3Àç      (@g      &@g      @g      "Àg      8@)r5   r   ÚnanÚfloat64rÃ   r%   r$   r   Útransform_affiner§   r¼   r½   rN   r   rÄ   )r   r“   Úna_ptsÚall_ptsÚna_expectedÚall_expectedÚexpected_resultr¬   s           r   Útest_affine_simplificationz-TestBasicTransform.test_affine_simplificationC  så  € õ ”˜A˜q˜6 B¨ 8­b¬f°a¨[¸2¸q¸'ÐBÝ "¤
ð,ñ ,ô ,ˆà”×1Ò1°&Ñ9Ô9ˆØ”+×'Ò'¨Ñ/Ô/ˆå”h  R ¨4°¨+Ý!#¤­¬Ð 0°2°r°(ð <ÝCEÄ:ðOñ Oô Oˆå”x # r ¨S°#¨JÝ"$¤&­"¬&Ð!1°C¸°9ð!>å&(¤jð2ñ 2ô 2ˆõ
 	" &¨+Ñ6Ô6Ð6å! '¨<Ñ8Ô8Ð8õ 	" $¤+×">Ò">¸vÑ"FÔ"FØ".ñ	0ô 	0ð 	0õ 	" $¤+×"8Ò"8Ñ":Ô":×"DÒ"DÀVÑ"LÔ"LØ".ñ	0ô 	0ð 	0ð
  œ8 d¤hÑ.×:Ò:Ñ<Ô<ˆØ”×'Ò'Ñ)Ô)×4Ò4Ñ6Ô6ˆÝ˜?¨FÑ3Ô3Ð3à”×'Ò'Ñ)Ô)×4Ò4Ñ6Ô6ˆÝ˜?¨FÑ3Ô3Ð3Ð3Ð3r   N)	r&   r'   r(   rÇ   rÊ   rØ   rß   rä   rð   rG   r   r   r¸   r¸   ä   sq   € € € € € ð<ð <ð <ð2-ð -ð -ð
)ð )ð )ð %ð %ð %ð,Dð Dð Dð4#4ð #4ð #4ð #4ð #4r   r¸   c                   óJ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )ÚTestTransformPlotInterfacec                 ó@  — t          j        ¦   «         }|                     g d¢g d¢|j        ¬¦  «         t	          |j                             ¦   «         t          j        t          j	        t          j	        gt          j	         t          j	         gg¦  «        ¦  «         d S )N©rx   ç333333ó?çš™™™™™é?©çÍÌÌÌÌÌì?ç      à?rö   r0   )
r2   r3   r4   r9   r   r€   r�   r5   r   Úinf©r   r<   s     r   Útest_line_extent_axes_coordsz7TestTransformPlotInterface.test_line_extent_axes_coordsj  sŠ   € åŒX‰ZŒZˆØ
�Š���   ¸B¼LˆÑIÔIÐIÝ˜2œ:×0Ò0Ñ2Ô2Ýœ8¥b¤f­b¬fÐ%5Ý')¤v gµ´¨wÐ%7ð%9ñ :ô :ñ	;ô 	;ð 	;ð 	;ð 	;r   c                 óì   — t          j        ¦   «         }|                     g d¢g d¢|j        ¬¦  «         t	          |j                             ¦   «         t          j        ddgddgg¦  «        ¦  «         d S )Nrô   r÷   r0   rx   rù   rõ   rø   )	r2   r3   r4   r7   r   r€   r�   r5   r   rû   s     r   Útest_line_extent_data_coordsz7TestTransformPlotInterface.test_line_extent_data_coordsr  sz   € åŒX‰ZŒZˆØ
�Š���   ¸B¼LˆÑIÔIÐIÝ˜2œ:×0Ò0Ñ2Ô2Ýœ8 c¨C [°3¸°+Ð$>Ñ?Ô?ñ	Aô 	Að 	Að 	Að 	Ar   c                 óJ  — t          j        ¦   «         }t          j        |j        |j        ¦  «        }|                     g d¢g d¢|¬¦  «         t          |j         	                    ¦   «         t          j        t          j        dgt          j         dgg¦  «        ¦  «         d S )Nrô   ©é#   éûÿÿÿé   r0   g      Àg     €A@)r2   r3   r   Úblended_transform_factoryr9   r7   r4   r   r€   r�   r5   r   rú   ©r   r<   rª   s      r   Ú!test_line_extent_compound_coords1z<TestTransformPlotInterface.test_line_extent_compound_coords1y  sŸ   € õ ŒX‰ZŒZˆÝÔ5°b´lØ68´lñDô Dˆà
�Š���   ¸ˆÑ?Ô?Ð?Ý˜2œ:×0Ò0Ñ2Ô2Ýœ8¥b¤f¨c ]Ý')¤v g¨s ^ð%5ñ 6ô 6ñ	7ô 	7ð 	7ð 	7ð 	7r   c                 ó>  — t          j        ¦   «         }t          j        ¦   «                              d¦  «        |j        z   }|                     g d¢g d¢|¬¦  «         t          |j         	                    ¦   «         t          j        ddgddgg¦  «        ¦  «         d S )	Nr   rô   r   r0   r˜   ç      IÀrç   ç     àu@)r2   r3   r   r   r   r7   r4   r   r€   r�   r5   r   r  s      r   Ú)test_line_extent_predata_transform_coordszDTestTransformPlotInterface.test_line_extent_predata_transform_coords„  s›   € åŒX‰ZŒZˆÝÔ$Ñ&Ô&×,Ò,¨RÑ0Ô0°2´<Ñ?ˆØ
�Š���   ¸ˆÑ?Ô?Ð?Ý˜2œ:×0Ò0Ñ2Ô2Ýœ8 b¨$ Z°#°t°Ð$=Ñ>Ô>ñ	@ô 	@ð 	@ð 	@ð 	@r   c                 ó˜  — t          j        ¦   «         }t          j        |j        t          j        ¦   «                              d¦  «        |j        z   ¦  «        }|                     g d¢g d¢|¬¦  «         t          |j
                             ¦   «         t          j        t          j        dgt          j         dgg¦  «        ¦  «         d S )Nr   rô   r   r0   r  r	  )r2   r3   r   r  r9   r   r   r7   r4   r   r€   r�   r5   r   rú   r  s      r   Ú!test_line_extent_compound_coords2z<TestTransformPlotInterface.test_line_extent_compound_coords2Œ  s¹   € õ ŒX‰ZŒZˆÝÔ5ØŒL�+Ô.Ñ0Ô0×6Ò6°rÑ:Ô:¸R¼\ÑIñKô Kˆà
�Š���   ¸ˆÑ?Ô?Ð?Ý˜2œ:×0Ò0Ñ2Ô2Ýœ8¥b¤f¨d ^µr´v°g¸t°_Ð$EÑFÔFñ	Hô 	Hð 	Hð 	Hð 	Hr   c                 ób  — t          j        ¦   «         }t          j        ¦   «                              dd¦  «        }t          j        t          j        d¦  «        ||j        z   ¬¦  «         t          j	        ddgddgg¦  «        dz   }t          |j                             ¦   «         |¦  «         d S )Nr   r0   ç        ç      "@©r2   r3   r   r   rš   r4   r5   r6   r7   r   r   r€   r�   ©r   r<   ÚoffsetÚexpected_data_lims       r   Útest_line_extents_affinez3TestTransformPlotInterface.test_line_extents_affine–  s–   € ÝŒX‰ZŒZˆÝÔ%Ñ'Ô'×1Ò1°"°bÑ9Ô9ˆÝŒ•”˜2‘”¨&°2´<Ñ*?Ð@Ñ@Ô@Ð@ÝœH r¨2 h°°b°	Ð%:Ñ;Ô;¸bÑ@ÐÝ! "¤*×"7Ò"7Ñ"9Ô"9Ð;LÑMÔMÐMÐMÐMr   c                 óÐ  — t          j        ¦   «         }t          j        ¦   «                              dd¦  «        }t          t          j        ¦   «                              dd¦  «        ¦  «        }t          j        t          j        d¦  «        ||z   |j	        z   ¬¦  «         t          j
        ddgddgg¦  «        dz   }t          |j                             ¦   «         |¦  «         d S )Nr   r0   r  r  r]   )r2   r3   r   r   rš   r±   r4   r5   r6   r7   r   r   r€   r�   )r   r<   r  Ú	na_offsetr  s        r   Útest_line_extents_non_affinez7TestTransformPlotInterface.test_line_extents_non_affine�  sÁ   € ÝŒX‰ZŒZˆÝÔ%Ñ'Ô'×1Ò1°"°bÑ9Ô9ˆÝ$¥[Ô%9Ñ%;Ô%;×%EÒ%EÀbÈ"Ñ%MÔ%MÑNÔNˆ	ÝŒ•”˜2‘”¨&°9Ñ*<¸r¼|Ñ*KÐLÑLÔLÐLÝœH r¨2 h°°b°	Ð%:Ñ;Ô;¸bÑ@ÐÝ! "¤*×"7Ò"7Ñ"9Ô"9Ð;LÑMÔMÐMÐMÐMr   c                 ó  — t          j        ¦   «         }t          j        ¦   «                              dd¦  «        }t          t          j        ¦   «                              dd¦  «        ¦  «        }t          ddgddgddgddgg¦  «        }t          j        |||z   |j	        z   ¬¦  «        }| 
                    |¦  «         t          j        ddgddgg¦  «        dz   }t          |j                             ¦   «         |¦  «         d S )Nr   r   r0   r  ç      $@r]   )r2   r3   r   r   rš   r±   r   ÚmpatchesÚ	PathPatchr7   Ú	add_patchr5   r   r   r€   r�   )r   r<   r  r  ÚpthÚpatchr  s          r   Útest_pathc_extents_non_affinez8TestTransformPlotInterface.test_pathc_extents_non_affine¥  sû   € ÝŒX‰ZŒZˆÝÔ%Ñ'Ô'×1Ò1°"°bÑ9Ô9ˆÝ$¥[Ô%9Ñ%;Ô%;×%EÒ%EÀbÈ"Ñ%MÔ%MÑNÔNˆ	Ý�Q˜�F˜Q ˜G b¨" X°°A¨wÐ7Ñ8Ô8ˆÝÔ" 3Ø-3°iÑ-?À"Ä,Ñ-NðPñ Pô Pˆà
�Š�UÑÔÐÝœH r¨2 h°°s°Ð%<Ñ=Ô=ÀÑBÐÝ! "¤*×"7Ò"7Ñ"9Ô"9Ð;LÑMÔMÐMÐMÐMr   c                 óž  — t          j        ¦   «         }t          j        ¦   «                              dd¦  «        }t          ddgddgddgddgg¦  «        }t          j        |||j        z   ¬¦  «        }| 	                    |¦  «         t          j        ddgddgg¦  «        dz   }t          |j                             ¦   «         |¦  «         d S )Nr   r   r0   r  r  )r2   r3   r   r   rš   r   r  r  r7   r  r5   r   r   r€   r�   )r   r<   r  r  r  r  s         r   Útest_pathc_extents_affinez4TestTransformPlotInterface.test_pathc_extents_affine°  sÆ   € ÝŒX‰ZŒZˆÝÔ%Ñ'Ô'×1Ò1°"°bÑ9Ô9ˆÝ�Q˜�F˜Q ˜G b¨" X°°A¨wÐ7Ñ8Ô8ˆÝÔ" 3°&¸2¼<Ñ2GÐHÑHÔHˆØ
�Š�UÑÔÐÝœH r¨2 h°°s°Ð%<Ñ=Ô=ÀÑBÐÝ! "¤*×"7Ò"7Ñ"9Ô"9Ð;LÑMÔMÐMÐMÐMr   c                 ój  — t          j        d¬¦  «        }t          j        ¦   «                              dd¦  «        }t          j        t          j        d¦  «        ||j        z   ¬¦  «         t          j	        ddgddgg¦  «        ddgz   }t          |j                             ¦   «         |¦  «         d S )NÚpolar©Ú
projectionr   r   r0   r  r  r  r  s       r   Ú*test_line_extents_for_non_affine_transDatazETestTransformPlotInterface.test_line_extents_for_non_affine_transData¹  s£   € ÝŒX Ð)Ñ)Ô)ˆåÔ%Ñ'Ô'×1Ò1°!°RÑ8Ô8ˆåŒ•”˜2‘”¨&°2´<Ñ*?Ð@Ñ@Ô@Ð@õ œH r¨2 h°°b°	Ð%:Ñ;Ô;¸qÀ"¸gÑEÐÝ! "¤*×"7Ò"7Ñ"9Ô"9Ð;LÑMÔMÐMÐMÐMr   N)r&   r'   r(   rü   rþ   r  r
  r  r  r  r  r!  r&  rG   r   r   rò   rò   i  sÄ   € € € € € ð;ð ;ð ;ðAð Að Að	7ð 	7ð 	7ð@ð @ð @ðHð Hð HðNð Nð NðNð Nð Nð	Nð 	Nð 	NðNð Nð Nð
Nð 
Nð 
Nð 
Nð 
Nr   rò   c                 ó:   — t          | j        |j        ¦  «         d S rB   )r   Úbounds)Úbbox1Úbbox2s     r   Úassert_bbox_eqr+  Æ  s   € Ý�u”| U¤\Ñ2Ô2Ð2Ð2Ð2r   c                  óª   — t           j                             ddddd¬¦  «        } |                      ¦   «         }t	          |j        | j        ¦  «         d S )Nr  r˜   )Úminpos)r   ÚBboxÚfrom_extentsÚfrozenr   r-  )Úbboxr0  s     r   Útest_bbox_frozen_copies_minposr2  Ê  sJ   € ÝÔ×(Ò(¨¨c°3¸ÀCÐ(ÑHÔH€DØ�[Š[‰]Œ]€FÝ�v”} d¤kÑ2Ô2Ð2Ð2Ð2r   c            	      óò  — t           j        j        } t           j        j        } | dddd¦  «        } | dddd¦  «        } | dddd¦  «        } | dddd¦  «        } | dddd¦  «        }t	           |||¦  «        |¦  «         t	           |||¦  «         | dddd¦  «        ¦  «         t	           |||¦  «        |¦  «          |||¦  «        �J ‚t	           |||¦  «         | dddd¦  «        ¦  «         d S )Nr   r^   rù   ry   ç      è?g      @r   )r   r.  r/  Úintersectionr+  )Úbbox_from_extÚinterrâ   rã   Úr3Úr4Úr5s          r   Útest_bbox_intersectionr;  Ð  s'  € ÝÔ$Ô1€MÝÔÔ)€Eà	ˆ�q˜!˜Q Ñ	"Ô	"€BØ	ˆ�s˜C  cÑ	*Ô	*€BØ	ˆ�s˜A˜t TÑ	*Ô	*€BØ	ˆ�s˜C  CÑ	(Ô	(€BØ	ˆ�q˜!˜Q Ñ	"Ô	"€Bõ �5�5˜˜R‘=”= "Ñ%Ô%Ð%å�5�5˜˜R‘=”= - -°°S¸!¸QÑ"?Ô"?Ñ@Ô@Ð@å�5�5˜˜R‘=”= "Ñ%Ô%Ð%àˆ5��R‰=Œ=Ð Ð Ð å�5�5˜˜R‘=”= - -°°1°a¸Ñ";Ô";Ñ<Ô<Ð<Ð<Ð<r   c            	      ó4  — t          j        ddgddgg¦  «        } t          | t          t	          | ¦  «        dt           j        i¦  «        ¦  «         t          t          | ¦  «        dt          i¦  «        }|                     ¦   «         D ]\  }}t          | |¦  «        |k    sJ ‚Œd}t          t          | |¦  «        dt          i¦  «        }|                     ¦   «         D ]6\  }}t          t          t          | |¦  «        |¦  «        ¦  «        |k    sJ ‚Œ7d S )Nrù   r   r4  r.  z.1f)
r   r.  r+  ÚevalÚreprÚstrÚdictÚitemsÚgetattrÚformat)ÚbÚasdictÚkrr   Úfmts        r   Útest_bbox_as_stringsrH  æ  s
  € ÝÔ˜2˜q˜' C¨ :Ð.Ñ/Ô/€AÝ�1•d�4 ™7œ7 V­[Ô-=Ð$>Ñ?Ô?Ñ@Ô@Ð@Ý•#�a‘&”&˜6¥4˜.Ñ)Ô)€FØ—’‘”ð "ð "‰ˆˆ1Ý�q˜!‰}Œ} Ò!Ð!Ð!Ð!Ð!Ø
€CÝ•&˜˜C‘.”. 6­4 .Ñ1Ô1€FØ—’‘”ð 5ð 5‰ˆˆ1Ý•F�7 1 a™=œ=¨#Ñ.Ô.Ñ/Ô/°1Ò4Ð4Ð4Ð4Ð4ð5ð 5r   c                  ó`   — t          t          j        d¬¦  «        j        ¦  «        dk    sJ ‚d S )Nr#  r$  aØ  CompositeGenericTransform(
    CompositeGenericTransform(
        CompositeGenericTransform(
            TransformWrapper(
                BlendedAffine2D(
                    IdentityTransform(),
                    IdentityTransform())),
            CompositeAffine2D(
                Affine2D().scale(1.0),
                Affine2D().scale(1.0))),
        PolarTransform(
            PolarAxes(0.125,0.1;0.775x0.8),
            use_rmin=True,
            _apply_theta_transforms=False)),
    CompositeGenericTransform(
        CompositeGenericTransform(
            PolarAffine(
                TransformWrapper(
                    BlendedAffine2D(
                        IdentityTransform(),
                        IdentityTransform())),
                LockableBbox(
                    Bbox(x0=0.0, y0=0.0, x1=6.283185307179586, y1=1.0),
                    [[-- --]
                     [-- --]])),
            BboxTransformFrom(
                _WedgeBbox(
                    (0.5, 0.5),
                    TransformedBbox(
                        Bbox(x0=0.0, y0=0.0, x1=6.283185307179586, y1=1.0),
                        CompositeAffine2D(
                            Affine2D().scale(1.0),
                            Affine2D().scale(1.0))),
                    LockableBbox(
                        Bbox(x0=0.0, y0=0.0, x1=6.283185307179586, y1=1.0),
                        [[-- --]
                         [-- --]])))),
        BboxTransformTo(
            TransformedBbox(
                Bbox(x0=0.125, y0=0.09999999999999998, x1=0.9, y1=0.9),
                BboxTransformTo(
                    TransformedBbox(
                        Bbox(x0=0.0, y0=0.0, x1=8.0, y1=6.0),
                        Affine2D().scale(80.0))))))))r?  r2   Úsubplotr7   rG   r   r   Útest_str_transformrK  ò  sB   € õ �sŒ{ gÐ.Ñ.Ô.Ô8Ñ9Ô9ð ,>8ò ,8ð ,8ð ,8ð ,8ð ,8ð ,8r   c                  óp   — t          j        ¦   «         } |                      d¦  «        }|j        dk    sJ ‚d S )N©r^   r^   )r   )r   r   rê   Úshape)r”   rÕ   s     r   Útest_transform_single_pointrO  $  s6   € ÝÔÑÔ€AØ	×Ò˜6Ñ"Ô"€AØŒ7�dŠ?ˆ?ˆ?ˆ?ˆ?ˆ?r   c                  ó�   — t          j        ¦   «         \  } }|                     d¦  «         |j                             d¦  «         d S )Nr~   rM  )r2   ÚsubplotsÚ
set_yscaler7   r$   )Úfigr<   s     r   Útest_log_transformrT  *  sA   € õ Œl‰nŒn�G€CˆØ‡M‚M�%ÑÔÐØ„L×Ò˜6Ñ"Ô"Ð"Ð"Ð"r   c                  ó°   — t          j        ddgddgg¦  «        } t          j        ddgdt          j        gg¦  «        }|                      |¦  «        rJ ‚d S )Nr   r^   )r   r.  r5   rè   Úoverlaps)ÚarD  s     r   Útest_nan_overlaprX  2  sZ   € ÝÔ˜1˜a˜& 1 a &Ð)Ñ*Ô*€AÝÔ˜1˜a˜& 1¥b¤f +Ð.Ñ/Ô/€AØ�zŠz˜!‰}Œ}ÐÐÐÐÐr   c                  ó,  — t          j        ¦   «         } t          j        g d¢¦  «        }t          j        ddgddgddgg¦  «        }|                      ||¦  «        }t          ||¦  «         t          j        t          ¦  «        5  |                      ||dd…dd…f         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      ||dd…d d …f         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r]   é-   r�   r   r^   r   )	r   r   r5   r   Útransform_anglesr   rÚ   rÛ   rÜ   )r”   Úanglesr“   Ú
new_angless       r   Útest_transform_anglesr^  8  s–  € ÝÔÑÔ€AÝŒX�l�l�lÑ#Ô#€FÝŒX˜˜1�v  1˜v¨¨1 vÐ.Ñ/Ô/€Fð ×#Ò# F¨FÑ3Ô3€JÝ˜f jÑ1Ô1Ð1õ 
Œ•zÑ	"Ô	"ð 5ð 5Ø	×Ò˜6 6¨!¨A¨#¨q°¨s¨(Ô#3Ñ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5õ 
Œ•zÑ	"Ô	"ð 3ð 3Ø	×Ò˜6 6¨!¨A¨#¨q¨q¨q¨&¤>Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s$   Â#B5Â5B9Â<B9Ã#D	Ä	DÄDc                  ó¾   — t          j        ddg¦  «        } dt           j        fddg}|D ]2}t          j        t          j        |Ž ¦  «        }t          || ¦  «         Œ3d S )Ngü©ñÒMbP¿gü©ñÒMbP?r   ©r   r   )r   güó     )r5   r   rè   r   Únonsingularr   )Úzero_expansionÚcasesr   Úouts       r   Útest_nonsingularre  J  sj   € å”X˜v u˜oÑ.Ô.€NØ•”ˆ[˜& -Ð0€EØð 0ð 0ˆÝŒh•{Ô.°Ð5Ñ6Ô6ˆÝ˜3 Ñ/Ô/Ð/Ð/ð0ð 0r   c                  óˆ  — t          j        ¦   «         } t          j        t          ¦  «        5  |                      d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      dggg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      g ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      dg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      dgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  |                      g d¢g¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr^   )r^   r   ra   )r   r   rÚ   rÛ   rÜ   r$   ÚRuntimeError©r”   s    r   Útest_invalid_argumentsri  S  s÷  € ÝÔÑÔ€Aõ 
Œ•zÑ	"Ô	"ð ð Ø	�Š�A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•zÑ	"Ô	"ð ð Ø	�Š�q�c�U�GÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•|Ñ	$Ô	$ð ð Ø	�Š�B‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•|Ñ	$Ô	$ð ð Ø	�Š�Q�CÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•|Ñ	$Ô	$ð ð Ø	�Š�a�S�EÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•|Ñ	$Ô	$ð !ð !Ø	�Š�Y�Y�Y�KÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !sk   ­AÁAÁAÁ3BÂBÂBÂ<CÃC"Ã%C"ÄD%Ä%D)Ä,D)Å	E-Å-E1Å4E1ÆF7Æ7F;Æ>F;c                  ó2  — g d¢} t          | d¬¦  «        }t          j        ¦   «         }t          j        ||¦  «        }t	          |                     ¦   «         j        | ¦  «         dt          j        d¦  «        z  }| 	                    t          j
        dz  ¦  «         t	          |                     ¦   «         j        d||fdd|z  f| |fgd	¬
¦  «         dgdz  |_        t	          |                     ¦   «         j        d||fdd|z  f| |fgd	¬
¦  «         d S )N)r`  )r^   r   rM  )r   r^   T)Úclosedr^   r   rZ   r`  r   gVçž¯Ò<)Úatol)r   r   r   ÚTransformedPathr   Úget_fully_transformed_pathÚverticesr5   ÚsqrtrÁ   rÂ   r“   )r“   r!   rª   Ú
trans_pathrã   s        r   Útest_transformed_pathrr  h  s4  € Ø-Ð-Ð-€FÝ�˜tÐ$Ñ$Ô$€DåÔ Ñ"Ô"€EÝÔ,¨T°5Ñ9Ô9€JÝ�J×9Ò9Ñ;Ô;ÔDÀfÑMÔMÐMð 
�RŒW�Q‰ZŒZ‰€BØ	‡L‚L•”˜‘ÑÔÐÝ�J×9Ò9Ñ;Ô;ÔDØ˜b "˜X¨¨1¨r©6 {°b°S¸"°IÐ>Øð ñ  ô  ð  ð
 �(˜Q‘,€D„KÝ�J×9Ò9Ñ;Ô;ÔDØ˜b "˜X¨¨1¨r©6 {°b°S¸"°IÐ>Øð ñ  ô  ð  ð  ð  r   c                  ó®  — t          j        ¦   «         } t          j        dddd| ¬¦  «        }t          j        |¦  «        }|                     ¦   «         j        }|                      d¦  «         t          |                     ¦   «         j        |dz  ¦  «         | 	                    d¦  «         t          |                     ¦   «         j        |¦  «         d S )Nr`  r^   rZ  é‡   r0   r   rù   )
r   r   r  ÚWedgeÚTransformedPatchPathrn  ro  r   r   Ú
set_radius)rª   r  Útpatchr“   s       r   Útest_transformed_patch_pathry  ~  s½   € ÝÔ Ñ"Ô"€EÝŒN˜6 1 b¨#¸Ð?Ñ?Ô?€EåÔ-¨eÑ4Ô4€FØ×.Ò.Ñ0Ô0Ô9€Fð 
‡K‚K��N„N€NÝ�F×5Ò5Ñ7Ô7Ô@À&È1Á*ÑMÔMÐMð 
×Ò�SÑÔÐÝ�F×5Ò5Ñ7Ô7Ô@À&ÑIÔIÐIÐIÐIr   Úlocked_element©Úx0Úy0Úx1Úy1c                 óö  — g d¢}|                      | ¦  «         t          j                             ¦   «         }t          j        |fi | di¤Ž}t          || ¦  «        dk    sJ ‚t          |d| z   ¦  «        dk    sJ ‚|D ]&}t          ||¦  «        t          ||¦  «        k    sJ ‚Œ'|                     |                     ¦   «         dz   ¦  «         t          || ¦  «        dk    sJ ‚t          |d| z   ¦  «        dk    sJ ‚|D ]&}t          ||¦  «        t          ||¦  «        k    sJ ‚Œ't          |d| z   d ¦  «         t          |d| z   ¦  «        �J ‚t          j
        |                     ¦   «         |                     ¦   «         k    ¦  «        sJ ‚t          |d| z   d¦  «         t          || ¦  «        dk    sJ ‚t          |d| z   ¦  «        dk    sJ ‚|D ]&}t          ||¦  «        t          ||¦  «        k    sJ ‚Œ'd S )Nr{  r   Úlocked_r   ra   )Úremover   r.  ÚunitÚLockableBboxrB  Ú
set_pointsr�   Úsetattrr5   Úall)rz  Úother_elementsÚorigÚlockedÚelems        r   Útest_lockable_bboxrŒ  �  sU  € à-Ð-Ð-€NØ×Ò˜.Ñ)Ô)Ð)åÔ× Ò Ñ"Ô"€DÝÔ% dÐBÐB¨~¸qÐ.AÐBÐB€Fõ �6˜>Ñ*Ô*¨aÒ/Ð/Ð/Ð/Ý�6˜9 ~Ñ5Ñ6Ô6¸!Ò;Ð;Ð;Ð;Øð <ð <ˆÝ�v˜tÑ$Ô$­°°dÑ(;Ô(;Ò;Ð;Ð;Ð;Ð;ð 	‡O‚O�D—O’OÑ%Ô%¨Ñ*Ñ+Ô+Ð+Ý�6˜>Ñ*Ô*¨aÒ/Ð/Ð/Ð/Ý�6˜9 ~Ñ5Ñ6Ô6¸!Ò;Ð;Ð;Ð;Øð <ð <ˆÝ�v˜tÑ$Ô$­°°dÑ(;Ô(;Ò;Ð;Ð;Ð;Ð;õ ˆF�I Ñ.°Ñ5Ô5Ð5Ý�6˜9 ~Ñ5Ñ6Ô6Ð>Ð>Ð>ÝŒ6�$—/’/Ñ#Ô# v×'8Ò'8Ñ':Ô':Ò:Ñ;Ô;Ð;Ð;Ð;õ ˆF�I Ñ.°Ñ2Ô2Ð2Ý�6˜>Ñ*Ô*¨aÒ/Ð/Ð/Ð/Ý�6˜9 ~Ñ5Ñ6Ô6¸!Ò;Ð;Ð;Ð;Øð <ð <ˆÝ�v˜tÑ$Ô$­°°dÑ(;Ô(;Ò;Ð;Ð;Ð;Ð;ð<ð <r   c                  óž  — t          j        ¦   «         } t          j        ¦   «         }| |z   }|                     ¦   «          t          j        |¦  «        }|j        s|j        rJ ‚|                      dd¦  «         |j        r|j        sJ ‚|                     ¦   «         |                      ¦   «         k                         ¦   «         sJ ‚|                     ¦   «          t          j        |¦  «        }|                     dd¦  «         |j        rJ ‚|                     ¦   «         |                      ¦   «         k                         ¦   «         sJ ‚d S ©Nr^   r   ra   rZ   )r   r   rN   ÚcopyÚ_invalidrš   r‡  ©rW  rD  ÚsÚs1Úb1s        r   Ú	test_copyr•  ±  s  € ÝÔÑÔ€AÝÔÑÔ€AØ	ˆA‰€Aà‡L‚L�N„N€NÝ	Œ�1‰Œ€BØŒzÐ- "¤+Ð-Ð-Ð-Ø‡K‚K��1ÑÔÐØŒ:Ð%˜"œ+Ð%Ð%Ð%Ø�MŠM‰OŒO˜qŸ|š|™~œ~Ò-×2Ò2Ñ4Ô4Ð4Ð4Ð4à‡L‚L�N„N€NÝ	Œ�1‰Œ€BØ‡L‚L��AÑÔÐØŒzÐÐÐØ�LŠL‰NŒN˜aŸlšl™nœnÒ,×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3Ð3r   c                  óÀ  — t          j        ¦   «         } t          j        ¦   «         }| |z   }|                     ¦   «          t          j        |¦  «        }|j        s|j        rJ ‚|                      dd¦  «         |j        r|j        rJ ‚|                     ¦   «         t          j        ¦   «                              ¦   «         k                         ¦   «         sJ ‚|                     ¦   «          t          j        |¦  «        }|                     dd¦  «         |j        rJ ‚|                     ¦   «         |                      ¦   «         k                         ¦   «         sJ ‚d S rŽ  )r   r   rN   r�  Údeepcopyr�  rš   r‡  r‘  s        r   Útest_deepcopyr˜  Ä  s,  € ÝÔÑÔ€AÝÔÑÔ€AØ	ˆA‰€Aà‡L‚L�N„N€NÝ	Œ�qÑ	Ô	€BØŒzÐ- "¤+Ð-Ð-Ð-Ø‡K‚K��1ÑÔÐØŒ:Ð)˜bœkÐ)Ð)Ð)Ø�MŠM‰OŒO�{Ô3Ñ5Ô5×@Ò@ÑBÔBÒB×GÒGÑIÔIÐIÐIÐIà‡L‚L�N„N€NÝ	Œ�qÑ	Ô	€BØ‡L‚L��AÑÔÐØŒzÐÐÐØ�LŠL‰NŒN˜aŸlšl™nœnÒ,×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3Ð3r   c                  ó  — t          j        t          j        ¦   «         ¦  «        } t          j        t
          d¬¦  «        5  |                      t          j        d¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz`The input and output dims of the new child \(1, 1\) do not match those of current child \(2, 2\))Úmatchr   )	r   ÚTransformWrapperr   rÚ   rÛ   rÜ   Úsetr   r¥   rh  s    r   Útest_transformwrapperr�  ×  s¼   € ÝÔ$¥[Ô%9Ñ%;Ô%;Ñ<Ô<€AÝ	Œ•zð<ð
>ñ 
>ô 
>ð &ð &ð 	
�Š�eÔ  Ñ$Ô$Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð &ð &s   Á(A6Á6A:Á=A:Úpng)Ú
extensionsc           	      ó:  — t           j                             d¦  «         t           j                             d¬¦  «        }t          j        ddd¦  «        }t          | |gddg¦  «        D ]°\  }}|                     ¦   «         }|                     ||d¬¦  «         |                     |t          j	        |d	z   d	z  ¦  «        t          j
        d	t           j        z  ¦  «        z  ¦  «         |j                             ¦   «          |                     d
¦  «         Œ±d S )Ni!N,r   )Úsizer  r_   TF)r~   Údensityr   Úlinear)r5   ÚrandomÚseedÚnormalre   r¨   rQ  Úhistr4   Úexprp  rÂ   Úcanvasr8   rR  )Úfig_testÚfig_refÚsamplesro   rS  Ú	log_stater<   s          r   Útest_scale_swappingr®  ß  sú   € å„I‡N‚N�8ÑÔÐÝŒi×Ò BÐÑ'Ô'€GÝ
Œ�B˜˜2ÑÔ€Aå˜x¨Ð1°D¸%°=ÑAÔAð  ð  ‰ˆˆYØ�\Š\‰^Œ^ˆØ
�Š�˜Y°ˆÑ5Ô5Ð5Ø
�Š�•2”6˜A˜q™D˜' A™+Ñ&Ô&­¬°µR´U±Ñ);Ô);Ñ;Ñ<Ô<Ð<ØŒ
�ŠÑÔÐØ
�Š�hÑÔÐÐð ð  r   ):r�  Únumpyr5   Únumpy.testingr   r   r   r   rÚ   Ú
matplotlibr   Úmatplotlib.pyplotÚpyplotr2   Úmatplotlib.patchesÚpatchesr  Úmatplotlib.transformsÚ
transformsr   Úmatplotlib.pathr   Úmatplotlib.testing.decoratorsr	   r
   r=   rP   rs   r†   r‹   r�   r–   rœ   r¯   r1   r±   r¸   rò   r+  r2  r;  rH  rK  rO  rT  rX  r^  re  ri  rr  ry  ÚmarkÚparametrizerŒ  r•  r˜  r�  r®  rG   r   r   ú<module>r¼     s—  ðØ €€€à Ð Ð Ð ðJð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jà €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø +Ð +Ð +Ð +Ð +Ð +Ø  Ð  Ð  Ð  Ð  Ð  Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ Oð#ð #ð #ðLCð Cð Cð$ ÐÐ'Ð(°dÀ'Øðñ ô ð Ið  Iñô ð IðF;ð ;ð ;ð	;ð 	;ð 	;ð	;ð 	;ð 	;ð"*ð "*ð "*ðJKð Kð Kð-ð -ð -ð4ð 4ð 4ð 4ð 4�{Ô,ñ 4ô 4ð 4ð,B4ð B4ð B4ð B4ð B4ñ B4ô B4ð B4ðJZNð ZNð ZNð ZNð ZNñ ZNô ZNð ZNðz3ð 3ð 3ð3ð 3ð 3ð=ð =ð =ð,	5ð 	5ð 	5ð/8ð /8ð /8ðdð ð ð#ð #ð #ðð ð ð3ð 3ð 3ð$0ð 0ð 0ð!ð !ð !ð* ð  ð  ð,Jð Jð Jð" „×ÒÐ)Ð+CÐ+CÐ+CÑDÔDð<ð <ñ EÔDð<ðB4ð 4ð 4ð&4ð 4ð 4ð&&ð &ð &ð Ð  Ð(Ñ(Ô(ð
 ð 
 ñ )Ô(ð
 ð 
 ð 
 r   