
    (?ez                        d 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dl&Z&e&j'        dk    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             Z0 edgd          d             Z1 edgd          d             Z2ej3        4                    d          d             Z5 edgd          d             Z6d Z7 edg          d             Z8d  Z9 ed!gde(rd"nd#          d$             Z:d% Z; ed&gdd'          d(             Z< ed)g          d*             Z= ed+gd,d-          d.             Z> edg          d/             Z?d0 Z@d1 ZAd2 ZBd3 ZC edg          d4             ZDd5 ZEd6 ZF ed7gd,8          d9             ZG ed:gd,8          d;             ZHd< ZIejJ        K                    d=d>          d?             ZL ed@gdgA          dB             ZM ed@gdgA          dC             ZN ed@gdgA          dD             ZOdE ZPejJ        K                    dFdG          dH             ZQdI ZRdJ ZSdK ZTdL ZUdM ZV edNgddOgd,dP          dQ             ZW eg dR          dS             ZX eg dR          dT             ZYdS )Uz'
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rcParamswin32c                     ddgddgddgg} | ddggz   }t          | d          }|                                sJ t          |                                |           |                    |            t          |                                |           t          |d          }t          |                                |            |                    |           t          |                                |            t          | d          }|                                rJ t          |                                |            |                    |            t          |                                |            t          |d          }t          |                                |           |                    |           t          |                                |           d S )Nr      TclosedF)r   
get_closedr   get_xyset_xy)xyxyclosedps      =lib/python3.11/site-packages/matplotlib/tests/test_patches.pytest_Polygon_closer#      s    a&1a&1a&	!BaVH}H 	4   A<<>>qxxzz8,,,HHRLLLqxxzz8,,, 	'''Aqxxzz2&&&HHXqxxzz2&&& 	5!!!A||~~qxxzz2&&&HHRLLLqxxzz2&&& 	&&&Aqxxzz8,,,HHXqxxzz8,,,,,    c                     ddg} d}d}d}t          | ||          }t          |                                |           t          |                                d           d}|                    d           t          |                                |           t          |                                d	           d
} t          j                    j        g | t          j	        |          R  }|
                    |          }|                    |           t          |                                |           | d         |dz  z   | d         |dz  z   g} t          | ||          }t          |                                |           d}|                    d           t          |                                |           t          |                                |            d
} t          j                    j        g | t          j	        |          R  }|
                    |          }|                    |           t          |                                |           d S )N
      r      )r&   r'   )   r'   )r*      )r&   r+   )g      %@   )r)   )r&   r,   )   r,   )r-   r'   Z   )	        4@!   r   ))      '@r0   )r2        5@)      #@r3   )r4   r0   )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_centerrG   ;   sR   r(CEF 7GS%((Dt''))7333t((*555 9KNN2t''));777t(()444 E,,EcE2:e3D3DEEEA++g&&KNN5((**K888 q6EAIq6FQJ Cc5&))G w**,,g666 IKbw**,,k:::w))++S111 E,,EcE2:e3D3DEEEA++g&&Ke++--{;;;;;r$   c            
      P   t          dddd          } t          |                                 ddg           t          |                                 ddg           t          dddd          } t          |                                 | 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        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	        |                                           \  }}t          j
                            ||z   dz  | j                   t          j	        |                                           \  }}t          j
                            ||z   dz  | j                   t          d
ddd          } t          j	        |                                           \  }}t          j
                            ||z   dz  | j                   t          j	        |                                           \  }}t          j
                            ||z   dz  | j                   d S )Nr   r   r   r   r?   r@   angle        rM   r(   r            )gjt@g+η%gQ@gGz?gR1Q@)r   r   get_verticesget_co_verticescenterr?   r;   sqrtr@   arraytesting)rF   v1v2s      r"   test_ellipse_verticesrY   k   s   q!<<<G	Z    !!	Z   
 q"===G q!GMA$5

$BBq!GMA$55
 q!GMA$5

