
    G8c{s                        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&jN                  dk(  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        Z0 edgd      d        Z1ejd                  jg                  d      d        Z4 edgd      d        Z5d Z6 edg      d        Z7d Z8 ed gde(rd!nd"      d#        Z9d$ 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>d/ Z?d0 Z@d1 ZAd2 ZB edg      d3        ZCd4 ZDd5 ZE ed6gd+7      d8        ZF ed9gd+7      d:        ZGd; ZHej                  j                  d<d=      d>        ZK ed?gdg@      dA        ZL ed?gdg@      dB        ZM ed?gdg@      dC        ZNdD ZOej                  j                  dEdF      dG        ZPdH ZQdI ZRdJ ZSdK ZTdL ZU edMgddNgd+dO      dP        ZV eg dQ      dR        ZW eg dQ      dS        ZXy)Tz'
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      }|j                         sJ t        |j                         |       |j	                  |        t        |j                         |       t        |d      }t        |j                         |        |j	                  |       t        |j                         |        t        | d      }|j                         rJ t        |j                         |        |j	                  |        t        |j                         |        t        |d      }t        |j                         |       |j	                  |       t        |j                         |       y )Nr      TclosedF)r   
get_closedr   get_xyset_xy)xyxyclosedps      ?/usr/lib/python3/dist-packages/matplotlib/tests/test_patches.pytest_Polygon_closer#      s.    a&1a&1a&	!BaVH}H 	4 A<<>>qxxz8,HHRLqxxz8, 	'Aqxxz2&HHXqxxz2& 	5!A||~qxxz2&HHRLqxxz2& 	&Aqxxz8,HHXqxxz8,    c                     ddg} d}d}d}t        | ||      }t        |j                         |       t        |j                         d       d}|j	                  d       t        |j                         |       t        |j                         d	       d
} t        j                         j                  g | t        j                  |       }|j                  |      }|j	                  |       t        |j                         |       | d   |dz  z   | d   |dz  z   g} t        | ||      }t        |j                         |       d}|j	                  d       t        |j                         |       t        |j                         |        d
} t        j                         j                  g | t        j                  |       }|j                  |      }|j	                  |       t        |j                         |       y )N
      r      )r&   r'   )   r'   )r*      )r&   r+   )g      %@   )r)   )r&   r,   )   r,   )r-   r'   Z   )	        4@!   r   ))      '@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   ;   s   r(CEF 7GS%(Dt'')73t(*5 9KNN2t'');7t()4 E,,,EcE2::e3DEA++g&KNN5((*K8 q6EAIq6FQJ Cc5&)G w**,g6 IKbw**,k:w))+S1 E,,,EcE2::e3DEA++g&Ke++-{;r$   c                     t        j                  ddg      } d}d}d}t        | |||      }t        | ||      }t         j                  |z  dz  }t        j                  t        j
                  |      t        j                  |       gt        j                  |      t        j
                  |      gg      }t        j                  ||j                         | z
        j                  | z   }t        |j                         |       y )N      ?g       @r(      g      >@angle     f@)r;   asarrayr	   piarraycossininner	get_vertsTr   )	r>   r?   r@   rL   rect1rect2	angle_radrotation_matrix	new_vertss	            r"   test_rotate_rectr[   k   s    
**c3Z
 CEFE c5&6E c5&)E %Ihh	!2RVVI5F4F G!#	!2RVVI5F G I JO %//*;c*ABDDsJI )95r$   png)
extensionsc                 r   | j                         }|j                         }d}d\  }}d}t        ||||      }|j                  |       |j                         |k(  sJ t        |||      }	|	j                         dk(  sJ |j                  |	       |	j	                  |       |	j                         |k(  sJ y )Nr   r   r   r      rK   r   )add_subplotr	   	add_patch	get_angler7   )
fig_testfig_refax_testax_refr>   r?   r@   rL   rect_ref	rect_tests
             r"   test_rotate_rect_drawrk      s    ""$G  "F
CME6EeV59H
X5((( #uf-I A%%%i  E)))r$   c           
      J   | j                         }|j                         }d}d\  }}t        |||dddddgf      }t        |||dddg d	f      }|j                         dddgfk(  sJ |j                         dg d	fk(  sJ |j                  |       |j                  |       t        |||dddddgf      }	t        |||dddddgf      }
