
    g                     b   d Z ddlZddlZddlmZmZ ddlZddlZ	ddl
mZmZmZmZmZmZmZmZmZ ddlmZmZ ddlmZ ddlmZ ddlmZmZm Z!m"Z#m$Z%m&Z& d Z'd	 Z(d
 Z)d Z* edg      d        Z+ edg      d        Z,d Z- edg      d        Z. edgd      d        Z/ edgd      d        Z0e	jb                  je                  d      d        Z3 edgd      d        Z4d Z5 edg      d        Z6d Z7 ed gd ejp                         d!k(  rd"nd#      d$        Z9d% Z: ed&gdd'      d(        Z; ed)g      d*        Z< ed+gd,d ejp                         d!k(  rd-nd.      d/        Z= edg      d0        Z> edg      d1        Z?d2 Z@d3 ZAd4 ZBd5 ZC edg      d6        ZDd7 ZEd8 ZF ed9gd,:      d;        ZG ed<gd,:      d=        ZHd> ZIej                  j                  d?d@      dA        ZL edBgdgC      dD        ZM edBgdgC      dE        ZN edBgdgC      dF        ZOdG ZPej                  j                  dHdI      dJ        ZQdK ZRdL ZSdM ZTdN ZUdO ZV edPgddQgd,dR      dS        ZW eg dT      dU        ZX eg dT      dV        ZYdW ZZ eg dX      dY        Z[y)Zz'
Tests specific to the patches module.
    N)assert_almost_equalassert_array_equal)	AnnulusEllipsePatchPolygon	RectangleFancyArrowPatch
FancyArrowBoxStyleArc)image_comparisoncheck_figures_equal)Bbox)collectionscolorspatchespath
transformsrcParamsc                     ddgddgddgg} | ddggz   }t        | d      }|j                         sJ t        |j                         |       |j	                  |        t        |j                         |       t        |d      }t        |j                         |        |j	                  |       t        |j                         |        t        | d      }|j                         rJ t        |j                         |        |j	                  |        t        |j                         |        t        |d      }t        |j                         |       |j	                  |       t        |j                         |       y )Nr      TclosedF)r   
get_closedr   get_xyset_xy)xyxyclosedps      Z/var/www/dash_apps/app1/venv/lib/python3.12/site-packages/matplotlib/tests/test_patches.pytest_Polygon_closer"      s.    a&1a&1a&	!BaVH}H 	4 A<<>>qxxz8,HHRLqxxz8, 	'Aqxxz2&HHXqxxz2& 	5!A||~qxxz2&HHRLqxxz2& 	&Aqxxz8,HHXqxxz8,    c                     ddg} d}d}d}t        | ||      }t        |j                         |       t        |j                         d       d}|j	                  d       t        |j                         |       t        |j                         d	       d
} t        j                         j                  g | t        j                  |       }|j                  |      }|j	                  |       t        |j                         |       | d   |dz  z   | d   |dz  z   g} t        | ||      }t        |j                         |       d}|j	                  d       t        |j                         |       t        |j                         |        d
} t        j                         j                  g | t        j                  |       }|j                  |      }|j	                  |       t        |j                         |       y )N
      r      )r%   r&   )   r&   )r)      )r%   r*   )g      %@   )r(   )r%   r+   )   r+   )r,   r&   Z   )	        4@!   r   ))      '@r/   )r1        5@)      #@r2   )r3   r/   )r	   r   get_corners
get_center	set_anglemtransformsAffine2Drotate_aroundnpdeg2rad	transformr   r   )	locwidthheightcornersrectcorners_rotthetatellipses	            r!   test_corner_centerrF   :   s   r(CEF 7GS%(Dt'')73t(*5 9KNN2t'');7t()4 E,,,EcE2::e3DEA++g&KNN5((*K8 q6EAIq6FQJ Cc5&)G w**,g6 IKbw**,k:w))+S1 E,,,EcE2::e3DEA++g&Ke++-{;r#   c            
      ~   t        dddd      } t        | j                         ddg       t        | j                         ddg       t        dddd      } t        | j                         | j                  d   | j
                  dz  t        j                  d	      z  z   | j                  d   | j
                  dz  z   f| j                  d   | j
                  dz  t        j                  d	      z  z
  | j                  d   | j
                  dz  z
  fg       t        | j                         | j                  d   | j                  dz  z
  | j                  d   | j                  dz  t        j                  d	      z  z   f| j                  d   | j                  dz  z   | j                  d   | j                  dz  t        j                  d	      z  z
  fg       t        j                  | j                               \  }}t        j                  j                  ||z   dz  | j                         t        j                  | j                               \  }}t        j                  j                  ||z   dz  | j                         t        d
