§
    ‡Ûg`I  ã                   óJ  — d dl Z d dlZd dlZd dlmZmZ d dlZd dlm	Z	m
Z
mZ d dlmZ d dlmZmZ d dlmZ  e
dgd¬¦  «        d	„ ¦   «         Z e
d
gd¬¦  «        d„ ¦   «         Z e
dgd¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zej                             dd ej        dz  ej        dz  ej        dz  g¦  «        ej                             dd dg¦  «        d„ ¦   «         ¦   «         Zd„ Z e
dgdd¬¦  «        d„ ¦   «         Z e	¦   «         d„ ¦   «         Z  e	¦   «         d„ ¦   «         Z! e
dgd¬¦  «        d „ ¦   «         Z" e
d!gd¬¦  «        d"„ ¦   «         Z#d#„ Z$d$„ Z% e
d%gd¬¦  «        d&„ ¦   «         Z& e
d'gd¬¦  «        d(„ ¦   «         Z' e
d)g¦  «        d*„ ¦   «         Z(d+„ Z)dS ),é    N)Úassert_array_almost_equalÚassert_array_equal)Úcheck_figures_equalÚimage_comparisonÚremove_ticks_and_titles)ÚpatchesÚ
transforms)ÚPathÚclippingT)Úremove_textc                  ó   — t          j        ddd¦  «        } t          j        dt           j        z  | z  ¦  «        }t	          j        ¦   «         \  }}|                     | |d¬¦  «         |                     d¦  «         d S )Nç        ç       @ç{®Gáz„?é   ç      ð?)Ú	linewidth)gš™™™™™É¿gìQ¸…ëÑ¿)ÚnpÚarangeÚsinÚpiÚpltÚsubplotsÚplotÚset_ylim)ÚtÚsÚfigÚaxs       úZ/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_simplification.pyÚtest_clippingr!      sm   € å
Œ	�#�s˜DÑ!Ô!€AÝ
Œˆq•”‰w�q‰yÑÔ€AåŒl‰nŒn�G€CˆØ‡G‚GˆAˆq˜C€GÑ Ô Ð Ø‡K‚K�ÑÔÐÐÐó    Úoverflowc                  óø   — t          j        g d¢¦  «        } t          j        t          | ¦  «        ¦  «        }t	          j        ¦   «         \  }}|                     | |¦  «         |                     dd¦  «         d S )N)r   r   ç      @g     jAr   é   )r   Úarrayr   Úlenr   r   r   Úset_xlim©ÚxÚyr   r   s       r    Útest_overflowr-      sg   € å
ŒÐ'Ð'Ð'Ñ(Ô(€AÝ
Œ	•#�a‘&”&ÑÔ€AåŒl‰nŒn�G€CˆØ‡G‚GˆAˆq�M„M€MØ‡K‚K��1ÑÔÐÐÐr"   Úclipping_diamondc                  ó  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          j        ¦   «         \  }}|                     | |¦  «         |                     dd¦  «         |                     dd¦  «         d S )N)r   r   r   ç      ð¿r   )r   r   r0   r   r   g333333ã¿g333333ã?)r   r'   r   r   r   r)   r   r*   s       r    Útest_diamondr1   (   s|   € å
ŒÐ+Ð+Ð+Ñ,Ô,€AÝ
ŒÐ+Ð+Ð+Ñ,Ô,€AåŒl‰nŒn�G€CˆØ‡G‚GˆAˆq�M„M€MØ‡K‚K��cÑÔÐØ‡K‚K��cÑÔÐÐÐr"   c                  óÀ  — t          g d¢¦  «        } |                      d¬¦  «        }t          |j        dg¦  «         |j        t           j        gk    sJ ‚t          g d¢t           j        t           j        t           j        g¦  «        } |                      d¬¦  «        }t          |j        dg¦  «         |j        t           j        gk    sJ ‚t          g d¢t           j        t           j        t           j        g¦  «        } |                      ¦   «         }|                      d¬¦  «        }t          |j        |j        ¦  «         t          |j        |j        ¦  «         d S )N)©r   r   ©é   r   ©r   r5   )é
   r7   é   r8   ©Úclipr3   )r3   r4   )r   é   )	r
   Úcleanedr   ÚverticesÚcodesÚSTOPÚMOVETOÚLINETOÚCURVE3)ÚpathÚ
simplifiedÚsimplified_clippeds      r    Útest_clipping_out_of_boundsrF   3   sB  € åÐ(Ð(Ð(Ñ)Ô)€DØ—’Ð#3�Ñ4Ô4€JÝ�zÔ*¨V¨HÑ5Ô5Ð5ØÔ¥¤	˜{Ò*Ð*Ð*Ð*õ Ð(Ð(Ð(Ý”�dœk­4¬;Ð7ñ9ô 9€Dà—’Ð#3�Ñ4Ô4€JÝ�zÔ*¨V¨HÑ5Ô5Ð5ØÔ¥¤	˜{Ò*Ð*Ð*Ð*õ Ð(Ð(Ð(Ý”�dœk­4¬;Ð7ñ9ô 9€Dà—’‘”€JØŸšÐ+;˜Ñ<Ô<ÐÝ�zÔ*Ð,>Ô,GÑHÔHÐHÝ�zÔ'Ð);Ô)AÑBÔBÐBÐBÐBr"   c                  óú  — t           j                             d¦  «         t           j                             d¬¦  «        dz  } t	          j        ¦   «         \  }}|                     | dd¬¦  «        }|j                             ¦   «          |d          	                    ¦   «         }|d          
                    ¦   «         }|                     |¦  «        }|                     d¬	¦  «        }|j        j        d
k    sJ ‚d S )Nr   éPÃ  ©Úsizeé2   Úroundr   ©Úsolid_joinstyler   T©Úsimplifyi¨c  )r   ÚrandomÚseedÚuniformr   r   r   ÚcanvasÚdrawÚget_pathÚget_transformÚtransform_pathr<   r=   rJ   ©r+   r   r   Úp1rC   Ú	transformrD   s          r    Ú
test_noiser\   J   sØ   € Ý„I‡N‚N�1ÑÔÐÝ
Œ	×Ò˜uÐÑ%Ô%¨Ñ*€AåŒl‰nŒn�G€CˆØ	�Š� G°sˆÑ	;Ô	;€Bð „J‡O‚OÑÔÐØˆaŒ5�>Š>ÑÔ€DØ�1”×#Ò#Ñ%Ô%€IØ×#Ò# DÑ)Ô)€DØ—’ t�Ñ,Ô,€JàÔÔ# uÒ,Ð,Ð,Ð,Ð,Ð,r"   c                  ó–  — d„ } g d¢}g d¢} | ||¦  «        }t          ddgddgddgddgg|j        d d	…d d …f         ¦  «         g d¢}g d
¢} | ||¦  «        }t          ddgddgddgddgg|j        d d	…d d …f         ¦  «         g d¢}g d¢} | ||¦  «        }t          ddgddgddgddgddgg|j        d d	…d d …f         ¦  «         g d¢}g d¢} | ||¦  «        }t          ddgddgddgg|j        d d	…d d …f         ¦  «         g d¢}g d¢} | ||¦  «        }t          ddgddgddgddgg|j        d d	…d d …f         ¦  «         d S )Nc                 ój  — t          j        ¦   «         \  }}|                     | |¦  «        }|d                              ¦   «         }|d                              ¦   «         }|                     |¦  «        }|                     d¬¦  «        }|                     ¦   «                              |¦  «        }|S )Nr   TrO   )r   r   r   rV   rW   rX   r<   Úinverted)r+   r,   r   r   rZ   rC   r[   rD   s           r    Ú_get_simplifiedz9test_antiparallel_simplification.<locals>._get_simplified\   s•   € Ý”,‘.”.‰ˆˆRØ�WŠW�Q˜‰]Œ]ˆà�!Œu�~Š~ÑÔˆØ�q”E×'Ò'Ñ)Ô)ˆ	Ø×'Ò'¨Ñ-Ô-ˆØ—\’\¨4�\Ñ0Ô0ˆ
Ø×'Ò'Ñ)Ô)×8Ò8¸ÑDÔDˆ
àÐr"   )r   r   r   r   r   r5   )ç      à?r5   éÿÿÿÿr5   r   ra   r   ra   r0   r   r   éþÿÿÿ)ra   r5   rb   r5   rc   ra   g       À)ra   r5   rb   r5   r   ra   )ra   r5   r   r5   r;   ra   r%   )ra   r5   r   r5   r5   ra   )r   r=   )r`   r+   r,   rD   s       r    Ú test_antiparallel_simplificationrd   [   s_  € ð
ð 
ð 
ð 	ÐÐ€AØÐÐ€Aà �  AÑ&Ô&€Jå  C˜yØ " C˜yØ " B˜xØ " C˜yð*ð )Ô1°#°2°#°q°q°q°&Ô9ñ	;ô ;ð ;ð 	ÐÐ€AØÐÐ€Aà �  AÑ&Ô&€Jå  C˜yØ " B˜xØ " C˜yØ " C˜yð*ð )Ô1°#°2°#°q°q°q°&Ô9ñ	;ô ;ð ;ð 	ÐÐ€AØÐÐ€Aà �  AÑ&Ô&€Jå  C˜yØ " B˜xØ " C˜yØ " B˜xØ " C˜yð	*ð
 )Ô1°#°2°#°q°q°q°&Ô9ñ;ô ;ð ;ð 	ÐÐ€AØÐÐ€Aà �  AÑ&Ô&€Jå  C˜yØ " B˜xØ " C˜yð*ð )Ô1°#°2°#°q°q°q°&Ô9ñ;ô ;ð ;ð 	ÐÐ€AØÐÐ€Aà �  AÑ&Ô&€Jå  C˜yØ " B˜xØ " B˜xØ " C˜yð*ð )Ô1°#°2°#°q°q°q°&Ô9ñ	;ô ;ð ;ð ;ð ;r"   Úangleé   r;   r   Úoffsetra   c                 ó†  — d}t           j                             d¦  «         t           j                             d¦  «        |z
  |z  }d|d<   d|d<   t          j        | ¦  «        |z  }t          j        | ¦  «        |z  }|dd …                              ¦   «         }|dd …                              ¦   «         }|dd …                              ¦   «         }|dd …                              ¦   «         }	|dk    r/t          ddg||g||	g|d         |d         gddggg d¢¬¦  «        }