$BBq!GMA$55		
   !! q!GNQ$66q!GNQ$6$CC
 q!GNQ$66q!GNQ$6$CC		
   Xg**,,--FBJ""BGq='.AAAXg--//00FBJ""BGq='.AAA)t5QQQGXg**,,--FBJ""BGq='.AAAXg--//00FBJ""BGq='.AAAA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        ||                                | z
            j	        | z   }t          |                                |           d S )N      ?g       @r(   rP   g      >@rK        f@)r;   asarrayr	   pirU   cossininner	get_vertsTr   )	r>   r?   r@   rK   rect1rect2	angle_radrotation_matrix	new_vertss	            r"   test_rotate_rectrj      s    
*c3Z
 
 CEFE c5&666E c5&))E %Ih	!2!2RVI5F5F4F G!#	!2!2RVI5F5F G I J JO %//*;*;c*ABBDsJI ))955555r$   png)
extensionsc                    |                                  }|                                 }d}d\  }}d}t          ||||          }|                    |           |                                |k    sJ t          |||          }	|	                                dk    sJ |                    |	           |	                    |           |	                                |k    sJ d S )NrI   r   r   rN   r\   r   )add_subplotr	   	add_patch	get_angler7   )
fig_testfig_refax_testax_refr>   r?   r@   rK   rect_ref	rect_tests
             r"   test_rotate_rect_drawrx      s    ""$$G  ""F
CME6EeV5999H
X5(((( #uf--I  A%%%%i     E))))))r$   c           
         |                                  }|                                 }d}d\  }}t          |||dddddgf          }t          |||dddg d	f          }|                                dddgfk    sJ |                                dg d	fk    sJ |                    |           |                    |           t          |||dddddgf          }	t          |||dddddgf          }
|	                                dddgfk    sJ |
                                dddgfk    sJ |                    |	           |                    |
           d S )
N皙?r{   )皙?r|   rP   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 G GH #ufS78,,,6GI I II!!##Aq6{2222""$$LLL(99999
X
Y #ufS?@1a&kK K KI3vc?@1a&kK K KJ""$$QF3333##%%!aV4444i   j!!!!!r$   c                      t          ddd                                          d d         } t          ddd                                          d d         }t          t          j        |dd          |            d S )	N)rP   r(   rI   r   r   r   )r	   rc   r   r;   roll)pos_verticesneg_verticess     r"   test_negative_rectr      st     Xq!,,6688"=LVR,,6688"=Lrw|Q22LAAAAAr$   clip_to_bboxc                  4   t          j                    \  } }|                    ddg           |                    ddg           t          j                            d                                          }|xj        ddgz  c_        |xj        ddgz  c_        t          j        	                                                                }|xj        ddgz  c_        |xj        dd	gz  c_        t          j        
                    ||          }t          j        |d
dd          }|                    |           t          j        ddgddgg          }|                    |          }t          j        |d
ddd          }|                    |           d S )Nir'   ijd   r-   r&         i      ?coralnone)alpha	facecolorr   ig     `S2   igreenrO   black)r   r   lwr   )pltsubplotsset_xlimset_ylimmpathPathunit_regular_stardeepcopyverticesunit_circlemake_compound_pathmpatches	PathPatchrp   r8   r   r   )	figaxr   path2combinedpatchbboxresult_pathresult_patchs	            r"   test_clip_to_bboxr      s   lnnGCKKb	KKs:''**3355DMMb#YMMMMaWMMJ""$$--//E	NNr3iNN	NNr3iNNz,,T599Hw&B B BELLc5\B:677D''--K%3'a7L L LL LLr$   patch_alpha_coloringT)remove_textc                     t           j                            d          } t           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	          }|                    |           t          j        |dddd
          }|                    |           |                    dd           |                    dd           dS )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Z##%%FNFOT]44R4-@ABBENFL$*566E