|	j                         dddgfk(  sJ |
j                         dddgfk(  sJ |j                  |	       |j                  |
       y )
N皙?rn   )皙?ro   rJ   br      )	linewidth	edgecolor	linestyler)r   rq   rq   r   )rb   r	   get_linestylerc   )re   rf   rg   rh   r>   r?   r@   ri   	rect_ref2rj   
rect_test2s              r"   test_dash_offset_patch_drawry      s^   ""$G  "F
CME6eVqC;<q!f+GH #ufS78,6GII!!#Aq6{222""$L(9999
X
Y #ufS?@1a&kKI3vc?@1a&kKJ""$QF333##%!aV444i j!r$   c                      t        ddd      j                         d d } t        ddd      j                         d d }t        t        j                  |dd      |        y )	N)rJ   r(   r_   r{   r|   r   )r	   rT   r   r;   roll)pos_verticesneg_verticess     r"   test_negative_rectr      sW     Xq!,668"=LVR,668"=Lrww|Q2LAr$   clip_to_bboxc                  *   t        j                         \  } }|j                  ddg       |j                  ddg       t        j
                  j                  d      j                         }|xj                  ddgz  c_        |xj                  ddgz  c_        t        j
                  j                         j                         }|xj                  ddgz  c_        |xj                  dd	gz  c_        t        j
                  j                  ||      }t        j                  |d
dd      }|j                  |       t        j                  ddgddgg      }|j!                  |      }t        j                  |d
ddd      }|j                  |       y )Nir'   ijd   r-   r&         i      ?coralnone)alpha	facecolorrs   ig     `S2   igreen   black)r   r   lwrs   )pltsubplotsset_xlimset_ylimmpathPathunit_regular_stardeepcopyverticesunit_circlemake_compound_pathmpatches	PathPatchrc   r8   r   r   )	figaxr   path2combinedpatchbboxresult_pathresult_patchs	            r"   test_clip_to_bboxr      sD   llnGCKKb	KKs::''*335DMMb#YMMMaWMJJ""$--/E	NNr3iN	NNr3iNzz,,T59Hw&BELLc5\B:67D''-K%%3'a7LL LLr$   patch_alpha_coloringT)remove_textc                     t         j                  j                  d      } t         j                  j                         }t	        j
                  |j                  | j                  ddd   g      }t	        j
                  |j                  | j                  g      }t        j                  ||      }t        j                  |dz   |      }t        j                         }t        j                  |gdddd	      }|j                  |       t        j                  |dddd
      }|j                  |       |j!                  ddg       |j#                  ddg       y)z
    Test checks that the patch and collection are rendered with the specified
    alpha values in their facecolor and edgecolor.
    rq   Nr}   r   r   dashdotr   r   r   r   r   r   r   g      ?rr   
linestylesr   rs   rr   rt   r   rs   r(   r   r   r   r   r;   concatenater   codesr   axesmcollectionsPathCollectionadd_collectionr   r   rc   r   r   	starcirclevertsr   	cut_star1	cut_star2r   colr   s	            r"   test_patch_alpha_coloringr      s    ::''*DZZ##%FNNFOOT]]4R4-@ABENNFLL$**56E

5%(I

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

5%(I

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

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

5%(I

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

    Note that the logic is that `__str__` is defined such that:
    str(eval(str(p))) == str(p)
    r   r(   rJ   )r   radiuszCircle(xy=(1, 2), radius=3)r   r   )r   r?   r@   rL   z.Ellipse(xy=(1, 2), width=3, height=4, angle=5)z0Rectangle(xy=(1, 2), width=3, height=4, angle=5)rq   )r   ru   r   r   r?   z6Wedge(center=(1, 2), r=3, theta1=4, theta2=5, width=6)r   )r   r?   r@   rL   r   r   z>Arc(xy=(1, 2), width=3, height=4, angle=5, theta1=6, theta2=7))rJ   r   r   r(   )r   ru   r?   rL   z.Annulus(xy=(1, 2), r=(3, 4), width=1, angle=2)r'   )r  z3RegularPolygon((1, 2), 20, radius=5, orientation=0))r   r  