n+t          ddg||g|d         |d         gddggg d	¢¬¦  «        }
t          t          j	        ||g¦  «        j
        ¦  «        }|                     d
¬¦  «        }t          |
j        |j        ¦  «         t          |
j        |j        ¦  «         d S )Né   i!N,é   r   r5   rb   )r5   r   r   r   r   )r>   )r5   r   r   r   TrO   )r   rQ   rR   Úrandr   ÚcosÚmaxÚminr
   ÚvstackÚTr<   r   r=   r   r>   )re   rg   ÚscaleÚvert_offsetsr+   r,   Úx_maxÚx_minÚy_maxÚy_minÚ
p_expectedÚpÚp2s                r    Útest_angled_antiparallelrz   ª   sÐ  € ð €EÝ„I‡N‚N�8ÑÔÐõ ”I—N’N 2Ñ&Ô&¨Ñ/°5Ñ8€Là€L��Oà€L��Oå
Œˆu‰Œ˜Ñ$€AÝ
Œˆu‰Œ˜Ñ$€Að ˆaˆbˆbŒE�IŠI‰KŒK€EØˆaˆbˆbŒE�IŠI‰KŒK€EàˆaˆbˆbŒE�IŠI‰KŒK€EØˆaˆbˆbŒE�IŠI‰KŒK€Eà�‚z€zÝ˜A˜q˜6Ø! 5˜>Ø! 5˜>Ø˜bœE 1 R¤5˜>Ø˜q˜6ð	#ð
 !0  ð1ñ 1ô 1ˆ