5%((I
519e,,I	B

%yk01i0>0?A A AC cy)*i)7)8: : :E LLKKAKKAr$   patch_alpha_overridec                     t           j                            d          } t           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	          }|                    |           t          j        |ddddd
          }|                    |           |                    dd           |                    dd           d S )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   0  sC   
 :''**DZ##%%FNFOT]44R4-@ABBENFL$*566E
5%((I
519e,,I	B

%yk01i,00>0?	A A AC
 cy)*i%))7)8	: : :E
 LLKKAKKAr$   defaultc                  v    t          j        dddd          } |                                 d         dk    sJ d S )NrI   r   r   )r   r   r   )r   Circleget_facecolor)cs    r"   test_patch_color_noner   P  sB     	
61a888A??Q1$$$$$$r$   patch_custom_linestylec                     t           j                            d          } t           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          }|                    |           t          j        |dddd	          }|                    |           |                    dd
           |                    dd
           d S )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   X  s?    :''**DZ##%%FNFOT]44R4-@ABBENFL$*566E
5%((I
519e,,I	B

%	!3 4y2 2 2C c1y2 2 2E LLKKAKKAr$   c                     t           j                            d          } t           j                                        }t	          j        |j        | j        d d d         g          }t	          j        |j        | j        g          }g d}t          j	                    \  }}t          |          D ]K\  }}t          j        ||z   |          } t          j        | d|dd          }	|                    |	           L|                    d|dz   g           |                    d|dz   g           |j                                         d S )	Nr~   r   )---z-.:soliddashedr   dottedrP   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   u  s@    :''**DZ##%%FNFOT]44R4-@ABBENFL$*566E: : :J lnnGC:&&  2z%!)U++"4-."-6-68 8 8 	UKKQUKKQUJOOr$   c                    t           j                                        }|                                 }|                                }t	          g d          D ]\  }}t          j        |j        |z   |j                  }t          j        |d|dd          }|	                    |           t          j        |dddd          }|	                    |           |
                    d|d	z   g           |                    d|d	z   g           |
                    d|d	z   g           |                    d|d	z   g           d S )
N)r   None  rP   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\   Z##%%F""$$G  ""F44455    2z&/A-v|<<"4-."-6-68 8 8 	%   "4-.#-6-35 5 5 	b!a%[!!!b!a%[!!!
OORQK   
OORQK     r$   c                  :   dddddd} d |                                  D             }t          j        di |}|                                  D ]N\  }\  }}}t          ||          |k    sJ  t          ||          |           t          ||          |k    sJ Od S )	N)rI   rn   
set_center)r   r-   
set_radius)r(   rP   	set_width)r   rN   
set_theta1)-   r   
set_theta2)rS   r   r?   theta1theta2c                 &    i | ]\  }}||d          S )r    ).0kvs      r"   
<dictcomp>z'test_wedge_movement.<locals>.<dictcomp>  s"    888TQAaD888r$   r   )itemsr   Wedgegetattr)
param_dict	init_argswattrold_vnew_vfuncs          r"   test_wedge_movementr    s    :+.12	4 4J 98Z%5%5%7%7888I####A&0&6&6&8&8 ) )""ueTq$5((((4q$5((((() )r$   wedge_rangegffffff?)r   tolc            
      |   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 ]J\  }\  }}|dz  }|dz  }t          j        |dz  |dz  fd||ddd          }|                     |           K|                     dd           |                     dd           d S )Ngo͂@g,(J@g 7
m@g,(J@gm7
m@r]   r   h  r.   i  iL   i|  r   .   rP   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 F F 	eKKAKKAr$   c                     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 d$S )+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(   rP   )r   radiuszCircle(xy=(1, 2), radius=3)rO   r   rJ   z.Ellipse(xy=(1, 2), width=3, height=4, angle=5)z0Rectangle(xy=(1, 2), width=3, height=4, angle=5)r~   )rS   r   r   r   r?   z6Wedge(center=(1, 2), r=3, theta1=4, theta2=5, width=6)r   )r   r?   r@   rK   r   r   z>Arc(xy=(1, 2), width=3, height=4, angle=5, theta1=6, theta2=7))rP   rO   r   r(   )r   r   r?   rK   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q6622222F!AQ???Aq66EEEEEfAaqAAAAq66GGGGGf!AQGGGAq66MMMMMa1QOOOAOHq66XFfAQ???A?Hq66X1555Aq66JJJJJ&rBBBAq66EEEEEa:::Aq66@@@@@ :...t<<<D4  Aq66-----&))**Aq66\!!!!FQFQF#DAq66+++++ d+++Aq66#2#;77777 00Aq6666666 88Aq66666661a  Aq66>>>>>>>r$   multi_color_hatch)r   stylec            	         t          j                    \  } }|                    t          d          t          dd                    }t	          |          D ]G\  }}|                    d           |                    d|            |                    d           H|                                 |	                    d           t          d          D ]l}t          j                            dd| i          5  t          |d	z
  dfd