ddd      } t        j                  | j                               \  }}t        j                  j                  ||z   dz  | j                         t        j                  | j                               \  }}t        j                  j                  ||z   dz  | j                         y )Nr   r   r   r   r>   r?   angle        rL   r'   r            )gjt@g+η%gQ@gGz?gR1Q@)r   r   get_verticesget_co_verticescenterr>   r:   sqrtr?   arraytesting)rE   v1v2s      r!   test_ellipse_verticesrX   j   s   q!<G	Z  !	Z 
 q"=G q!GMMA$5
$BBq!GMMA$55
 q!GMMA$5
$BBq!GMMA$55		
 ! q!GNNQ$66q!GNNQ$6$CC
 q!GNNQ$66q!GNNQ$6$CC		
 XXg**,-FBJJ""BGq='..AXXg--/0FBJJ""BGq='..A)t5QGXXg**,-FBJJ""BGq='..AXXg--/0FBJJ""BGq='..Ar#   c                     t        j                  ddg      } d}d}d}t        | |||      }t        | ||      }t         j                  |z  dz  }t        j                  t        j
                  |      t        j                  |       gt        j                  |      t        j
                  |      gg      }t        j                  ||j                         | z
        j                  | z   }t        |j                         |       y )N      ?       @r'   rO   g      >@rJ        f@)r:   asarrayr	   pirT   cossininner	get_vertsTr   )	r=   r>   r?   rJ   rect1rect2	angle_radrotation_matrix	new_vertss	            r!   test_rotate_rectrj      s    
**c3Z
 CEFE c5&6E c5&)E %Ihh	!2RVVI5F4F G!#	!2RVVI5F G I JO %//*;c*ABDDsJI )95r#   png)
extensionsc                 r   | j                         }|j                         }d}d\  }}d}t        ||||      }|j                  |       |j                         |k(  sJ t        |||      }	|	j                         dk(  sJ |j                  |	       |	j	                  |       |	j                         |k(  sJ y )NrH   r   r   rM   r\   r   )add_subplotr	   	add_patch	get_angler6   )
fig_testfig_refax_testax_refr=   r>   r?   rJ   rect_ref	rect_tests
             r!   test_rotate_rect_drawrx      s    ""$G  "F
CME6EeV59H
X5((( #uf-I A%%%i  E)))r#   c           
      J   | j                         }|j                         }d}d\  }}t        |||dddddgf      }t        |||dddg d	f      }|j                         dddgfk(  sJ |j                         dg d	fk(  sJ |j                  |       |j                  |       t        |||dddddgf      }	t        |||dddddgf      }
|	j                         dddgfk(  sJ |
j                         dddgfk(  sJ |j                  |	       |j                  |
       y )
N皙?r{   )皙?r|   rO   br      )	linewidth	edgecolor	linestyler)r   r~   r~   r   )ro   r	   get_linestylerp   )rr   rs   rt   ru   r=   r>   r?   rv   	rect_ref2rw   
rect_test2s              r!   test_dash_offset_patch_drawr      s^   ""$G  "F
CME6eVqC;<q!f+GH #ufS78,6GII!!#Aq6{222""$L(9999
X
Y #ufS?@1a&kKI3vc?@1a&kKJ""$QF333##%!aV444i j!r#   c                      t        ddd      j                         d d } t        ddd      j                         d d }t        t        j                  |dd      |        y )	N)rO   r'   rH   r   r   r   )r	   rc   r   r:   roll)pos_verticesneg_verticess     r!   test_negative_rectr      sW     Xq!,668"=LVR,668"=Lrww|Q2LAr#   clip_to_bboxc                  *   t        j                         \  } }|j                  ddg       |j                  ddg       t        j
                  j                  d      j                         }|xj                  ddgz  c_        |xj                  ddgz  c_        t        j
                  j                         j                         }|xj                  ddgz  c_        |xj                  dd	gz  c_        t        j
                  j                  ||      }t        j                  |d