ˆ
õ ˜A˜q˜6Ø! 5˜>Ø˜bœE 1 R¤5˜>Ø˜q˜6ð#ð !-  ð	.ñ .ô .ˆ
õ 	�RŒY˜˜1�vÑÔÔ Ñ!Ô!€AØ	
�Š˜DˆÑ	!Ô	!€Bå˜jÔ1Ø œkñ+ô +ð +å�zÔ'¨¬Ñ2Ô2Ð2Ð2Ð2r"   c                  óf  — t           j                             d¦  «         t          j        t          j        dt           j        dz  d¦  «        ¦  «        t           j                             d¬¦  «        dz  z   } t          j        ¦   «         \  }}| 	                    | dd¬¦  «        }|j
                             ¦   «          |d                              ¦   «         }|d                              ¦   «         }|                     |¦  «        }|                     d¬	¦  «        }|j        j        d
k    sJ ‚d S )Nr   r   rH   rI   r   rL   rM   TrO   i˜b  )r   rQ   rR   r   Úlinspacer   rS   r   r   r   rT   rU   rV   rW   rX   r<   r=   rJ   rY   s          r    Útest_sine_plus_noiser}   Ø   s   € Ý„I‡N‚N�1ÑÔÐÝ	Œ•”˜A�rœu s™{¨EÑ2Ô2Ñ	3Ô	3Ý	Œ×	Ò	 Ð	Ñ	&Ô	&¨Ñ	-ñ
.€Aõ Œl‰nŒn�G€CˆØ	�Š� G°sˆÑ	;Ô	;€Bð „J‡O‚OÑÔÐØˆaŒ5�>Š>ÑÔ€DØ�1”×#Ò#Ñ%Ô%€IØ×#Ò# DÑ)Ô)€DØ—’ t�Ñ,Ô,€JàÔÔ# uÒ,Ð,Ð,Ð,Ð,Ð,r"   Úsimplify_curvegœÄ °rh‘?)r   Útolc                  óÐ  — t          j        t          dddt          j        dfddddgt          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        g¦  «        d¬¦  «        } t          j	        ¦   «         \  }}| 
                    | ¦  «         |                     d	¦  «         |                     d	¦  «         d S )
Nr3   )r5   r   )r5   r5   r5   )r   r   )r   r   Únone)Úfc)r   r   )r   Ú	PathPatchr
   r   Únanr@   rB   Ú	CLOSEPOLYr   r   Ú	add_patchr)   r   )Úpp1r   r   s      r    Útest_simplify_curverˆ   ê   s»   € å