ddd          }d d d            n# 1 swxY w Y   |                    |           md S )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   rB   r   s         r"   test_multi_color_hatchr7    s   lnnGCFF588U1a[[))EU##  46"""7q77###sLL1XX  Yw1ww788 	I 	I1v:q/2qHHHA	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I
Q s   =D##D'	*D'	zunits_rectangle.pngc                     dd l mc m}  |                                  t	          j        d| j        z  d| j        z  fd| j        z  d| j        z            }t          j                    \  }}|	                    |           |
                    d| j        z  d| j        z  g           |                    d| j        z  d| j        z  g           d S )	Nr   r   r~   r   r(   rO   r   r/   )matplotlib.testing.jpl_unitsrV   	jpl_unitsregisterr   r	   kmr   r   rp   r   r   )Ur!   r   r   s       r"   test_units_rectangler>  *  s    ,,,,,,,,,JJLLLAadFAadF+QqtVQqtV<<AlnnGCLLOOOKK1414 !!!KK1414 !!!!!r$   zconnection_patch.pngmpl20)r'  r   c            	      ,   t          j        dd          \  } \  }}t          j        dddd||d          }|                    |           d}d	}d
}|                                }t          j        ||||d          }|                    |           d S )Nr   r(   rz   )?rA  r  ->)xyAxyBcoordsAcoordsBaxesAaxesB
arrowstyle)g333333?r[   )rM   皙?zaxes fractionr   )rC  rD  rE  rF  rI  )r   r   r   r!  r  get_yaxis_transform)r   ax1ax2conrC  rD  rE  rF  s           r"   test_connection_patchrO  7  s    l1a((OC#s

"zz+16),C.24 4 4C NN3
C
CG%%''G

"sW+2sD D DCNN3r$   c           	         |                      dd          \  }}t          j        dd|dddd	          }|                     |           |                     dd          \  }}|j        }t
          j        d
         t
          j        d<   t          j        dd||j        dz
  |j        dz
  fddd	          }|                    |           d S )Nr   r(   )333333?rJ  r  )iizfigure pixelsrB  r   )rC  rE  rG  rD  rF  rI  shrinkBz
figure.dpisavefig.dpirN   r'   )	r   r   r!  r  r   r   r   r?   r@   )rr   rs   rL  rM  rN  bbs         r"   test_connection_patch_figrU  J  s    
   A&&HC

"fC$ $ $C 1%%HC	B"%,|"<CL