dd      }|j                  |       t        j                  ddgddgg      }|j!                  |      }t        j                  |d
ddd      }|j                  |       y )Nir&   ijd   r,   r%         i      ?coralnone)alpha	facecolorr   ig     `S2   igreenrN   black)r   r   lwr   )pltsubplotsset_xlimset_ylimmpathPathunit_regular_stardeepcopyverticesunit_circlemake_compound_pathmpatches	PathPatchrp   r7   r   r   )	figaxr   path2combinedpatchbboxresult_pathresult_patchs	            r!   test_clip_to_bboxr      sD   llnGCKKb	KKs::''*335DMMb#YMMMaWMJJ""$--/E	NNr3iN	NNr3iNzz,,T59Hw&BELLc5\B:67D''-K%%3'a7LL LLr#   patch_alpha_coloringT)remove_textc                     t         j                  j                  d      } t         j                  j                         }t	        j
                  |j                  | j                  ddd   g      }t	        j
                  |j                  | j                  g      }t        j                  ||      }t        j                  |dz   |      }t        j                         }t        j                  |gdddd	      }|j                  |       t        j                  |dddd
      }|j                  |       |j!                  dd       |j#                  dd       y)z
    Test checks that the patch and collection are rendered with the specified
    alpha values in their facecolor and edgecolor.
    r~   Nr   r   r   dashdotr   r   r   r   r   r   r   g      ?r   
linestylesr   r   r   r   r   r   r'   r   r   r   r   r:   concatenater   codesr   axesmcollectionsPathCollectionadd_collectionr   r   rp   r   r   	starcirclevertsr   	cut_star1	cut_star2r   colr   s	            r!   test_patch_alpha_coloringr     s    ::''*DZZ##%FNNFOOT]]4R4-@ABENNFLL$**56E

5%(I

519e,I	B

%
%yk01i0>0?AC cy)*i)7)8:E LLKKAKKAr#   patch_alpha_overridec                     t         j                  j                  d      } t         j                  j                         }t	        j
                  |j                  | j                  d d d   g      }t	        j
                  |j                  | j                  g      }t        j                  ||      }t        j                  |dz   |      }t        j                         }t        j                  |gddddd	      }|j                  |       t        j                  |ddddd
      }|j                  |       |j!                  dd       |j#                  dd       y )Nr~   r   r   r   r         ?r   r   )r   r   r   r   r   )r   r   r   r   r   r'   r   r   s	            r!   test_patch_alpha_overrider   /  s   
 ::''*DZZ##%FNNFOOT]]4R4-@ABENNFLL$**56E

5%(I

519e,I	B

%
%yk01i,00>0?	AC
 cy)*i%))7)8	:E
 LLKKAKKAr#   defaultc                  f    t        j                  dddd      } | j                         d   dk(  sJ y )NrH   r   r   )r   r   r   )r   Circleget_facecolor)cs    r!   test_patch_color_noner   O  s2     	

61a8A??Q1$$$r#   patch_custom_linestylec                     t         j                  j                  d      } t         j                  j                         }t	        j
                  |j                  | j                  d d d   g      }t	        j
                  |j                  | j                  g      }t        j                  ||      }t        j                  |dz   |      }t        j                         }t        j                  |gddgdd      }|j                  |       t        j                  |dddd	      }|j                  |       |j!                  dd
       |j#                  dd
       y )Nr~   r   r   r   )r   )r      r%   r   r   r   r   r   r   r   r   r   r'   r   r   s	            r!   test_patch_custom_linestyler   W  s    ::''*DZZ##%FNNFOOT]]4R4-@ABENNFLL$**56E

5%(I

519e,I	B

%
%	!3 4y2C c1y2E LLKKAKKAr#   c                     t         j                  j                  d      } t         j                  j                         }t	        j
                  |j                  | j                  d d d   g      }t	        j
                  |j                  | j                  g      }g d}t        j                         \  }}t        |      D ]I  \  }}t        j                  ||z   |      } t        j                  | d|dd      }	|j                  |	       K |j                  ddz   g       |j                  d|dz   g       |j                   j#                          y )	Nr~   r   )---z-.:soliddashedr   dottedrO   r   r   r   r   )r   r   r   r   r:   r   r   r   r   r   	enumerater   r   rp   r   r   canvasdraw)
r   r   r   r   r   r   r   ilsr   s
             r!   test_patch_linestyle_accentsr   t  s    ::''*DZZ##%FNNFOOT]]4R4-@ABENNFLL$**56E:J llnGC:& 2zz%!)U+""4-."-6-68 	U KKQUKKQUJJOOr#   c                 `   t         j                  j                         }| j                         }|j                         }t	        g d      D ]  \  }}t        j                  |j
                  |z   |j                        }t        j                  |d|dd      }|j                  |       t        j                  |dddd      }|j                  |        |j                  dd	z   g       |j                  d|d	z   g       |j                  d|d	z   g       |j                  d|d	z   g       y )