Ô
Ýˆf�f˜f¥r¤v¨q k°6¸6À6ØðåŒk�4œ;­¬µT´[Å$Ä+ÝŒk�4œ;­¬ð8ñ	9ô 	9ð ðñ ô €Cõ Œl‰nŒn�G€CˆØ‡L‚L�ÑÔÐØ‡K‚K�ÑÔÐØ‡K‚K�ÑÔÐÐÐr"   c                 ó>  — |                       dd¦  «                             ¦   «         }|                      dd¦  «                             ¦   «         }t          dt          j        gddgddgddgddggt          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          dt          j        gddgddgddgdt          j        ggt          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          ddgddgddgdt          j        gddggt          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          ddgddgddgdt          j        gddggt          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          dt          j        gddgddgddgddgddgddgddgdt          j        gddgg
t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        g
¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          dt          j        gddgddgddgdt          j        gddgddgddgdt          j        gddgg
t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        g
¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          d	d	gdd	gdt          j        gddgd	dgd	d	ggt          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          d	d	gdd	gdt          j        gddgd	dgd	d	ggt          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          ddgddgddgdt          j        gddgddggt          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          ddgddgddgdt          j        gddgddggt          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          d	d	gdd	gdt          j        gddgddgd	dgd	d	ggt          j        t          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          d	d	gdd	gdt          j        gddgddgd	dgd	d	ggt          j        t          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          ddgddgddgdt          j        gddgddgddggt          j        t          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          ddgddgddgdt          j        gddgddgddggt          j        t          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          ddgddgddgddgdt          j        gddgddggt          j        t          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         t          ddgddgddgddgdt          j        gddgddggt          j        t          j        t          j        t          j        t          j        t          j        t          j        g¦  «        }|d                              t          j
        |d¬¦  «        ¦  «         g |j        ¢|j        ¢D ]}|                     d
d
¬¦  «         Œt          | ¦  «         t          |¦  «         d S )Nr   éýÿÿÿr;   r   r�   ©Ú	facecolorrc   r5   rb   )g      Àg      @)ÚxlimÚylim)r   Úflattenr
   r   r„   r@   rA   r…   r†   r   rƒ   rB   ÚCURVE4ÚflatÚsetr   )Úfig_testÚfig_refÚax_testÚax_refrC   r   s         r    Útest_closed_path_nan_removalr—   ù   sB	  € à×Ò  1Ñ%Ô%×-Ò-Ñ/Ô/€GØ×Ò˜a Ñ#Ô#×+Ò+Ñ-Ô-€Fõ Ø
�bŒfˆ˜˜2�w  A ¨¨Q¨°"°b°Ð:Ý	Œ•d”k¥4¤;µ´½T¼^ÐLñNô N€Dð ˆA„J×Ò�Ô*¨4¸6ÐBÑBÔBÑCÔCÐCÝØ
�bŒfˆ˜˜2�w  A ¨¨Q¨°"µb´f°Ð>Ý	Œ•d”k¥4¤;µ´½T¼[ÐIñKô K€Dð ˆ1„I×Ò�Ô)¨$¸&ÐAÑAÔAÑBÔBÐBõ Ø
ˆbˆ�A�r�7˜Q ˜F R­¬ L°2°r°(Ð;Ý	Œ•d”k¥4¤;µ´½T¼^ÐLñNô N€Dð ˆA„J×Ò�Ô*¨4¸6ÐBÑBÔBÑCÔCÐCÝØ
ˆbˆ�A�r�7˜Q ˜F R­¬ L°2°r°(Ð;Ý	Œ•d”k¥4¤;µ´½T¼[ÐIñKô K€Dð ˆ1„I×Ò�Ô)¨$¸&ÐAÑAÔAÑBÔBÐBõ Ø
�bŒfˆ˜˜2�w  A ¨¨Q¨°"°b°Ø
ˆbˆ�A�r�7˜Q ˜F R­¬ L°2°r°(ð	<å	Œ•d”k¥4¤;µ´½T¼^Ý	Œ•d”k¥4¤;µ´½T¼^ð	MñNô N€Dð
 ˆA„J×Ò�Ô*¨4¸6ÐBÑBÔBÑCÔCÐCÝØ
�bŒfˆ˜˜2�w  A ¨¨Q¨°"µb´f°Ø
ˆbˆ�A�r�7˜Q ˜F R­¬ L°2°r°(ð	<å	Œ•d”k¥4¤;µ´½T¼[Ý	Œ•d”k¥4¤;µ´½T¼[ð	JñKô K€Dð
 ˆ1„I×Ò�Ô)¨$¸&ÐAÑAÔAÑBÔBÐBõ Ø
ˆbˆ�A�r�7˜Q¥¤˜K¨!¨Q¨°"°a°¸2¸r¸(ÐCÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œð	ñô €Dð ˆA„J×Ò�Ô*¨4¸6ÐBÑBÔBÑCÔCÐCÝØ
ˆbˆ�A�r�7˜Q¥¤˜K¨!¨Q¨°"°a°¸2¸r¸(ÐCÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œð	ñô €Dð ˆ1„I×Ò�Ô)¨$¸&ÐAÑAÔAÑBÔBÐBõ Ø
ˆbˆ�A�r�7˜Q ˜F Q­¬ K°"°a°¸2¸r¸(ÐCÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œð	ñô €Dð ˆA„J×Ò�Ô*¨4¸6ÐBÑBÔBÑCÔCÐCÝØ
ˆbˆ�A�r�7˜Q ˜F Q­¬ K°"°a°¸2¸r¸(ÐCÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œð	ñô €Dð ˆ1„I×Ò�Ô)¨$¸&ÐAÑAÔAÑBÔBÐBõ Ø
ˆbˆ�A�r�7˜Q¥¤˜K¨!¨Q¨°!°Q°¸"¸a¸À2ÀrÀ(ÐKÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œ•d”nð	&ñ'ô '€Dð ˆA„J×Ò�Ô*¨4¸6ÐBÑBÔBÑCÔCÐCÝØ
ˆbˆ�A�r�7˜Q¥¤˜K¨!¨Q¨°!°Q°¸"¸a¸À2ÀrÀ(ÐKÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œ•d”nð	&ñ'ô '€Dð ˆ1„I×Ò�Ô)¨$¸&ÐAÑAÔAÑBÔBÐBõ Ø
ˆbˆ�A�r�7˜Q ˜F Q­¬ K°!°Q°¸"¸a¸À2ÀrÀ(ÐKÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œ•d”kð	#ñ$ô $€Dð ˆA„J×Ò�Ô*¨4¸6ÐBÑBÔBÑCÔCÐCÝØ
ˆbˆ�A�r�7˜Q ˜F Q­¬ K°!°Q°¸"¸a¸À2ÀrÀ(ÐKÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œ•d”kð	#ñ$ô $€Dð ˆ1„I×Ò�Ô)¨$¸&ÐAÑAÔAÑBÔBÐBõ Ø
ˆbˆ�A�r�7˜Q ˜F Q¨ F¨Qµ´¨K¸"¸a¸À2ÀrÀ(ÐKÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œ•d”kð	#ñ$ô $€Dð ˆA„J×Ò�Ô*¨4¸6ÐBÑBÔBÑCÔCÐCÝØ
ˆbˆ�A�r�7˜Q ˜F Q¨ F¨Qµ´¨K¸"¸a¸À2ÀrÀ(ÐKÝ	Œ•d”k¥4¤;µ´½T¼[Ý	Œ•d”kð	#ñ$ô $€Dð ˆ1„I×Ò�Ô)¨$¸&ÐAÑAÔAÑBÔBÐBð ,�”Ð+˜vœ{Ð+ð 3ð 3ˆØ
�Š�K kˆÑ2Ô2Ð2Ð2Ý˜HÑ%Ô%Ð%Ý˜GÑ$Ô$Ð$Ð$Ð$r"   c           
      óØ  — g }t          d¦  «        D ]„}d|z  dz   }ddgddgddgddgd|dz  z
  dgd|dz  z
  |g|dz  |g|dz  dgg}t          j        ||d¬¦  «        }t          j        ||d d…d d …f         f¦  «        }|                     |¦  «         Œ…t          j        t          |d         ¦  «        t          j        ¦  «        }t          j	        |d<   t          j
        |d	<   t          j        |t          |¦  «        ¦  «        }t          j        |¦  «        }|                      d