resolutionz.CirclePolygon((1, 2), radius=5, resolution=20))r?   r@   z)FancyBboxPatch((1, 2), width=3, height=4))r  r(   r(   r  Tr   zPathPatch3((1, 2) ...)r   r(   z
Polygon0()zPolygon3((1, 2) ...))r   N   zFancyArrowPatch(Path(array(zFancyArrowPatch((1, 2)->(3, 4))datazConnectionPatch((1, 2), (3, 4))z'Shadow(ConnectionPatch((1, 2), (3, 4))))r   r   strr   r	   r   r   r   RegularPolygonCirclePolygonFancyBboxPatchr   r   r   r   r;   emptyr
   ConnectionPatchShadow)r!   expectedr   r  ss        r"   test_patch_strr    s    	6!,Aq62222F!AQ?Aq6EEEEfAaqAAq6GGGGf!AQGAq6MMMMa1QOAOHq6XFfAQ?A?Hq6X15Aq6JJJJ&rBAq6EEEEa:Aq6@@@@ ::.t<D4 Aq6----&)*Aq6\!!!FQFQF#DAq6++++  d+Aq6#2;7777  0Aq66666  8Aq666661a Aq6>>>>r$   multi_color_hatch)r   stylec            	      ^   t        j                         \  } }|j                  t        d      t        dd            }t	        |      D ]G  \  }}|j                  d       |j                  dj                  |             |j                  d       I |j                          |j                  d       t        d      D ]a  }t        j                  j                  ddj                  |      i      5  t        |d	z
  dfd
ddd      }d d d        |j                         c y # 1 sw Y   xY w)Nr   r   rq   r   zC{}/Fzhatch.colorg?ro   z//)hatchfc)r   r   barranger   set_facecolorset_edgecolorformat	set_hatchautoscale_view	autoscalemplr  contextr	   rc   )r   r   rectsr   rB   ru   s         r"   test_multi_color_hatchr)    s    llnGCFF58U1a[)EU# 46"5<<?+s
 LL1X YYu||A?@ 	I1v:q/2qHA	I
Q	I 	Is   1D##D,	zunits_rectangle.pngc                     dd l mc m}  | j                          t	        j
                  d| j                  z  d| j                  z  fd| j                  z  d| j                  z        }t        j                         \  }}|j                  |       |j                  d| j                  z  d| j                  z  g       |j                  d| j                  z  d| j                  z  g       y )	Nr   r   rq   r   r(   r   r   r/   )matplotlib.testing.jpl_unitstesting	jpl_unitsregisterr   r	   kmr   r   rc   r   r   )Ur!   r   r   s       r"   test_units_rectangler1    s    ,,JJLAaddFAaddF+QqttVQqttV<AllnGCLLOKK144144 !KK144144 !r$   zconnection_patch.pngmpl20)r  r   c            	         t        j                  dd      \  } \  }}t        j                  dddd||d      }|j	                  |       d}d	}d
}|j                         }t        j                  ||||d      }|j	                  |       y )Nr   r(   rm   )?r4  r  ->)xyAxyBcoordsAcoordsBaxesAaxesB
arrowstyle)g333333?rI   )        皙?zaxes fractionr   )r6  r7  r8  r9  r<  )r   r   r   r  r   get_yaxis_transform)r   ax1ax2conr6  r7  r8  r9  s           r"   test_connection_patchrC    s    ll1a(OC#s

"
"zz+16),C.24C NN3
C
CG%%'G

"
"sW+2sDCNN3r$   c           	         | j                  dd      \  }}t        j                  dd|dddd	      }| j                  |       |j                  dd      \  }}|j                  }t
        j                  d
   t
        j                  d<   t        j                  dd||j                  dz
  |j                  dz
  fddd	      }|j                  |       y )Nr   r(   )333333?r>  r  )iizfigure pixelsr5  r   )r6  r8  r:  r7  r9  r<  shrinkBz
figure.dpisavefig.dpira   r'   )	r   r   r  r   r   r   r   r?   r@   )re   rf   r@  rA  rB  bbs         r"   test_connection_patch_figrI    s    
   A&HC

"
"fC$C 1%HC	B"%,,|"<CLL

