§
    ‡Ûg"  ã                   ó<  — d dl Z d dlZd dlmZ d dlmZ d dlmZ	 d„ Z
 edg¦  «        d„ ¦   «         Z edg¦  «        d„ ¦   «         Zd„ Z ed	gd
 ej        ¦   «         dk    rd nd ed¬¦  «        ¬¦  «        d„ ¦   «         Z edgd
 ej        ¦   «         dk    rd nd ed¬¦  «        ¬¦  «        d„ ¦   «         Z edgd
d¬¦  «        d„ ¦   «         Z edgdd
 ej        ¦   «         dk    rd nd¬¦  «        d„ ¦   «         Z edgdd
¬¦  «        d„ ¦   «         Zd „ ZdS )!é    N)Úimage_comparisonc                 ód   — |                       ddd|z   fddt          |dd¬¦  «        ¬¦  «         d S )	NÚ ç      à?©r   r   é   ÚbÚk)Ú
arrowstyleÚfcÚec)ÚxyÚxytextÚsizeÚ
arrowprops)ÚannotateÚdict)ÚaxÚtÚrs      úY/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/tests/test_arrow_patches.pyÚ
draw_arrowr      sP   € Ø‡K‚K�˜˜S 1™W�~¨j¸rÝ¨1Ø#&¨3ð0ñ 0ô 0ð ñ 1ô 1ð 1ð 1ð 1ó    Úfancyarrow_test_imagec            	      ó�  — g d¢} ddt           j                             ¦   «         g}t          j        t          |¦  «        t          | ¦  «        ddt          d¬¦  «        ¬¦  «        \  }}t          | ¦  «        D ]L\  }}t          |¦  «        D ]7\  }}|||f         }t          |||¦  «         | 	                    dd¬	¦  «         Œ8ŒMd S )
N)çš™™™™™Ù?ç333333Ó?çš™™™™™É?çš™™™™™¹?r   ÚfancyÚsimpleF)é   g      @é   )Úaspect)ÚsqueezeÚfigsizeÚ
subplot_kw)Ú	labelleftÚlabelbottom)
ÚmpatchesÚ
ArrowStyleÚFancyÚpltÚsubplotsÚlenr   Ú	enumerater   Útick_params)	r   r   ÚfigÚaxsÚi_rÚr1Úi_tÚt1r   s	            r   Útest_fancyarrowr8      sá   € ð 	 ÐÐ€AØ	�(�HÔ/×5Ò5Ñ7Ô7Ð8€AåŒ|�C ™FœF¥C¨¡F¤F°EØ$,½ÀQ¸¹¼ðIñ Iô I�H€Cˆõ ˜Q‘<”<ð ?ð ?‰ˆˆRÝ  ‘|”|ð 	?ð 	?‰GˆC�Ø�S˜#�X”ˆBÝ�r˜2˜rÑ"Ô"Ð"Ø�NŠN U¸ˆNÑ>Ô>Ð>Ð>ð	?ð?ð ?r   zboxarrow_test_image.pngc                  ój  — t           j                             ¦   «         } t          | ¦  «        }d}||z  dz   }t	          j        d|dz  f¬¦  «        }d}t          t          | ¦  «        ¦  «        D ]B\  }}|                     d||z
  |z  dz
  |z  |d||j	        t          |dd	¬
¦  «        ¬¦  «         ŒCd S )Ng333333ó?r   gUUUUUU@g      ø?©r&   g™™™™™™5@ÚcenterÚwr
   )Úboxstyler   r   )Úhar   Ú	transformÚbbox)r*   ÚBoxStyleÚ
get_stylesr/   r-   Úfigurer0   ÚsortedÚtextÚtransFigurer   )ÚstylesÚnÚspacingÚ	figheightr2   ÚfontsizeÚiÚ	stylenames           r   Útest_boxarrowrN      sß   € õ Ô×)Ò)Ñ+Ô+€FåˆF‰Œ€AØ€Gà�W‘˜rÑ!€IÝ
Œ*˜g y°3¡Ð7Ð
8Ñ
8Ô
8€Cà€Hå!¥&¨¡.¤.Ñ1Ô1ð @ð @‰ˆˆ9Ø�Š�˜˜A™ Ñ(¨3Ñ.°	Ñ9¸9ØØØœ?Ý I°#¸#Ð>Ñ>Ô>ð	 	ñ 	@ô 	@ð 	@ð 	@ð@ð @r   c            	      ó  — t          j        ddd¬¦  «        } |                      ¦   «         }|                     ddg¦  «         |                     ddg¦  «         |                     t          j        ddd	d
d¬¦  «        ¦  «         | S )zý
    Convenience function that prepares and returns a FancyArrowPatch. It aims
    at being used to test that the size of the arrow head does not depend on
    the DPI value of the exported picture.

    NB: this function *is not* a test in itself!
    Úfancyarrow_dpi_cor_test)é   é   é2   )r&   Údpir   r#   )r   r   )çš™™™™™é?g333333ã?rR   ú->éd   )ÚposAÚposBÚlwr   Úmutation_scale)r-   rC   Úadd_subplotÚset_xlimÚset_ylimÚ	add_patchr*   ÚFancyArrowPatch)Úfig2r   s     r   Ú!__prepare_fancyarrow_dpi_cor_testrb   3   s•   € õ Œ:Ð/¸ÀRÐHÑHÔH€DØ	×	Ò	Ñ	Ô	€BØ‡K‚K��A�ÑÔÐØ‡K‚K��A�ÑÔÐØ‡L‚L•Ô)¨zÀ