¦  «         t          ||¦  «        }|                      t          j        |d¬¦  «        ¦  «         |                     d
¦  «         |                     ¦   «         }t          j        ||t          j
        k    <   t          ||¦  «        }|                     t          j        |d¬¦  «        ¦  «         d S )Né   gš™™™™™¹?g      à¿g      ø?r5   r   r   )Úaxisrb   )ri   ri   r�   r‹   )Úranger   ÚrollÚconcatenateÚappendÚfullr(   r
   rA   r@   r…   ÚtileÚset_size_inchesÚ
add_artistr   rƒ   Úcopy)r“   r”   r=   rœ   rg   Úpatternr>   rC   s           r    Útest_closed_path_clippingr¥   e  sæ  € à€HÝ�a‘”ð !ð !ˆØ�t‘˜cÑ!ˆð �3ˆK˜$ ˜¨¨T {°S¸#°Jà�˜!‘‰^˜SÐ! A¨°©
¡N°FÐ#;Ø�a‰Z˜Ð  6¨A¡:¨sÐ"3ð	
ˆõ ”'˜' 4¨aÐ0Ñ0Ô0ˆÝ”. '¨7°2°A°2°q°q°q°5¬>Ð!:Ñ;Ô;ˆà�Š˜Ñ Ô Ð Ð õ ŒG•C˜ œÑ$Ô$¥d¤kÑ2Ô2€EÝŒ{€Eˆ!�HÝ”€Eˆ"�IÝŒG�E�3˜x™=œ=Ñ)Ô)€EÝŒ~˜hÑ'Ô'€Hà×Ò˜VÑ$Ô$Ð$Ý�˜%Ñ Ô €DØ×Ò�Ô)¨$¸&ÐAÑAÔAÑBÔBÐBð ×Ò˜FÑ#Ô#Ð#Ø�JŠJ‰LŒL€EÝ%)¤[€Eˆ%•4”>Ò
!Ñ"Ý�˜%Ñ Ô €DØ×Ò•wÔ(¨¸Ð@Ñ@Ô@ÑAÔAÐAÐAÐAr"   Úhatch_simplifyc            	      óÞ   — t          j        ¦   «         \  } }|                     t          j        ddddd¬¦  «        ¦  «         |                     d¦  «         |                     d¦  «         d S )Nr3   r5   Fú/)ÚfillÚhatch)gÍÌÌÌÌÌÜ?gš™™™™™á?)r   r   r†   Ú	Rectangler)   r   )r   r   s     r    Ú
test_hatchr¬   Ž  sb   € åŒl‰nŒn�G€CˆØ‡L‚L•”˜v q¨!°%¸sÐCÑCÔCÑDÔDÐDØ‡K‚K�ÑÔÐØ‡K‚K�ÑÔÐÐÐr"   Ú	fft_peaksc                  óz  — t          j        ¦   «         \  } }t          j        d¦  «        }|                     t          t          j                             t          j        dt          j        z  dz  |z  ¦  «        t          j	        t          |¦  «        ¦  «        z  ¦  «        ¦  «        ¦  «        }| j                             ¦   «          |d                              ¦   «         }|d                              ¦   «         }|                     |¦  «        }|                     d¬¦  «        }|j        j        dk    sJ ‚d S )Ni   r   r   r   TrO   é$   )r   r   r   r   r   ÚabsÚfftr   r   Úblackmanr(   rT   rU   rV   rW   rX   r<   r=   rJ   )r   r   r   rZ   rC   r[   rD   s          r    Útest_fft_peaksr³   –  só   € åŒl‰nŒn�G€CˆÝ
Œ	�%ÑÔ€AØ	�Š••R”V—Z’Z¥¤ q­¬¡w¨s¡{°1¡}Ñ 5Ô 5µb´kÅ#ÀaÁ&Ä&Ñ6IÔ6IÑ IÑJÔJÑKÔKÑ	LÔ	L€Bð „J‡O‚OÑÔÐØˆaŒ5�>Š>ÑÔ€DØ�1”×#Ò#Ñ%Ô%€IØ×#Ò# DÑ)Ô)€DØ—’ t�Ñ,Ô,€JàÔÔ# rÒ)Ð)Ð)Ð)Ð)Ð)r"   c                  óš  — d} t          j        t          j        | ¦  «        d¬¦  «        }|                     t          |¦  «        dz  df¦  «        }t          |¦  «        }|                     t          j	        ¦   «         d¬¦  «        }t          |¦  «        }t          |¦  «        dk    sJ ‚|d         d         t          j        k    sJ ‚d S )	NsÌ  
ZwAAAAku+v9UAQAA+Tj6/z8CAADpQ/r/KAMAANlO+v8QBAAAyVn6//UEAAC6ZPr/2gUAAKpv+v+8
BgAAm3r6/50HAACLhfr/ewgAAHyQ+v9ZCQAAbZv6/zQKAABepvr/DgsAAE+x+v/lCwAAQLz6/7wM
AAAxx/r/kA0AACPS+v9jDgAAFN36/zQPAAAF6Pr/AxAAAPfy+v/QEAAA6f36/5wRAADbCPv/ZhIA
AMwT+/8uEwAAvh77//UTAACwKfv/uRQAAKM0+/98FQAAlT/7/z0WAACHSvv//RYAAHlV+/+7FwAA
bGD7/3cYAABea/v/MRkAAFF2+//pGQAARIH7/6AaAAA3jPv/VRsAACmX+/8JHAAAHKL7/7ocAAAP
rfv/ah0AAAO4+/8YHgAA9sL7/8QeAADpzfv/bx8AANzY+/8YIAAA0OP7/78gAADD7vv/ZCEAALf5
+/8IIgAAqwT8/6kiAACeD/z/SiMAAJIa/P/oIwAAhiX8/4QkAAB6MPz/HyUAAG47/P+4JQAAYkb8
/1AmAABWUfz/5SYAAEpc/P95JwAAPmf8/wsoAAAzcvz/nCgAACd9/P8qKQAAHIj8/7cpAAAQk/z/
QyoAAAWe/P/MKgAA+aj8/1QrAADus/z/2isAAOO+/P9eLAAA2Mn8/+AsAADM1Pz/YS0AAMHf/P/g
LQAAtur8/10uAACr9fz/2C4AAKEA/f9SLwAAlgv9/8ovAACLFv3/QDAAAIAh/f+1MAAAdSz9/ycx
AABrN/3/mDEAAGBC/f8IMgAAVk39/3UyAABLWP3/4TIAAEFj/f9LMwAANm79/7MzAAAsef3/GjQA
ACKE/f9+NAAAF4/9/+E0AAANmv3/QzUAAAOl/f+iNQAA+a/9/wA2AADvuv3/XDYAAOXF/f+2NgAA
29D9/w83AADR2/3/ZjcAAMfm/f+7NwAAvfH9/w44AACz/P3/XzgAAKkH/v+vOAAAnxL+//04AACW
Hf7/SjkAAIwo/v+UOQAAgjP+/905AAB5Pv7/JDoAAG9J/v9pOgAAZVT+/606AABcX/7/7zoAAFJq
/v8vOwAASXX+/207AAA/gP7/qjsAADaL/v/lOwAALZb+/x48AAAjof7/VTwAABqs/v+LPAAAELf+
/788AAAHwv7/8TwAAP7M/v8hPQAA9df+/1A9AADr4v7/fT0AAOLt/v+oPQAA2fj+/9E9AADQA///
+T0AAMYO//8fPgAAvRn//0M+AAC0JP//ZT4AAKsv//+GPgAAojr//6U+AACZRf//wj4AAJBQ///d
PgAAh1v///c+AAB+Zv//Dz8AAHRx//8lPwAAa3z//zk/AABih///TD8AAFmS//9dPwAAUJ3//2w/
AABHqP//ej8AAD6z//+FPwAANb7//48/AAAsyf//lz8AACPU//+ePwAAGt///6M/AAAR6v//pj8A
AAj1//+nPwAA/////w==z<i4)Údtyper   )r   r   ç      Y@r¶   r9   r5   r   )r   Ú
frombufferÚbase64ÚdecodebytesÚreshaper(   r
   Úiter_segmentsr	   ÚIdentityTransformÚlistr@   )ÚdataÚvertsrC   Úsegss       r    Útest_start_with_movetorÁ   ¦  s¼   € ð€Dõ, ŒM�&Ô,¨TÑ2Ô2¸%Ð@Ñ@Ô@€EØ�MŠM�3˜u™:œ:¨™?¨AÐ.Ñ/Ô/€EÝ�‰;Œ;€DØ×Ò�jÔ:Ñ<Ô<Ø#;ð ñ =ô =€Då�‰:Œ:€DÝˆt‰9Œ9˜Š>ˆ>ˆ>ˆ>Ø�Œ7�1Œ:�œÒ$Ð$Ð$Ð$Ð$Ð$r"   c                  ó°  — dt           j        d<   t          j        d¦  «        } t          j                             d¦  «        }t          j        |d<   t          j        ¦   «         \  }}|                     | |¦  «         t          j
        t          ¦  «        5  |                     t          j        ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NFzpath.simplifyi€„ iè  )r   ÚrcParamsr   r   rQ   rk   r„   r   r   ÚpytestÚraisesÚOverflowErrorÚsavefigÚioÚBytesIO)ÚxxÚyyr   r   s       r    Ú(test_throw_rendering_complexity_exceededrÌ   È  sç   € Ø$)…C„L�Ñ!Ý	Œ�9Ñ	Ô	€BÝ	Œ�Š˜	Ñ	"Ô	"€BÝŒv€B€t�HåŒl‰nŒn�G€CˆØ‡G‚GˆB��O„O€OÝ	Œ•}Ñ	%Ô	%ð "ð "Ø�Š•B”J‘L”LÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s   Â'CÃCÃCÚclipper_edgec                  ó  — d} t          j        d¬¦  «        }|                     dddd¬¦  «         |                     ddd¬	¦  «        }|                     | ¦  «         |j                             t          j        d