"fCX]BIN+_$ $ $C sr$   c                      ddl m } m}  | dddddd          } |d          }t          j        |df|d          }t	          j                    \  }}|                    |           d S )Nr   )datetime	timedelta  r      )seconds)rW  rX  r   r	   r   r   rp   )rW  rX  startdeltar   r   r   s          r"   test_datetime_rectangler^  a  s    ,,,,,,,,HT1aAq))EIb!!!Eqz5!44ElnnGCLLr$   c                  r   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            n# 1 swxY w Y   t          j        t                    5  t	          j        d|fd|           d d d            d S # 1 swxY w Y   d S )Nr   rW  rY  r   i  r   )rW  pytestraises	TypeErrorr   r	   )rW  r\  dt_deltas      r"   test_datetime_datetime_failsre  m  sM   !!!!!!HT1aAq))Exa##H	y	!	! 4 4E1:x3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 
y	!	! 4 4Au:q(3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s#   A""A&)A&B,,B03B0c                  t   t          j        ddd          g d}                                                                                     d           t          j        fd| D                       }t          j        fd| D                       }t          j        ||k              sJ d S )Nr   r   r   r[   )rM   r   )rJ  r   )r   r   rg  c                 >    g | ]}                     |          S r   contains_point)r   pointr   r  r=   s     r"   
<listcomp>z'test_contains_point.<locals>.<listcomp>  sG     J J J9> ,,U-6-35 5 J J Jr$   c                 :    g | ]}                     |          S r   rj  )r   rl  ells     r"   rm  z'test_contains_point.<locals>.<listcomp>  s'    EEEUs))%00EEEr$   )r   r   get_pathget_transform_process_radiusr;   rU   all)pointsr#  resultro  r   r  r=   s      @@@@r"   test_contains_pointrv  z  s    

:sC
0
0C>>>F<<>>D!!##I  &&Fx J J J J J JBHJ J J K KH XEEEEfEEEFFF6&H$%%%%%%%r$   c                  @   t          j        ddd          } g d}|                                 }|                                 }|                     d           }|                    |||          }|                     |          }t          j        ||k              sJ d S )Nrg  r   r[   rh  )r   r   rp  rq  rr  contains_pointsr;   rs  )ro  rt  r   r=   r  r#  ru  s          r"   test_contains_pointsry    s    

:sC
0
0C>>>F<<>>D!!##I  &&F##FIv>>H  ((F6&H$%%%%%%%r$   c                 J   t          j        ddg          }t          j        ddg          }dt          j        d<   |                                 }t          j        |dd          }t          j        ||d         |d	         
          }|                    |           |                    |           |                                }t          j        |dd          }t          j        ||j	        dz  |z  z   ddt          j
        t          j        |                                                    dz  t          j
        t          j        |                                                    dz  d          }|                    |           |                    |           d S )NrJ  rQ  r{   figurerS  r   )r   r?   r@   r   r   )oxoyH   )r   r?   r@   r,  ecr   )r;   rU   r   r   r   r   r	   r"  rp   dpir^   mcolorsto_rgbr   )rr   rs   r   dxya1rB   shadowa2s           r"   test_shadowr    sv   	2r(		B
(B8

C #+CL					B2b999D_Tc!fQ888FLLLL					B2b999Db 3&&b:gnT%7%7%9%9::;;b@:gnT%7%7%9%9::;;b@	  F
 LLLLr$   c                      ddl m }   | ddd          }t          j                    \  }}t          d|fd|f          }d S )Nr   r`  i  r   {Gz?)rW  r   r   r
   )rW  dtimer   r   arrows        r"   test_fancyarrow_unitsr    sQ    !!!!!!HT1a  ElnnGCQJu66EEEr$   c                     t          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          }|                    ddddddd           t          j        |t          j        |j        d                    sJ d S )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;   rU   allcloseroundr   set_data)r   r   r  	expected1	expected2s        r"   test_fancyarrow_setdatar    sN   lnnGCHHQ2rqQbHI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                     t          j        dd          \  } \  }}d}d}d}||fD ]V}t          ||f||dd          }|                    |           |                                 |                    d           W|                    d	d
           |                    dd           |                    dd           |                    dd           d S )Nr   r(      ii  r   )r   colorequalr   r-   r   r~   iXiPF  ii  )r   r   r   rp   set_axis_off
set_aspectr   r   )r   rL  rM  r  r  diameterr   as           r"   test_large_arcr    s    l1a((OC#sAAHCj  A(q<<<
Q

gLLALLA LLLLr$   zall_quadrants_arcs.svgc                  R   t          j        dddd          \  } }d}d}d}d}t          |                                |          D ]_\  }\  }}d	}	t          d
d
t	          j        d          z  f||f          D ]\  }
}t          ||	          D ]}\  }\  }}t          ||z  |
z  ||z  |
z  f||z  ||z  dd| d|z   t	          j        t	          j	        ||                    dz  d| d| 	  	        }|
                    |           ~|dz   }	|                    | dz  |dz             |                    | dz  |dz             |                    d	d           |                    d	d           |                                 |                    d           ad S )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.?)r\  rO   r)  r   r
  zbig )r   r  zorderrK   labelgidi  r   )r  r  )r   r   zipravelr;   rT   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EEEKCE7L8O9EFLLNNE22  HR!$i)rwqzz1I%J'6&E"G "G 	 	Hg'0'B'B'B    ##FFe^h.e^h.0BJBJ!a''q5*RZ%?%?@@3F$**"q

   Q!AA
UFTM54<000
UFTM54<000


1C
   


1C
   

g3 r$   c                      t          j        t          d          5  t          ddddd           d d d            d S # 1 swxY w Y   d S )NzGot unknown shape: 'foo'matchr   rJ  foo)shape)ra  rb  
ValueErrorr   r   r$   r"   test_fancyarrow_shape_errorr    s    	z)C	D	D	D 0 01ac////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   >AAz
fmt, match))r  zUnknown style: 'foo')z	Round,fooz%Incorrect style argument: 'Round,foo'c                     t          j        t          |          5  t          |            d d d            d S # 1 swxY w Y   d S )Nr  )ra  rb  r  r   )fmtr  s     r"   test_boxstyle_errorsr    s    
 
z	/	/	/                   s   9= =annulus)baseline_imagesrl   c            
         t          j                    \  } }t          dddd          }t          ddddd	d
dd          }|                    |           |                    |           |                    d           d S )Nrg  rJ  皙?gr,  r   rQ  r{   r   mr}   r   xxxr,  r  r   r+  r  )r   r   r   rp   r  r   r   cirro  s       r"   test_annulusr    s     lnnGC
*c4C
0
0
0C
*j#rS5: : :CLLLLMM'r$   c            
      f   t          j                    \  } }t          dddd          }t          ddddd	d
dd          }|                    |           |                    |           |                    d           d|_        d|_        d|_        d|_        d|_        d|_        d|_        d S )NrL   rJ  r  r  r  r  r{   r   r  r}   r   r  r  r  rg  r  r  r   )	r   r   r   rp   r  rS   radiir?   rK   r  s       r"   test_annulus_settersr  &  s     lnnGC
(C#
.
.
.C
(FCS5: : :CLLLLMM'CJCICICJCICICIIIr$   c            
      &   t          j                    \  } }t          dddd          }t          ddddd	d
dd          }|                    |           |                    |           |                    d           d|_        |                    d           |                    d           |j        dk    sJ d|_	        d|_        |                    d           |                    d           |j        dk    sJ d|_	        d|_
        d S )NrL   rJ  r  r  r  r  r{   r   r  r}   r   r  r  r  rg  )rJ  rJ  r  rQ  r  r   )r   r   r   rp   r  rS   set_semimajorset_semiminorr  r?   rK   r  s       r"   test_annulus_setters2r  ;  s!    lnnGC
(C#
.
.
.C
(FCS5: : :CLLLLMM'CJcc9
""""CICJcc9
""""CICIIIr$   c                      ddg} t          | | g          j        }t          j        t	          | g                                          j        |k              sJ d S )Nr   )r   extentsr;   rs  r   get_extents)rl  correct_extentss     r"   test_degenerate_polygonr  T  sY    FEE5>**2O6'5'""..008OKLLLLLLLr$   kwarg)r   r   c                     t          j        t          d          5  t          dddi| di d d d            d S # 1 swxY w Y   d S )NzQSetting the 'color' property will override the edgecolor or facecolor properties.r  r  r   r   )ra  warnsUserWarningr   )r  s    r"   test_color_override_warningr  Z  s    	kE
F 
F 
F 1 1 	00G0w/0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   :>>c                  |    t          t          j        d                    } |                                 g k    sJ d S )Nr  )r   r;   zerosrc   )polys    r"   test_empty_vertsr  b  s:    28F##$$D>>r!!!!!!r$   c                  $   t                      } |                     t          d                     |                                 t          d          k    sJ |                     d            |                                 t          d         k    sJ d S )Nzpatch.antialiased)r   set_antialiasedr   get_antialiasedr   s    r"   test_default_antialiasedr  g  s    GGE	h':;;<<<  ""84G+H'HIIII	$  ""h/B&CCCCCCCr$   c                      t                      } |                     d           |                     d            |                                 dk    sJ d S )Nr   r   )r   set_linestyler   r  s    r"   test_default_linestyler  q  sV    GGE		  G++++++r$   c                  V    t                      } |                                 dk    sJ d S )Nbutt)r   get_capstyler  s    r"   test_default_capstyler  x  s.    GGE6))))))r$   c                  V    t                      } |                                 dk    sJ d S )Nmiter)r   get_joinstyler  s    r"   test_default_joinstyler  }  s.    GGE  G++++++r$   autoscale_arcsvg)rl   r'  r   c                     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 ]3\  }}|D ]}|                    |           |                                 4d S )Nr   rP   )rO   r   )r  rI   r   r.   )r   r   rg        ?r   r&   r'   g      @n   x   g      @r     g      @i6  i@  )r   r   r   r  rp   r3  )r   axs	arc_listsr   arcsarcs         r"   test_autoscale_arcr    s    |Aq&111HC	VQ!B	/	/	/0	Zc"R	8	8	89	Zc"R	8	8	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	          }|                                                    |           |                                                     |           d S )
Nr   r   r   <   r'   r   r   rK   r   r   )r   
facecolors
edgecolors)r   r   PatchCollectionr   rp   r   )rr   rs   arc1arc2r   s        r"   test_arc_in_collectionr    s    BxQq2>>>DBxQq2>>>D

&v&257 7 7C  &&&&&s+++++r$   c                 R   t          ddgddddd          }t          ddgddddd          }|                                                    |           |                                                     |           |                    d           |                    d           d S )	Nr   r   r   r  r'   r  r  r&   )r   r   rp   r   r7   )rr   rs   r  r  s       r"   test_modifying_arcr    s    BxQq2>>>DBxa"B???D  &&&!!$'''NN2NN2r$   )Z__doc__numpyr;   numpy.testingr   r   ra  
matplotlibr4  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   r8   r   sysplatformon_winr#   rG   rY   rj   rx   r   r   r   r   r   r'  r5  r   r   r   r   r  r  r%  r7  r>  rO  rU  r^  re  rv  ry  r  r  r  r  r  r  markparametrizer  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r$   r"   <module>r     sP        A A A A A A A A     L L L L L L L L L L L L L L L L L L L L L L O O O O O O O O & & & & & &      8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 



,'
!"- "- "-J-< -< -<`0B 0B 0Bf6 6 60 (((* * )(*( (((" " )("BB B B >"##  $#6 )*===  >=< )*===  >=> 9% % % +,$???  @?8  4 (((! ! )(!2) ) )" =/t9NQOOO  PO8:? :? :?@ &'TKKK  LK$ ()**	" 	" +*	" )*'tLLL  ML$ (((  )(,	 	 	
4 
4 
4
& 
& 
&& & & (((  )(07 7 7< < <> ?#7333  43& +,G<<<! ! =<!H0 0 0
  (   	 
 9+5'BBB  CB 9+5'BBB  CB( 9+5'BBB  CB0M M M "<==1 1 >=1" " "
D D D, , ,* * *
, , ,
 ?#T3 3 3 3 3   < < <===, , >=,  < < <===  >=  r$   