
    ^j4                     j   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 ej                         dk(  rd nd      d	        Z ed
gd      d        Z edgd      d        Zd Z edgd ed      d ej                         dk(  rd nd      d        Z edgd ed      d ej                         dk(  rd n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 ej                         dk(  rd nd#       d$        Zd% Zy)&    N)image_comparisonc                 R    | j                  ddd|z   fddt        |dd             y )	N       ?r   r      bk)
arrowstylefcec)xyxytextsize
arrowprops)annotatedict)axtrs      n/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_arrow_patches.py
draw_arrowr      s2    KKS1W~jr1#&30  1    zfancyarrow_test_image.png_classic_testx86_64g~jt?)styletolc            	      Z   g d} ddt         j                  j                         g}t        j                  t        |      t        |       ddt        d            \  }}t        |       D ]?  \  }}t        |      D ],  \  }}|||f   }t        |||       |j                  dd	       . A y )
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_fancyarrowr;      s     	 A	(H//5578A||CFCFE$,QIHC Q< ?R | 	?GCS#XBr2r"NNUN>	??r   zboxarrow_test_image.pngmpl20)r   c                  P   t         j                  j                         } t        |       }d}||z  dz   }t	        j
                  d|dz  f      }d}t        t        |             D ]?  \  }}|j                  d||z
  |z  dz
  |z  |d||j                  t        |dd	
             A y )Ng333333?r   gUUUUUU@      ?r)   癙5@centerwr
   boxstyler   r   )har   	transformbbox)r-   BoxStyle
get_stylesr2   r0   figurer3   sortedtexttransFigurer   )stylesnspacing	figheightr5   fontsizei	stylenames           r   test_boxarrowrU      s     ))+FFAGWr!I
**gy37
8CH!&.1 @9A(3.	99??I##>	 	 	@@r   z"boxarrow_adjustment_test_image.pngc                     g d} ddgddgddgddgd	d
gd	dgg}d}d}t        |       }t        |      }||z  }||z  dz   }t        j                  |dz  |dz  f      }d}	t        |       D ]m  \  }
}t        |      D ]Z  \  }}|j	                  ||
z
  |z  dz
  |z  ||z
  |z  dz
  |z  |dd|	|j
                  t        | d|d    d|d    dd             \ o y )N)larrowrarrowdarrowr>   Z      g      ?r   r   i   iig      @g?r?   r@   rA   z, head_width=r   z!,                     head_angle=r&   rB   r
   rC   )rE   var   rF   rG   )r2   r0   rJ   r3   rL   rM   r   )rN   casesspacing_horizontalspacing_verticalmrO   figwidthrQ   r5   rR   rS   rT   jcases                 r   test_boxarrow_adjustmentre   4   sG    ,F 
b		c
	r
	c
	
C	
CE  	FAE
A&&H%%+I
**hni#o>
?CH!&) 	<9 ' 	<GAtHHa%--3x?a%++c1Y>h8i[d1gY G  $Qy$*.1c;  <	<	<r   c            	          t        j                  ddd      } | j                         }|j                  dd       |j	                  dd       |j                  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?ri   ->d   )posAposBlwr   mutation_scale)r0   rJ   add_subplotset_xlimset_ylim	add_patchr-   FancyArrowPatch)fig2r   s     r   !__prepare_fancyarrow_dpi_cor_testry   ^   sm     ::/RHD				BKK1KK1LL))z
-.49<> ? Kr   zfancyarrow_dpi_cor_100dpi.pngTrn   )rk   g{Gz?)remove_textsavefig_kwargr   r   c                      t                y)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ry    r   r   test_fancyarrow_dpi_cor_100dpir   p   s
     &'r   zfancyarrow_dpi_cor_200dpi.png   c                      t                y)z
    As test_fancyarrow_dpi_cor_100dpi, but exports @ 200 DPI. The relative size
    of the arrow head should be the same.
    Nr}   r~   r   r   test_fancyarrow_dpi_cor_200dpir      s
     &'r   zfancyarrow_dash.pngdefault)rz   r   c            
          t        j                         \  } }t        j                  dddddddd	      }t        j                  dddd
dddd	      }|j	                  |       |j	                  |       y )N)r   r   r   z-|>zangle3,angleA=0,angleB=90g      $@r\   dashedr
   )r   connectionstylerr   	linewidth	linestylecolorangle3dotted)r0   r1   r-   rw   rv   )r5   r   ee2s       r   test_fancyarrow_dashr      sx    llnGC  ,11L04+,+3'*	,A 
	!	!&*-22:15,-,4(+
-B LLOLLr   zarrow_styles.png)r   rz   r   c                     t         j                  j                         } t        |       }t	        j
                  d      \  }}|j                  dd       |j                  d|       |j                  dddd       t        t        |             D ]E  \  }}t        j                  d|dz  d	z  z   |fd
|dz  d	z  z   |f|d      }|j                  |       G t        g d      D ]  \  }}|}|d   dk7  r|dz  }|d   dk7  r|dz  }t        ddg      D ]Z  \  }}	|j                  dt        |	            }
t        j                  dd|z  |z   fdd|z  |z   f|
d      }|j                  |       \  y )N)r%   r%   r?   r   r&   )leftrightbottomtopr"   r\   g?g?   )r   rr   )z]-[z]-z-[z|-|-z,angleA=ANGLEz,angleB=ANGLEi<   ANGLEg?g?)r-   r.   rI   r2   r0   r1   rt   ru   subplots_adjustr3   rK   rw   rv   replacestr)rN   rO   r5   r   rS   rT   patchr   rc   angler   s              r   test_arrow_stylesr      s      ++-FFAll6*GCKK1KKAQaq9!&.1 9((#Q*<a)@*.!a%*=q)A4=8:< 	U ""<=  9Q<3_$ER=C_$E!3), 	 HAuwE
;J,,dAaC!G_sAaC!Gn8B<>@E LL	  r   zconnection_styles.pngg9v?c                  l   t         j                  j                         } t        |       }t	        j
                  d      \  }}|j                  dd       |j                  d|       t        t        |             D ]7  \  }}t        j                  d|fd|dz   fd	|d
      }|j                  |       9 y )N)   
   r?   r   r&   r   r"   rl   r   rm   r   )r   r   rr   )r-   ConnectionStylerI   r2   r0   r1   rt   ru   r3   rK   rw   rv   )rN   rO   r5   r   rS   rT   r   s          r   test_connection_stylesr      s     %%002FFAll7+GCKK1KKA!&.1 9((#qCS>489B8:< 	Ur   c                     t         j                  j                  dd      } t        j                  dd|       }t	        j
                  t              5  t        j                         j                  |       d d d        t         j                  j                  dd      }t        j                  dd|      }t        j                         j                  |       y # 1 sw Y   fxY w)N   r   )angleAangleB)r!   r!   r   )r   gh@)
r-   r   Angle3rw   pytestraises
ValueErrorr0   gcarv   )conn_style_1p1conn_style_2p2s       r   test_invalid_intersectionr      s    ++22"S2IL		!	!(H2>
@B	z	"  	B  ++22"U2KL		!	!(H2>
@BGGI   s   $CC%)r   platformmatplotlib.pyplotpyplotr0   matplotlib.testing.decoratorsr   matplotlib.patchespatchesr-   r   machiner;   rU   re   ry   r   r   r   r   r   r   r   r~   r   r   <module>r      s      : %1 ./+8++-9auF?F? ,-W=@ >@( 78H&< I&<R$ 23 $_+8++-9atE	(E	( 23 $_+8++-9atE(E( ()t9M N( %&g4+8++-9atE E > *+7+8++-9auFF 
r   