¦  «        ¦  «         |j                             t          j        d
¦  «        ¦  «         |j         	                    d¦  «         |j         	                    d¦  «         | 
                    dd¦  «         d S )N)
r   r5   r   r   r   r;   r   rf   r   ri   r6   )Úfigsizer   )ÚleftÚbottomÚwspaceÚhspace)r   r   r   r   )r   ri   F)rŽ   Úautoscale_onr5   rÑ   rÐ   ri   é	   )r   ÚfigureÚsubplots_adjustÚadd_axesr   ÚxaxisÚset_major_locatorÚMultipleLocatorÚyaxisÚset_ticks_positionr)   )Údatr   r   s      r    Útest_clipperrß   Ô  så   € à
(€CÝ
Œ*˜VÐ
$Ñ
$Ô
$€CØ×Ò˜Q q°¸1ÐÑ=Ô=Ð=à	�ŠÐ&¨VÀ%ˆÑ	HÔ	H€BØ‡G‚GˆC�L„L€LØ„H×Ò�sÔ2°1Ñ5Ô5Ñ6Ô6Ð6Ø„H×Ò�sÔ2°1Ñ5Ô5Ñ6Ô6Ð6Ø„H×Ò Ñ)Ô)Ð)Ø„H×Ò Ñ'Ô'Ð'à‡K‚K��1ÑÔÐÐÐr"   Úpara_equal_perpc                  ó  — t          j        g d¢dgdz  z   ¦  «        } t          j        g d¢dgdz  z   ¦  «        }t          j        ¦   «         \  }}|                     | dz   |dz   ¦  «         |                     | dz   |dz   d¦  «         d S )N)r   r5   r   r5   r   rb   r   r5   r5   é€   )r5   r5   r   r5   r   rb   r   r   r   Úro)r   r'   r   r   r   r*   s       r    Útest_para_equal_perprä   ä  s“   € å
ŒÐ*Ð*Ð*¨a¨S°3©YÑ6Ñ7Ô7€AÝ
ŒÐ*Ð*Ð*¨a¨S°3©YÑ6Ñ7Ô7€AåŒl‰nŒn�G€CˆØ‡G‚GˆA�‰E�1�q‘5ÑÔÐØ‡G‚GˆA�‰E�1�q‘5˜$ÑÔÐÐÐr"   Úclipping_with_nansc                  ó  — t          j        ddd¦  «        } t          j        | ¦  «        }t           j        | d d d…<   t	          j        ¦   «         \  }}|                     | |¦  «         |                     dd¦  «         d S )Nr   g…ëQ¸@i¸  éd   g      Ð¿g      Ð?)r   r|   r   r„   r   r   r   r   r*   s       r    Útest_clipping_with_nansrè   î  sm   € å
Œ�A�x Ñ&Ô&€AÝ
Œˆq‰	Œ	€AÝŒv€A€e€eˆ€e�HåŒl‰nŒn�G€CˆØ‡G‚GˆAˆq�M„M€MØ‡K‚K��tÑÔÐÐÐr"   c                  óÜ  — t          ddggdz  ¦  «        } t          |                      g d¢¬¦  «        ¦  «        }|g k    sJ ‚t          ddgddggd	d
g¦  «        } t          |                      g d¢¬¦  «        ¦  «        }d„ |D ¦   «         ddgd	fddgd
fgk    sJ ‚t          ddggd	g¦  «        } t          |                      g d¢¬¦  «        ¦  «        }d„ |D ¦   «         ddgd	fgk    sJ ‚d S )NgêŒ 9Y>)Fri   )r   r   rç   rç   r9   rK   é(   éK   éA   r5   r   c                 ó6   — g | ]\  }}t          |¦  «        |f‘ŒS © ©r½   ©Ú.0r+   r,   s      r    ú
<listcomp>z&test_clipping_full.<locals>.<listcomp>   ó&   € Ð1Ð1Ð1™d˜a �d�1‰gŒg�qˆ\Ð1Ð1Ð1r"   c                 ó6   — g | ]\  }}t          |¦  «        |f‘ŒS rî   rï   rð   s      r    rò   z&test_clipping_full.<locals>.<listcomp>  ró   r"   )r
   r½   r»   )rx   rD   s     r    Útest_clipping_fullrõ   ù  sC  € Ýˆt�Tˆlˆ^˜aÑÑ Ô €AÝ�a—o’oÐ+;Ð+;Ð+;�oÑ<Ô<Ñ=Ô=€JØ˜ÒÐÐÐåˆr�2ˆh˜˜R˜Ð! A q 6Ñ*Ô*€AÝ�a—o’oÐ+;Ð+;Ð+;�oÑ<Ô<Ñ=Ô=€JØ1Ð1 jÐ1Ñ1Ô1Ø�2ˆh˜ˆ]˜b "˜X q˜MÐ*ò+ð +ð +ð +õ 	ˆr�2ˆhˆZ˜!˜ÑÔ€AÝ�a—o’oÐ+;Ð+;Ð+;�oÑ<Ô<Ñ=Ô=€JØ1Ð1 jÐ1Ñ1Ô1Ø�2ˆh˜ˆ]ˆOòð ð ð ð ð r"   )*r¸   rÈ   Únumpyr   Únumpy.testingr   r   rÄ   Úmatplotlib.testing.decoratorsr   r   r   Úmatplotlib.pyplotÚpyplotr   Ú