Ø-.¸4Ø9<ð>ñ >ô >ñ ?ô ?ð ?ð €Kr   zfancyarrow_dpi_cor_100dpi.pngTÚx86_64g{®Gáz”?rW   )rT   )Úremove_textÚtolÚsavefig_kwargc                  ó"   — t          ¦   «          dS )a   
    Check the export of a FancyArrowPatch @ 100 DPI. FancyArrowPatch is
    instantiated through a dedicated function because another similar test
    checks a similar export but with a different DPI value.

    Remark: test only a rasterized format.
    N©rb   © r   r   Útest_fancyarrow_dpi_cor_100dpirj   E   s   € õ &Ñ'Ô'Ð'Ð'Ð'r   zfancyarrow_dpi_cor_200dpi.pngéÈ   c                  ó"   — t          ¦   «          dS )z
    As test_fancyarrow_dpi_cor_100dpi, but exports @ 200 DPI. The relative size
    of the arrow head should be the same.
    Nrh   ri   r   r   Útest_fancyarrow_dpi_cor_200dpirm   T   s   € õ &Ñ'Ô'Ð'Ð'Ð'r   zfancyarrow_dash.pngÚdefault)rd   Ústylec            
      óö   — t          j        ¦   «         \  } }t          j        dddddddd¬	¦  «        }t          j        dddd
dddd¬	¦  «        }|                     |¦  «         |                     |¦  «         d S )N)r   r   r   z-|>zangle3,angleA=0,angleB=90g      $@é   Údashedr
   )r   Úconnectionstyler[   Ú	linewidthÚ	linestyleÚcolorÚangle3Údotted)r-   r.   r*   r`   r_   )r2   r   ÚeÚe2s       r   Útest_fancyarrow_dashr{   `   s–   € åŒl‰nŒn�G€CˆÝÔ  ¨Ø,1Ø1LØ04Ø+,Ø+3Ø'*ð	,ñ 	,ô 	,€Aõ 
Ô	! &¨*Ø-2Ø2:Ø15Ø,-Ø,4Ø(+ð
-ñ 
-ô 
-€Bð ‡L‚L��O„O€OØ‡L‚L�ÑÔÐÐÐr   zarrow_styles.pngÚmpl20g{®Gázt?)ro   rd   re   c                  óH  — t           j                             ¦   «         } t          | ¦  «        }t	          j        d¬¦  «        \  }}|                     dd¦  «         |                     d|¦  «         |                     dddd¬¦  «         t          t          | ¦  «        ¦  «        D ]H\  }}t          j        d|dz  d	z  z   |fd
|dz  d	z  z   |f|d¬¦  «        }|                     |¦  «         ŒIt          g d¢¦  «        D ] \  }}|}|d         dk    r|dz  }|d         dk    r|dz  }t          ddg¦  «        D ]e\  }}	|                     dt          |	¦  «        ¦  «        }
t          j        dd|z  |z   fdd|z  |z   f|
d¬¦  «        }|                     |¦  «         ŒfŒ¡d S )N)r"   r"   r:   r   r#   éÿÿÿÿ)ÚleftÚrightÚbottomÚtopr   rq   gš™™™™™©?gÍÌÌÌÌÌÜ?é   )r   r[   )z]-[z]-z-[z|-|ú-z,angleA=ANGLEz,angleB=ANGLEiâÿÿÿé<   ÚANGLEgš™™™™™á?gÍÌÌÌÌÌì?)r*   r+   rB   r/   r-   r.   r]   r^   Úsubplots_adjustr0   rD   r`   r_   ÚreplaceÚstr)rG   rH   r2   r   rL   rM   Úpatchro   ÚjÚangler   s              r   Útest_arrow_stylesr�   u   sï  € õ Ô ×+Ò+Ñ-Ô-€FåˆF‰Œ€AÝŒl 6Ð*Ñ*Ô*�G€CˆØ‡K‚K��1ÑÔÐØ‡K‚K��AÑÔÐØ×Ò˜Q a°°qÐÑ9Ô9Ð9å!¥&¨¡.¤.Ñ1Ô1ð ð ‰ˆˆ9ÝÔ(¨#°°Q±¸±Ñ*<¸aÐ)@Ø*.°!°a±%¸±Ñ*=¸qÐ)AØ4=Ø8:ð<ñ <ô <ˆð 	�Š�UÑÔÐÐå!Ð"<Ð"<Ð"<Ñ=Ô=ð  ð  ‰ˆˆ9ØˆØ�QŒ<˜3ÒÐØ�_Ñ$ˆEØ�RŒ=˜CÒÐØ�_Ñ$ˆEå! 3¨ )Ñ,Ô,ð 	 ð 	 ‰HˆAˆuØŸš wµ°E±
´
Ñ;Ô;ˆJÝÔ,¨d°A°a±C¸!±G¨_¸sÀAÀaÁCÈ!ÁG¸nØ8BØ<>ð@ñ @ô @ˆEð �LŠL˜ÑÔÐÐð	 ð ð  r   zconnection_styles.png)ro   rd   c                  ó–  — t           j                             ¦   «         } t          | ¦  «        }t	          j        d¬¦  «        \  }}|                     dd¦  «         |                     d|¦  «         t          t          | ¦  «        ¦  «        D ]:\  }}t          j
        d|fd|dz   fd	|d