N)r   None  rO   r   r   r   r   r   r   r   )r   r   r   ro   r   r   r   r   r   rp   r   r   )	rr   rs   r   rt   ru   r   r   r   r   s	            r!   test_patch_linestyle_noner     s   ZZ##%F""$G  "F45  2zz&//A-v||<""4-."-6-68 	% ""4-.#-6-35 	  b!a%[!b!a%[!
OORQK 
OORQK r#   c                  6   dddddd} | j                         D ci c]  \  }}||d    }}}t        j                  di |}| j                         D ]=  \  }\  }}}t        ||      |k(  sJ  t        ||      |       t        ||      |k(  r=J  y c c}}w )	N)rH   rn   
set_center)r   r,   
set_radius)r'   rO   	set_width)r   rM   
set_theta1)-   r   
set_theta2)rR   r   r>   theta1theta2r    )itemsr   Wedgegetattr)	
param_dictkv	init_argswattrold_vnew_vfuncs	            r!   test_wedge_movementr    s    :+.12	4J &0%5%5%78TQAaD8I8##A&0&6&6&8 )""ueTq$5(((4q$5((() 9s   Bwedge_rangearm64g;On?)r   tolc            
      b   t        j                         } d}ddgddg||dz   gddgd	d
gddgddgddgddgg	}t        |      D ]G  \  }\  }}|dz  }|dz  }t        j                  |dz  |dz  fd||ddd      }| j                  |       I | j                  dd       | j                  dd       y )Ngo͂@g,(J@g 7
m@g,(J@gm7
m@r]   r   h  r-   i  iL   i|  r   .   rO   r   r   r   )r   r   r   r   r,   r.   )r   r   r   r   r   
add_artistr   r   )	r   t1argsr   r   r   xywedges	            r!   test_wedge_ranger    s     
B	B,'!34eHN3KHHHD  ) FFEFAq1u~q&&)/31F 	e KKAKKAr#   c                  p   t        j                  dd      } t        |       dk(  sJ t        j                  dddd      } t        |       dk(  sJ t        j                  dddd      } t        |       d	k(  sJ t        j
                  ddddd
      } t        |       dk(  sJ t        j                  ddddd
d      } d}t        |       |k(  sJ t        j                  dddd      } d}t        |       |k(  sJ t        j                  ddd      } t        |       dk(  sJ t        j                  ddd      } t        |       dk(  sJ t        j                  ddd      } t        |       dk(  sJ t        j                  g dd      }t        j                  |      } t        |       dk(  sJ t        j                  t        j                   d             } t        |       d!k(  sJ ddgddgddgg}t        j                  |      } t        |       d"k(  sJ t        j"                  |#      } t        |       d$d% d&k(  sJ t        j"                  dd      } t        |       d'k(  sJ t        j$                  ddd(      } t        |       d)k(  sJ t        j&                  | dd      }t        |      d*k(  sJ y$)+z
    Check that patches have nice and working `str` representation.

    Note that the logic is that `__str__` is defined such that:
    str(eval(str(p))) == str(p)
    r   r'   rO   )r   radiuszCircle(xy=(1, 2), radius=3)rN   r   rI   z.Ellipse(xy=(1, 2), width=3, height=4, angle=5)z0Rectangle(xy=(1, 2), width=3, height=4, angle=5)r~   )rR   r   r   r   r>   z6Wedge(center=(1, 2), r=3, theta1=4, theta2=5, width=6)r   )r   r>   r?   rJ   r   r   z>Arc(xy=(1, 2), width=3, height=4, angle=5, theta1=6, theta2=7))rO   rN   r   r'   )r   r   r>   rJ   z.Annulus(xy=(1, 2), r=(3, 4), width=1, angle=2)r&   )r  z3RegularPolygon((1, 2), 20, radius=5, orientation=0))r   r  