"
"fCXX]BIIN+_$C sr$   c                      ddl m } m}  | dddddd      } |d      }t        j                  |df|d      }t	        j
                         \  }}|j                  |       y )Nr   )datetime	timedelta  r      )seconds)rK  rL  r   r	   r   r   rc   )rK  rL  startdeltar   r   r   s          r"   test_datetime_rectanglerR  .  sV    ,T1aAq)Eb!Eqz5!4EllnGCLLr$   c                  Z   ddl m }   | dddddd      } | ddd      }t        j                  t              5  t	        j
                  |df|d       d d d        t        j                  t              5  t	        j
                  d|fd|       d d d        y # 1 sw Y   ExY w# 1 sw Y   y xY w)Nr   rK  rM  r   i  r   )rK  pytestraises	TypeErrorr   r	   )rK  rP  dt_deltas      r"   test_datetime_datetime_failsrY  :  s    !T1aAq)Ea#H	y	! 4E1:x34 
y	! 4Au:q(34 44 44 4s   B2B!B!B*c            
         t        j                  ddd      } g d}| j                         }| j                         }| j	                  d       }t        j                  |D cg c]  }|j                  |||       c}      }t        j                  |D cg c]  }| j                  |       c}      }t        j                  ||k(        sJ y c c}w c c}w Nr   r   r   rI   ))r=  r   )r>  r   )r   r   r\  )	r   r   get_pathget_transform_process_radiusr;   rP   contains_pointall)ellpointsr   r=   r  pointr  results           r"   test_contains_pointrf  G  s    


:sC
0C>F<<>D!!#I  &FxxBHJ9> ,,U-6-35 J KH XXfEUs))%0EFF66&H$%%%	J Fs    CCc                     t        j                  ddd      } g d}| j                         }| j                         }| j	                  d       }|j                  |||      }| j                  |      }t        j                  ||k(        sJ y r[  )r   r   r]  r^  r_  contains_pointsr;   ra  )rb  rc  r   r=   r  r  re  s          r"   test_contains_pointsri  T  s    


:sC
0C>F<<>D!!#I  &F##FIv>H  (F66&H$%%%r$   c                 "   t        j                  ddg      }t        j                  ddg      }dt        j                  d<   | j	                         }t        j                  |dd      }t        j                  ||d   |d	   
      }|j                  |       |j                  |       |j	                         }t        j                  |dd      }t        j                  ||j                  dz  |z  z   ddt        j                  t        j                  |j                                     dz  t        j                  t        j                  |j                                     dz  d      }|j                  |       |j                  |       y )Nr>  rE  rn   figurerG  r   )r   r?   r@   r   r   )oxoyH   )r   r?   r@   r  ecr   )r;   rP   r   r   r   r   r	   r  rc   dpirN   mcolorsto_rgbr   )re   rf   r   dxya1rB   shadowa2s           r"   test_shadowrw  `  s9   	2r(	B
((B8
C #+CLL				B2b9D__Tc!fQ8FLLLL				B2b9Db 3&&b::gnnT%7%7%9:;b@::gnnT%7%7%9:;b@	F
 LLLLr$   c                  r    ddl m }   | ddd      }t        j                         \  }}t        d|fd|f      }y )Nr   rT  i  r   {Gz?)rK  r   r   r
   )rK  dtimer   r   arrows        r"   test_fancyarrow_unitsr|  y  s6    !T1a EllnGCQJu6Er$   c                     t        j                         \  } }|j                  ddddddd      }t        j                  ddgdd	gd
dgddgddgdd
gd	dgddgg      }t        j
                  |t        j                  |j                  d            sJ t        j                  ddgddgddgddgddgddgddgddgg      }|j                  ddddddd       t        j
                  |t        j                  |j                  d            sJ y )Nr   r&   r   r   r   )head_length
head_widthr?   gGz+@g33333$@gL#@g\(\$@gp=
ף#@g
ףp=
?g
ףp=
ǿr(   g(\µ0@gGz.@g\(\?g(\?   )r  r  dxdyr?   r  r~  )	r   r   r{  r;   rP   allcloseroundr   set_data)r   r   r{  	expected1	expected2s        r"   test_fancyarrow_setdatar    s/   llnGCHHQ2rqQbHIEu~~~e}~e}e}u~	I ;;y"((5;;":;;;u~u~u~t}t}u~u~u~	I 
NN
qRBaA1   ;;y"((5;;":;;;r$   zlarge_arc.svg)r  c                  r   t        j                  dd      \  } \  }}d}d}d}||fD ]F  }t        ||f||dd      }|j                  |       |j	                          |j                  d       H |j                  d	d
       |j                  dd       |j                  dd       |j                  dd       y )Nr   r(      ii  r   )r   colorequalr   r-   r   rq   iXiPF  ii  )r   r   r   rc   set_axis_off