¬¦  «        }|                     |¦  «         Œ;d S )N)é   é
   r:   r   r#   r~   r   rU   r   rV   rƒ   )r   rs   r[   )r*   ÚConnectionStylerB   r/   r-   r.   r]   r^   r0   rD   r`   r_   )rG   rH   r2   r   rL   rM   rŠ   s          r   Útest_connection_stylesr’   –   sÑ   € åÔ%×0Ò0Ñ2Ô2€FåˆF‰Œ€AÝŒl 7Ð+Ñ+Ô+�G€CˆØ‡K‚K��1ÑÔÐØ‡K‚K��AÑÔÐå!¥&¨¡.¤.Ñ1Ô1ð ð ‰ˆˆ9ÝÔ(¨#¨q¨°C¸¸S¹°>Ø48Ø9BØ8:ð<ñ <ô <ˆð 	�Š�UÑÔÐÐðð r   c                  óà  — t           j                             dd¬¦  «        } t          j        dd| ¬¦  «        }t	          j        t          ¦  «        5  t          j        ¦   «          	                    |¦  «         d d d ¦  «         n# 1 swxY w Y   t           j                             dd¬¦  «        }t          j        dd|¬¦  «        }t          j        ¦   «          	                    |¦  «         d S )Né   rk   )ÚangleAÚangleB)r   r   r   )rs   gÍÌÌÌÌüh@)
r*   r‘   ÚAngle3r`   ÚpytestÚraisesÚ
ValueErrorr-   Úgcar_   )Úconn_style_1Úp1Úconn_style_2Úp2s       r   Útest_invalid_intersectionr    §   s  € ÝÔ+×2Ò2¸"ÀSÐ2ÑIÔI€LÝ	Ô	! (¨HØ2>ð
@ñ 
@ô 
@€Bå	Œ•zÑ	"Ô	"ð  ð  ÝŒ‰	Œ	×Ò˜BÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ Ô+×2Ò2¸"ÀUÐ2ÑKÔK€LÝ	Ô	! (¨HØ2>ð
@ñ 
@ô 
@€Bå„G�I„I×Ò˜ÑÔÐÐÐs   Á'BÂB	ÂB	)r˜   ÚplatformÚmatplotlib.pyplotÚpyplotr-   Úmatplotlib.testing.decoratorsr   Úmatplotlib.patchesÚpatchesr*   r   r8   rN   rb   Úmachiner   rj   rm   r{   r�   r’   r    ri   r   r   ú<module>r¨      s`  ðØ €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ø %Ð %Ð %Ð %Ð %Ð %ð1ð 1ð 1ð ÐÐ*Ð+Ñ,Ô,ð?ð ?ñ -Ô,ð?ð ÐÐ,Ð-Ñ.Ô.ð@ð @ñ /Ô.ð@ð(ð ð ð$ ÐÐ2Ð3ÀØ+˜8Ô+Ñ-Ô-°Ò9Ð9�a�a¸tØ $ ¨ ¡¤ð/ñ /ô /ð	(ð 	(ñ/ô /ð	(ð ÐÐ2Ð3ÀØ+˜8Ô+Ñ-Ô-°Ò9Ð9�a�a¸tØ $ ¨ ¡¤ð/ñ /ô /ð(ð (ñ/ô /ð(ð ÐÐ(Ð)°tÀ9ÐMÑMÔMðð ñ NÔMðð( ÐÐ%Ð&¨gÀ4Ø+˜8Ô+Ñ-Ô-°Ò9Ð9�a�a¸uðFñ Fô Fð ð  ñFô Fð ð> ÐÐ*Ð+°7ÈÐMÑMÔMðð ñ NÔMðð 
ð 
ð 
ð 
ð 
r   