resolutionz.CirclePolygon((1, 2), radius=5, resolution=20))r>   r?   z)FancyBboxPatch((1, 2), width=3, height=4))r  r'   r'   r  Tr   zPathPatch3((1, 2) ...)r   r'   z
Polygon0()zPolygon3((1, 2) ...))r   N   zFancyArrowPatch(Path(array(zFancyArrowPatch((1, 2)->(3, 4))datazConnectionPatch((1, 2), (3, 4))z'Shadow(ConnectionPatch((1, 2), (3, 4))))r   r   strr   r	   r   r   r   RegularPolygonCirclePolygonFancyBboxPatchr   r   r   r   r:   emptyr
   ConnectionPatchShadow)r    expectedr   r  ss        r!   test_patch_strr#    s    	6!,Aq62222F!AQ?Aq6EEEEfAaqAAq6GGGGf!AQGAq6MMMMa1QOAOHq6XFfAQ?A?Hq6X15Aq6JJJJ&rBAq6EEEEa:Aq6@@@@ ::.t<D4 Aq6----&)*Aq6\!!!FQFQF#DAq6++++  d+Aq6#2;7777  0Aq66666  8Aq666661a Aq6>>>>r#   multi_color_hatch)r   stylec            	      .   t        j                         \  } }|j                  t        d      t        dd            }t	        |      D ];  \  }}|j                  d       |j                  d|        |j                  d       = |j                          |j                  d       t        d      D ]U  }t        j                  j                  dd| i      5  t        |d	z
  dfd
ddd      }d d d        |j                         W y # 1 sw Y   xY w)Nr   r   r~   r   C/Fzhatch.colorg?r|   z//)hatchfc)r   r   barranger   set_facecolorset_edgecolor	set_hatchautoscale_view	autoscalemplr%  contextr	   rp   )r   r   rectsr   rA   r   s         r!   test_multi_color_hatchr5    s    llnGCFF58U1a[)EU# 46"Qqc7#s
 LL1X YY1#w78 	I1v:q/2qHA	I
Q	I 	Is   DD	zunits_rectangle.pngc                     dd l mc m}  | j                          t	        j
                  d| j                  z  d| j                  z  fd| j                  z  d| j                  z        }t        j                         \  }}|j                  |       |j                  d| j                  z  d| j                  z  g       |j                  d| j                  z  d| j                  z  g       y )	Nr   r   r~   r   r'   rN   r   r.   )matplotlib.testing.jpl_unitsrU   	jpl_unitsregisterr   r	   kmr   r   rp   r   r   )Ur    r   r   s       r!   test_units_rectangler<  )  s    ,,JJLAaddFAaddF+QqttVQqttV<AllnGCLLOKK144144 !KK144144 !r#   zconnection_patch.pngmpl20g~jt?)r%  r   r  c            	         t        j                  dd      \  } \  }}t        j                  dddd||d      }|j	                  |       d}d	}d
}|j                         }t        j                  ||||d      }|j	                  |       y )Nr   r'   rz   )?r?  r  ->)xyAxyBcoordsAcoordsBaxesAaxesB
arrowstyle)g333333?rZ   )rL   皙?zaxes fractionr   )rA  rB  rC  rD  rG  )r   r   r   r  r  get_yaxis_transform)r   ax1ax2conrA  rB  rC  rD  s           r!   test_connection_patchrM  6  s     ll1a(OC#s

"
"zz+16),C.24C NN3
C
CG%%'G

"
"sW+2sDCNN3r#   c           	         | j                  dd      \  }}t        j                  dd|dddd	      }| j                  |       |j                  dd      \  }}|j                  }t
        j                  d
   t
        j                  d<   t        j                  dd||j                  dz
  |j                  dz
  fddd	      }|j                  |       y )Nr   r'   333333?rH  r  iifigure pixelsr@  r   rA  rC  rE  rB  rD  rG  shrinkB
figure.dpisavefig.dpirM   r&   )	r   r   r  r  r   r   r   r>   r?   )rr   rs   rJ  rK  rL  bbs         r!   test_connection_patch_figrX  J  s    
   A&HC

"
"fC$C 1%HC	B"%,,|"<CLL

"
"fCXX]BIIN+_$C sr#   c           	         d}d}| j                  dd      \  }}t        j                  |d||ddd	      }| j                  |       t        j
                  d
   t        j
                  d<   |j                  dd      \  }}|d   |j                  dz  z  |d   |j                  dz  z  f}|d   |j                  dz  z  |d   |j                  dz  z  f}t        j                  |d||ddd	      }|j                  |       y )NrO  rQ  r   r'   zaxes pointszfigure pointsr@  r   rS  rU  rV  r   H   zaxes pixelsrR  )r   r   r  r  r   r   dpi)	rr   rs   xyA_ptsxyB_ptsrJ  rK  rL  xyA_pixxyB_pixs	            r!   "test_connection_patch_pixel_pointsr`  a  s   GG  A&HC

"
"wS'..2A?C "%,,|"<CLL1%HCqz7;;r>*GAJB,GHGqz7;;r>*GAJB,GHG

"
"wS'..2A?C sr#   c                      ddl m } m}  | dddddd      } |d      }t        j                  |df|d      }t	        j
                         \  }}|j                  |       y )Nr   )datetime	timedelta  r      )seconds)rb  rc  r   r	   r   r   rp   )rb  rc  startdeltar   r   r   s          r!   test_datetime_rectangleri  w  sV    ,T1aAq)Eb!Eqz5!4EllnGCLLr#   c                  Z   ddl m }   | dddddd      } | ddd      }t        j                  t              5  t	        j
                  |df|d       d d d        t        j                  t              5  t	        j
                  d|fd|       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)Nr   rb  rd  r   i  r   )rb  pytestraises	TypeErrorr   r	   )rb  rg  dt_deltas      r!   test_datetime_datetime_failsrp    s    !T1aAq)Ea#H	y	! 4E1:x34 