matplotlibr   r	   Úmatplotlib.pathr
   r!   r-   r1   rF   r\   rd   ÚmarkÚparametrizer   rz   r}   rˆ   r—   r¥   r¬   r³   rÁ   rÌ   rß   rä   rè   rõ   rî   r"   r    ú<module>rÿ      sœ  ðØ €€€Ø 	€	€	€	à Ð Ð Ð Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gà €€€ðDð Dð Dð Dð Dð Dð Dð Dð Dð Dà Ð Ð Ð Ð Ð à *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ø  Ð  Ð  Ð  Ð  Ð  ð Ð�:�,¨DÐ1Ñ1Ô1ð ð  ñ 2Ô1ð ð Ð�:�,¨DÐ1Ñ1Ô1ðð ñ 2Ô1ðð ÐÐ%Ð&°DÐ9Ñ9Ô9ðð ñ :Ô9ððCð Cð Cð.-ð -ð -ð"G;ð G;ð G;ð^ „×Ò˜ 1 b¤e¨A¡g¨r¬u°Q©w¸¼¸a¹Ð"@ÑAÔAØ„×Ò˜ A r 7Ñ+Ô+ð)3ð )3ñ ,Ô+ñ BÔAð)3ðX-ð -ð -ð$ ÐÐ#Ð$°$¸EÐBÑBÔBðð ñ CÔBðð ÐÑÔðh%ð h%ñ Ôðh%ðV ÐÑÔð%Bð %Bñ Ôð%BðP ÐÐ#Ð$°$Ð7Ñ7Ô7ðð ñ 8Ô7ðð Ð�;�-¨TÐ2Ñ2Ô2ð*ð *ñ 3Ô2ð*ð%ð %ð %ðD	"ð 	"ð 	"ð Ð�>Ð"°Ð5Ñ5Ô5ðð ñ 6Ô5ðð ÐÐ$Ð%°4Ð8Ñ8Ô8ð ð  ñ 9Ô8ð ð ÐÐ'Ð(Ñ)Ô)ðð ñ *Ô)ððð ð ð ð r"   