set_aspectr   r   )r   r@  rA  r  r  diameterr   as           r"   test_large_arcr    s    ll1a(OC#sAAHCj A(q<
Q

g	 LLALLA LLLLr$   zall_quadrants_arcs.svgc                     t        j                  dddd      \  } }d}d}d}d}t        |j                         |      D ]>  \  }\  }}d	}	t        d
d
t	        j
                  d      z  f||f      D ]  \  }
}t        ||	      D ]w  \  }\  }}t        ||z  |
z  ||z  |
z  f||z  ||z  dd| d|z   t	        j                  t	        j                  ||            dz  d| d| 	      }|j                  |       y dz   }	 |j                  | dz  |dz         |j                  | dz  |dz         |j                  d	d       |j                  d	d       |j                          |j!                  d       A y )Nr(   F)r&   r&   )squeezefigsizei ))r}   r}   )r}   r   r`   )r   r}   ))r   r   )r   r   )r   r}   )r}   r   )r
  )r(   rn   )r(   ry  )r(   gMbP?r   gH.?)rP  r   Cr   r   zbig )r   r  zorderrL   labelgidi  r   )r  r  )r   r   zipravelr;   sqrtr   r   rad2degarctan2rc   r   r   axhlineaxvliner  r  )r   ax_arrscalediag_centerson_axis_centersskewsr   sxsyr   prescalecentersjx_signy_signr  s                   r"   test_rotated_arcsr    s   ,,q!UHEKCE7L8O9EFLLNE2 HR!$i)rwwqz1I%J'6&E"G 	Hg'0'B  ##FFe^h.e^h.0BJBJaS'q5**RZZ%?@3F *qc
 Q  !A#	$ 	UFTM54<0
UFTM54<0


1C
 


1C
 

g3r$   c                      t        j                  t        d      5  t        ddddd       d d d        y # 1 sw Y   y xY w)NzGot unknown shape: 'foo'matchr   r>  foo)shape)rU  rV  
ValueErrorr   r   r$   r"   test_fancyarrow_shape_errorr    s6    	z)C	D 01ac/0 0 0s   6?z
fmt, match))r  zUnknown style: 'foo')z	Round,fooz%Incorrect style argument: 'Round,foo'c                 z    t        j                  t        |      5  t        |        d d d        y # 1 sw Y   y xY w)Nr  )rU  rV  r  r   )fmtr  s     r"   test_boxstyle_errorsr    s.    
 
z	/   s   1:annulus)baseline_imagesr]   c            
          t        j                         \  } }t        dddd      }t        ddddd	d
dd      }|j                  |       |j                  |       |j	                  d       y )Nr\  r>  皙?gr  r   rE  rn   r   mrp   r   xxxr  ro  r   r  r  )r   r   r   rc   r  r   r   cirrb  s       r"   test_annulusr    sb     llnGC
*c4C
0C
*j#rS5:CLLLLMM'r$   c            
      >   t        j                         \  } }t        dddd      }t        ddddd	d
dd      }|j                  |       |j                  |       |j	                  d       d|_        d|_        d|_        d|_        d|_        d|_        d|_        y )Nr=  r=  r>  ry  r  r  r  rn   r   r  rp   r   r  r  r  r\  r  r  r   )	r   r   r   rc   r  r   radiir?   rL   r  s       r"   test_annulus_settersr    s     llnGC
(C#
.C
(FCS5:CLLLLMM'CJCICICJCICICIr$   c            
         t        j                         \  } }t        dddd      }t        ddddd	d
dd      }|j                  |       |j                  |       |j	                  d       d|_        |j                  d       |j                  d       |j                  dk(  sJ d|_	        d|_        |j                  d       |j                  d       |j                  dk(  sJ d|_	        d|_
        y )Nr  r>  ry  r  r  r  rn   r   r  rp   r   r  r  r  r\  )r>  r>  r  rE  r  r   )r   r   r   rc   r  r   set_semimajorset_semiminorr  r?   rL   r  s       r"   test_annulus_setters2r    s     llnGC
(C#
.C
(FCS5:CLLLLMM'CJcc99
"""CICJcc99
"""CICIr$   c                      ddg} t        | | g      j                  }t        j                  t	        | g      j                         j                  |k(        sJ y )Nr   )r   extentsr;   ra  r   get_extents)rd  correct_extentss     r"   test_degenerate_polygonr  !  sL    FEE5>*22O66'5'"..088OKLLLr$   kwarg)rs   r   c                     t        j                  t        d      5  t        dddi| di d d d        y # 1 sw Y   y xY w)NzQSetting the 'color' property will override the edgecolor or facecolor properties.r  r  r   r   )rU  warnsUserWarningr   )r  s    r"   test_color_override_warningr  '  sC    	kE
F 1 	0G0w/01 1 1s   5>c                  j    t        t        j                  d            } | j                         g k(  sJ y )Nr  )r   r;   zerosrT   )polys    r"   test_empty_vertsr  /  s*    288F#$D>>r!!!r$   c                      t               } | j                  t        d           | j                         t        d    k(  sJ | j                  d        | j                         t        d   k(  sJ y )Nzpatch.antialiased)r   set_antialiasedr   get_antialiasedr   s    r"   test_default_antialiasedr  4  sk    GE	h':;;<  "84G+H'HIII	$  "h/B&CCCCr$   c                      t               } | j                  d       | j                  d        | j                         dk(  sJ y )Nr   r   )r   set_linestylerv   r  s    r"   test_default_linestyler  >  s<    GE		 G+++r$   c                  B    t               } | j                         dk(  sJ y )Nbutt)r   get_capstyler  s    r"   test_default_capstyler  E  s     GE6)))r$   c                  B    t               } | j                         dk(  sJ y )Nmiter)r   get_joinstyler  s    r"   test_default_joinstyler  J  s     GE G+++r$   autoscale_arcsvg)r]   r  r   c                  p   t        j                  ddd      \  } }t        ddddd      gt        d	d
ddd      gt        d	d
ddd      t        d	dddd      t        d	dddd      t        d	dddd      gf}t        ||      D ]-  \  }}|D ]  }|j	                  |        |j                          / y )Nr   rJ   )r   r   )r  r_   r   r.   )r   r   r\        ?r   r&   r'   g      @n   x   g      @r     g      @i6  i@  )r   r   r   r  rc   r%  )r   axs	arc_listsr   arcsarcs         r"   test_autoscale_arcr  O  s     ||Aq&1HC	VQ!B	/0	Zc"R	89	Zc"R	8	Zc#c	:	Zc#c	:	Zc#c	:	<=I Y' D 	CLL	
r$   )r\   r  pdfepsc                     t        ddgddddd      }t        ddgddddd      }t        j                  |gdd	      }|j                         j	                  |       | j                         j                  |       y )
Nr   r   r   <   r'   r   r   rL   r   r   )r   
facecolors
edgecolors)r   r   PatchCollectionr   rc   r   )re   rf   arc1arc2r   s        r"   test_arc_in_collectionr   a  sy    BxQq2>DBxQq2>D

&
&v&257C  &&&s+r$   c                    t        ddgddddd      }t        ddgddddd      }|j                         j                  |       | j                         j                  |       |j                  d       |j	                  d       y )	Nr   r   r   r  r'   r  r  r&   )r   r   rc   r   r7   )re   rf   r  r  s       r"   test_modifying_arcr  k  sx    BxQq2>DBxa"B?D  &!!$'NN2NN2r$   )Y__doc__numpyr;   numpy.testingr   r   rU  
matplotlibr&  matplotlib.patchesr   r   r   r   r	   r
   r   r   r   matplotlib.testing.decoratorsr   r   matplotlib.transformsr   matplotlib.pyplotpyplotr   r   r   r   rq  r   r   r   r   r   r8   r   sysplatformon_winr#   rG   r[   rk   ry   r   r   r   r   r  r'  r   r   r   r   r   r  r  r)  r1  rC  rI  rR  rY  rf  ri  rw  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     s    A  L L L O & 8 8 
,,'
!"-J-<`60 (* )*( (" )"BB >"# $6 )*= >< )*= >> 9% % +,$? @84 (! )!2)" =/tQO P8:?@ &'TK L$ ()*	" +	" )*'tL M$ ( ),	
4
&& ( )07<> ?#73 4& +,G<! =!H0
  ( 	
 9+5'B C 9+5'B C( 9+5'B C0M "<=1 >1"
D,*
,
 ?#T33   <=, >,  <= >r$   