
    P/Ph                        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	j1        2                    d          d             Z3 edgd          d             Z4d Z5 edg          d             Z6d Z7 ed gd ej8                    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j8                    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jJ        K                    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jJ        K                    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[dS )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          }|                                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      ]/var/www/html/test/jupyter/venv/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   ))      '@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   :   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        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!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      ?       @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&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 )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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|   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 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)rO   r'   rH   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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      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   /  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 )NrH   r   r   )r   r   r   )r   Circleget_facecolor)cs    r!   test_patch_color_noner   O  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   W  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   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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  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\   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)rH   rn   
set_center)r   r,   
set_radius)r'   rO   	set_width)r   rM   
set_theta1)-   r   
set_theta2)rR   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_rangearm64g;On?)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   .   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 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'   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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   rA   r   s         r!   test_multi_color_hatchr8    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'   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    ,,,,,,,,,JJLLLAadFAadF+QqtVQqtV<<AlnnGCLLOOOKK1414 !!!KK1414 !!!!!r#   zconnection_patch.pngmpl20g~jt?)r(  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   )?rB  r  ->)xyAxyBcoordsAcoordsBaxesAaxesB
arrowstyle)g333333?rZ   )rL   皙?zaxes fractionr   )rD  rE  rF  rG  rJ  )r   r   r   r"  r  get_yaxis_transform)r   ax1ax2conrD  rE  rF  rG  s           r!   test_connection_patchrP  6  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?rK  r  iifigure pixelsrC  r   rD  rF  rH  rE  rG  rJ  shrinkB
figure.dpisavefig.dpirM   r&   )	r   r   r"  r  r   r   r   r>   r?   )rr   rs   rM  rN  rO  bbs         r!   test_connection_patch_figr[  J  s    
   A&&HC

"fC$ $ $C 1%%HC	B"%,|"<CL

"fCX]BIN+_$ $ $C sr#   c           	         d}d}|                      dd          \  }}t          j        |d||ddd	          }|                     |           t          j        d
         t          j        d<   |                     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	          }|                    |           d S )NrR  rT  r   r'   zaxes pointszfigure pointsrC  r   rV  rX  rY  r   H   zaxes pixelsrU  )r   r   r"  r  r   r   dpi)	rr   rs   xyA_ptsxyB_ptsrM  rN  rO  xyA_pixxyB_pixs	            r!   "test_connection_patch_pixel_pointsrc  a  s!   GG  A&&HC

"wS'..2A? ? ?C "%,|"<CL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                    \  }}|                    |           d S )Nr   )datetime	timedelta  r      )seconds)re  rf  r   r	   r   r   rp   )re  rf  startdeltar   r   r   s          r!   test_datetime_rectanglerl  w  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   re  rg  r   i  r   )re  pytestraises	TypeErrorr   r	   )re  rj  dt_deltas      r!   test_datetime_datetime_failsrs    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   rZ   )rL   r   )rK  r   )r   r   ru  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   rx  )r   rz  ells     r!   r{  z'test_contains_point.<locals>.<listcomp>  s'    EEEUs))%00EEEr#   )r   r   get_pathget_transform_process_radiusr:   rT   all)pointsr$  resultr}  r   r  r<   s      @@@@r!   test_contains_pointr    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 )Nru  r   rZ   rv  )r   r   r~  r  r  contains_pointsr:   r  )r}  r  r   r<   r  r$  r  s          r!   test_contains_pointsr    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 )NrK  rS  r{   figurerY  r   )r   r>   r?   r   r   )oxoyr]  )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    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   rn  i  r   {Gz?)re  r   r   r
   )re  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:   rT   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   rM  rN  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.?)rj  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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   rK  foo)shape)ro  rp  
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  )ro  rp  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 )Nru  rK  皙?gr-  r   rS  r{   r   mr}   r   xxxr-  r  r   r,  r  )r   r   r   rp   r  r   r   cirr}  s       r!   test_annulusr  0  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 )NrK   rK  r  r  r  r  r{   r   r  r}   r   r  r  r  ru  r  r  r   )	r   r   r   rp   r  rR   radiir>   rJ   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 )NrK   rK  r  r  r  r  r{   r   r  r}   r   r  r  r  ru  )rK  rK  r  rS  r  r   )r   r   r   rp   r  rR   set_semimajorset_semiminorr  r>   rJ   r  s       r!   test_annulus_setters2r  Q  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:   r  r   get_extents)rz  correct_extentss     r!   test_degenerate_polygonr  j  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   )ro  warnsUserWarningr   )r  s    r!   test_color_override_warningr  p  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  x  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  }  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    sV    GGE		  G++++++r#   c                  V    t                      } |                                 dk    sJ d S )Nbutt)r   get_capstyler  s    r!   test_default_capstyler    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   rO   )rN   r   )r  rH   r   r-   )r   r   ru        ?r   r%   r&   g      @n   x         @r     g      @i6  i@  )r   r   r   r  rp   r4  )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   rJ   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   r6   )rr   rs   r  r  s       r!   test_modifying_arcr    s    BxQq2>>>DBxa"B???D  &&&!!$'''NN2NN2r#   c                  H   t          j                    \  } }t          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        |	                                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           t          j        |t          j        |	                                d                    sJ d S )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   r5  r   Arrowr:   rT   r  r  rc   r  r  s        r!   test_arrow_set_datar     sH   lnnGCKaAr**E	r
	c
	b		b		S		b		b		b		 	I ;y"(5??+<+<a"@"@AAAAA




r


		 	I 
NNRA!3N///;y"(5??+<+<a"@"@AAAAAAAr#   )rk   r  r  r  c           	      6   |                                  }|                                 }d}t          j        d|i          5  |                    t	          j        dddd                     d d d            n# 1 swxY w Y   |                    t	          j        dddd                     |j        d                             |           |j        d                                         |k    sJ |j        d                                         |k    sJ d S )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	0 F F+FAqDDDEEEF F F F F F F F F F F F F F F h(ASAAABBBOA**2...>!0022b8888?11133r999999s   ,A99A= A=)\__doc__platformnumpyr:   numpy.testingr   r   ro  
matplotlibr5  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(  r6  r   r   r   r   r  machiner  r&  r8  r?  rP  r[  rc  rl  rs  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>r3     s         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/x/11W<<ee!E E E E E8:? :? :?@ &'TKKK  LK$ ()**	" 	" +*	" )*'t/x/11W<<ee!E E E E E$ (((  )(, (((  )(*	 	 	
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   < < <===, , >=,  < < <===  >=B B B:  < < <===: : >=: : :r#   