y	! 4Au:q(34 44 44 4s   B2B!B!B*c            
         t        j                  ddd      } g d}| j                         }| j                         }| j	                  d       }t        j                  |D cg c]  }|j                  |||       c}      }t        j                  |D cg c]  }| j                  |       c}      }t        j                  ||k(        sJ y c c}w c c}w Nr   r   r   rZ   ))rL   r   )rH  r   )r   r   rs  )	r   r   get_pathget_transform_process_radiusr:   rT   contains_pointall)ellpointsr   r<   r  pointr!  results           r!   test_contains_pointr}    s    


:sC
0C>F<<>D!!#I  &FxxBHJ9> ,,U-6-35 J KH XXfEUs))%0EFF66&H$%%%	J Fs    CCc                     t        j                  ddd      } g d}| j                         }| j                         }| j	                  d       }|j                  |||      }| j                  |      }t        j                  ||k(        sJ y rr  )r   r   rt  ru  rv  contains_pointsr:   rx  )ry  rz  r   r<   r  r!  r|  s          r!   test_contains_pointsr    s    


:sC
0C>F<<>D!!#I  &F##FIv>H  (F66&H$%%%r#   c                 "   t        j                  ddg      }t        j                  ddg      }dt        j                  d<   | j	                         }t        j                  |dd      }t        j                  ||d   |d	   
      }|j                  |       |j                  |       |j	                         }t        j                  |dd      }t        j                  ||j                  dz  |z  z   ddt        j                  t        j                  |j                                     dz  t        j                  t        j                  |j                                     dz  d      }|j                  |       |j                  |       y )NrH  rP  r{   figurerV  r   )r   r>   r?   r   r   )oxoyrZ  )r   r>   r?   r*  ecr   )r:   rT   r   r   r   r   r	   r   rp   r[  r^   mcolorsto_rgbr   )rr   rs   r   dxya1rA   shadowa2s           r!   test_shadowr    s9   	2r(	B
((B8
C #+CLL				B2b9D__Tc!fQ8FLLLL				B2b9Db 3&&b::gnnT%7%7%9:;b@::gnnT%7%7%9:;b@	F
 LLLLr#   c                  r    ddl m }   | ddd      }t        j                         \  }}t        d|fd|f      }y )Nr   rk  i  r   {Gz?)rb  r   r   r
   )rb  dtimer   r   arrows        r!   test_fancyarrow_unitsr    s6    !T1a EllnGCQJu6Er#   c                     t        j                         \  } }|j                  ddddddd      }t        j                  ddgdd	gd
dgddgddgdd
gd	dgddgg      }t        j
                  |t        j                  |j                  d            sJ t        j                  ddgddgddgddgddgddgddgddgg      }|j                  ddddddd       t        j
                  |t        j                  |j                  d            sJ y )Nr   r%   r   r   r   )head_length
head_widthr>   gGz+@g33333$@gL#@g\(\$@gp=
ף#@g
ףp=
?g
ףp=
ǿr'   g(\µ0@gGz.@g\(\?g(\?   )r  r  dxdyr>   r  r  )	r   r   r  r:   rT   allcloseroundr   set_datar   r   r  	expected1	expected2s        r!   test_fancyarrow_setdatar    s/   llnGCHHQ2rqQbHIEu~~~e}~e}e}u~	I ;;y"((5;;":;;;u~u~u~t}t}u~u~u~	I 
NN
qRBaA1   ;;y"((5;;":;;;r#   zlarge_arc.svg)r%  c                  r   t        j                  dd      \  } \  }}d}d}d}||fD ]F  }t        ||f||dd      }|j                  |       |j	                          |j                  d       H |j                  d	d
       |j                  dd       |j                  dd       |j                  dd       y )Nr   r'      ii  r   )r   colorequalr   r,   r   r~   iXiPF  ii  )r   r   r   rp   set_axis_off
set_aspectr   r   )r   rJ  rK  r  r  diameterr   as           r!   test_large_arcr    s    ll1a(OC#sAAHCj A(q<
Q

g	 LLALLA LLLLr#   zall_quadrants_arcs.svgc                     t        j                  dddd      \  } }d}d}d}d}t        |j                         |      D ]>  \  }\  }}d	}	t        d
d
t	        j
                  d      z  f||f      D ]  \  }
}t        ||	      D ]w  \  }\  }}t        ||z  |
z  ||z  |
z  f||z  ||z  dd| d|z   t	        j                  t	        j                  ||            dz  d| d| 	      }|j                  |       y dz   }	 |j                  | dz  |dz         |j                  | dz  |dz         |j                  d	d       |j                  d	d       |j                          |j!                  d       A y )Nr'   F)r%   r%   )squeezefigsizei ))r   r   )r   r   rn   )r   r   ))r   r   )r   r   )r   r   )r   r   )r  )r'   r{   )r'   r  )r'   gMbP?r   gH.?)rg  rN   r'  r   r  zbig )r   r  zorderrJ   labelgidi  r   )r  r  )r   r   zipravelr:   rS   r   r   rad2degarctan2rp   r   r   axhlineaxvliner  r  )r   ax_arrscalediag_centerson_axis_centersskewsr   sxsyr   prescalecentersjx_signy_signr  s                   r!   test_rotated_arcsr    s   ,,q!UHEKCE7L8O9EFLLNE2 HR!$i)rwwqz1I%J'6&E"G 	Hg'0'B  ##FFe^h.e^h.0BJBJaS'q5**RZZ%?@3F *qc
 Q  !A#	$ 	UFTM54<0
UFTM54<0


1C
 


1C
 

g3r#   c                      t        j                  t        d      5  t        ddddd       d d d        y # 1 sw Y   y xY w)NzGot unknown shape: 'foo'matchr   rH  foo)shape)rl  rm  
ValueErrorr   r   r#   r!   test_fancyarrow_shape_errorr  "  s6    	z)C	D 01ac/0 0 0s   6?z
fmt, match))r  zUnknown style: 'foo')z	Round,fooz%Incorrect style argument: 'Round,foo'c                 z    t        j                  t        |      5  t        |        d d d        y # 1 sw Y   y xY w)Nr  )rl  rm  r  r   )fmtr  s     r!   test_boxstyle_errorsr  '  s.    
 
z	/   s   1:annulus)baseline_imagesrl   c            
          t        j                         \  } }t        dddd      }t        ddddd	d
dd      }|j                  |       |j                  |       |j	                  d       y )Nrs  rH  皙?gr*  r   rP  r{   r   mr}   r   xxxr*  r  r   r)  r  )r   r   r   rp   r  r   r   cirry  s       r!   test_annulusr  0  sb     llnGC
*c4C
0C
*j#rS5:CLLLLMM'r#   c            
      >   t        j                         \  } }t        dddd      }t        ddddd	d
dd      }|j                  |       |j                  |       |j	                  d       d|_        d|_        d|_        d|_        d|_        d|_        d|_        y )NrK   rH  r  r  r  r  r{   r   r  r}   r   r  r  r  rs  r  r  r   )	r   r   r   rp   r  rR   radiir>   rJ   r  s       r!   test_annulus_settersr  <  s     llnGC
(C#
.C
(FCS5:CLLLLMM'CJCICICJCICICIr#   c            
         t        j                         \  } }t        dddd      }t        ddddd	d
dd      }|j                  |       |j                  |       |j	                  d       d|_        |j                  d       |j                  d       |j                  dk(  sJ d|_	        d|_        |j                  d       |j                  d       |j                  dk(  sJ d|_	        d|_
        y )NrK   rH  r  r  r  r  r{   r   r  r}   r   r  r  r  rs  )rH  rH  r  rP  r  r   )r   r   r   rp   r  rR   set_semimajorset_semiminorr  r>   rJ   r  s       r!   test_annulus_setters2r  Q  s     llnGC
(C#
.C
(FCS5:CLLLLMM'CJcc99
"""CICJcc99
"""CICIr#   c                      ddg} t        | | g      j                  }t        j                  t	        | g      j                         j                  |k(        sJ y )Nr   )r   extentsr:   rx  r   get_extents)r{  correct_extentss     r!   test_degenerate_polygonr  j  sL    FEE5>*22O66'5'"..088OKLLLr#   kwarg)r   r   c                     t        j                  t        d      5  t        dddi| di d d d        y # 1 sw Y   y xY w)NzQSetting the 'color' property will override the edgecolor or facecolor properties.r  r  r   r   )rl  warnsUserWarningr   )r  s    r!   test_color_override_warningr  p  sC    	kE
F 1 	0G0w/01 1 1s   5>c                  j    t        t        j                  d            } | j                         g k(  sJ y )Nr  )r   r:   zerosrc   )polys    r!   test_empty_vertsr  x  s*    288F#$D>>r!!!r#   c                      t               } | j                  t        d           | j                         t        d    k(  sJ | j                  d        | j                         t        d   k(  sJ y )Nzpatch.antialiased)r   set_antialiasedr   get_antialiasedr   s    r!   test_default_antialiasedr  }  sk    GE	h':;;<  "84G+H'HIII	$  "h/B&CCCCr#   c                      t               } | j                  d       | j                  d        | j                         dk(  sJ y )Nr   r   )r   set_linestyler   r  s    r!   test_default_linestyler    s<    GE		 G+++r#   c                  B    t               } | j                         dk(  sJ y )Nbutt)r   get_capstyler  s    r!   test_default_capstyler    s     GE6)))r#   c                  B    t               } | j                         dk(  sJ y )Nmiter)r   get_joinstyler  s    r!   test_default_joinstyler    s     GE G+++r#   autoscale_arcsvg)rl   r%  r   c                  p   t        j                  ddd      \  } }t        ddddd      gt        d	d
ddd      gt        d	d
ddd      t        d	dddd      t        d	dddd      t        d	dddd      gf}t        ||      D ]-  \  }}|D ]  }|j	                  |        |j                          / y )Nr   rO   )rN   r   )r  rH   r   r-   )r   r   rs        ?r   r%   r&   g      @n   x         @r     g      @i6  i@  )r   r   r   r  rp   r1  )r   axs	arc_listsr   arcsarcs         r!   test_autoscale_arcr	    s     ||Aq&1HC	VQ!B	/0	Zc"R	89	Zc"R	8	Zc#c	:	Zc#c	:	Zc#c	:	<=I Y' D 	CLL	
r#   )rk   r  pdfepsc                     t        ddgddddd      }t        ddgddddd      }t        j                  |gdd	      }|j                         j	                  |       | j                         j                  |       y )
Nr   r   r   <   r&   r   r   rJ   r   r   )r   
facecolors
edgecolors)r   r   PatchCollectionr   rp   r   )rr   rs   arc1arc2r   s        r!   test_arc_in_collectionr    sy    BxQq2>DBxQq2>D

&
&v&257C  &&&s+r#   c                    t        ddgddddd      }t        ddgddddd      }|j                         j                  |       | j                         j                  |       |j                  d       |j	                  d       y )	Nr   r   r   r  r&   r  r   r%   )r   r   rp   r   r6   )rr   rs   r  r  s       r!   test_modifying_arcr    sx    BxQq2>DBxa"B?D  &!!$'NN2NN2r#   c                  <   t        j                         \  } }t        j                  j	                  dddd      }t        j                  ddgddgddgd	dgd
dgddgddgddgg      }t        j                  |t        j                  |j                         d            sJ t        j                  ddgddgddgddgddgddgddgddgg      }|j                  dddd       t        j                  |t        j                  |j                         d            sJ y )Nr'   r   r%   gffffff?rL   g @g       g       @gffffff@r[   g      $@g333333?g(\?g{Gz?gQ?g{GzgGz@gq=
ףp@gQ	@gGz@r  g{Gz@gQ@gRQ@g(\@r   rO   r,   g333333?)r  r  r  r>   )r   r   r2  r   Arrowr:   rT   r  r  rc   r  r  s        r!   test_arrow_set_datar    s%   llnGCKKaAr*E	r
	c
	b		b		S		b		b		b		I ;;y"((5??+<a"@AAA




r


		I 
NNRA!3N/;;y"((5??+<a"@AAAr#   )rk   r
  r  r  c           	         | j                         }|j                         }d}t        j                  d|i      5  |j                  t	        j
                  dddd             d d d        |j                  t	        j
                  dddd             |j                  d   j                  |       |j                  d   j                         |k(  sJ |j                  d   j                         |k(  sJ y # 1 sw Y   xY w)Nr[   zhatch.linewidthrH   r   r  )r)  r   )	ro   r   
rc_contextrp   r   r	   r   set_hatch_linewidthget_hatch_linewidth)rr   rs   rt   ru   r   s        r!    test_set_and_get_hatch_linewidthr    s    ""$G  "F	B	*B/	0 F++FAqDEF h((ASABOOA**2.>>!002b888??1113r999F Fs   )C66C?)\__doc__platformnumpyr:   numpy.testingr   r   rl  
matplotlibr2  matplotlib.patchesr   r   r   r   r	   r
   r   r   r   matplotlib.testing.decoratorsr   r   matplotlib.transformsr   matplotlib.pyplotpyplotr   r   r   r   r  r   r   r   r   r   r7   r   r"   rF   rX   rj   rx   r   r   r   r   r   r%  r3  r   r   r   r   r  machiner  r#  r5  r<  rM  rX  r`  ri  rp  r}  r  r  r  r  r  r  r  markparametrizer  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r   r#   r!   <module>r,     s     A  L L L O & 8 8
"-J-<`0Bf60 (* )*( (" )"BB >"# $6 )*= >< )*= >> 9% % +,$? @84 (! )!2)  =/t/x//1W<e!EE8:?@ &'TK L$ ()*	" +	" )*'t/x//1W<e!EE$ ( ), ( )*	
4
&& ( )07<> ?#73 4& +,G<! =!H0
  ( 	
 9+5'B C 9+5'B C( 9+5'B C0M "<=1 >1"
D,*
,
 ?#T33   <=, >,  <= >B:  <=: >:r#   