
    EVf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&jN                  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jf                  ji                  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j                  j                  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j                  j                  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        ZYy)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      }|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      f/var/www/html/software/conda/envs/catlas/lib/python3.12/site-packages/matplotlib/tests/test_patches.pytest_Polygon_closer#      s.    a&1a&1a&	!BaVH}H 	4 A<<>>qxxz8,HHRLqxxz8, 	'Aqxxz2&HHXqxxz2& 	5!A||~qxxz2&HHRLqxxz2& 	&Aqxxz8,HHXqxxz8,    c                     ddg} d}d}d}t        | ||      }t        |j                         |       t        |j                         d       d}|j	                  d       t        |j                         |       t        |j                         d	       d
} t        j                         j                  g | t        j                  |       }|j                  |      }|j	                  |       t        |j                         |       | d   |dz  z   | d   |dz  z   g} t        | ||      }t        |j                         |       d}|j	                  d       t        |j                         |       t        |j                         |        d
} t        j                         j                  g | t        j                  |       }|j                  |      }|j	                  |       t        |j                         |       y )N
      r      )r&   r'   )   r'   )r*      )r&   r+   )g      %@   )r)   )r&   r,   )   r,   )r-   r'   Z   )	        4@!   r   ))      '@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        dddd      } t        | j                         ddg       t        | j                         ddg       t        dddd      } t        | j                         | j                  d   | j
                  dz  t        j                  d	      z  z   | j                  d   | j
                  dz  z   f| j                  d   | j
                  dz  t        j                  d	      z  z
  | j                  d   | j
                  dz  z
  fg       t        | j                         | j                  d   | j                  dz  z
  | j                  d   | j                  dz  t        j                  d	      z  z   f| j                  d   | j                  dz  z   | j                  d   | j                  dz  t        j                  d	      z  z
  fg       t        j                  | j                               \  }}t        j                  j                  ||z   dz  | j                         t        j                  | j                               \  }}t        j                  j                  ||z   dz  | j                         t        d
ddd      } t        j                  | j                               \  }}t        j                  j                  ||z   dz  | j                         t        j                  | j                               \  }}t        j                  j                  ||z   dz  | j                         y )Nr   r   r   r   r?   r@   angle        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!GMMA$5
$BBq!GMMA$55
 q!GMMA$5
$BBq!GMMA$55		
 ! q!GNNQ$66q!GNNQ$6$CC
 q!GNNQ$66q!GNNQ$6$CC		
 XXg**,-FBJJ""BGq='..AXXg--/0FBJJ""BGq='..A)t5QGXXg**,-FBJJ""BGq='..AXXg--/0FBJJ""BGq='..Ar$   c                     t        j                  ddg      } d}d}d}t        | |||      }t        | ||      }t         j                  |z  dz  }t        j                  t        j
                  |      t        j                  |       gt        j                  |      t        j
                  |      gg      }t        j                  ||j                         | z
        j                  | z   }t        |j                         |       y )N      ?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&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 )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9H
X5((( #uf-I A%%%i  E)))r$   c           
      J   | j                         }|j                         }d}d\  }}t        |||dddddgf      }t        |||dddg d	f      }|j                         dddgfk(  sJ |j                         dg d	fk(  sJ |j                  |       |j                  |       t        |||dddddgf      }	t        |||dddddgf      }
|	j                         dddgfk(  sJ |
j                         dddgfk(  sJ |j                  |	       |j                  |
       y )
N皙?r{   )皙?r|   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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)rP   r(   rI   r   r   r   )r	   rc   r   r;   roll)pos_verticesneg_verticess     r"   test_negative_rectr      sW     Xq!,668"=LVR,668"=Lrww|Q2LAr$   clip_to_bboxc                  *   t        j                         \  } }|j                  ddg       |j                  ddg       t        j
                  j                  d      j                         }|xj                  ddgz  c_        |xj                  ddgz  c_        t        j
                  j                         j                         }|xj                  ddgz  c_        |xj                  dd	gz  c_        t        j
                  j                  ||      }t        j                  |d
dd      }|j                  |       t        j                  ddgddgg      }|j!                  |      }t        j                  |d
ddd      }|j                  |       y )Nir'   ijd   r-   r&         i      ?coralnone)alpha	facecolorr   ig     `S2   i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      sD   llnGCKKb	KKs::''*335DMMb#YMMMaWMJJ""$--/E	NNr3iN	NNr3iNzz,,T59Hw&BELLc5\B:67D''-K%%3'a7LL LLr$   patch_alpha_coloringT)remove_textc                     t         j                  j                  d      } t         j                  j                         }t	        j
                  |j                  | j                  ddd   g      }t	        j
                  |j                  | j                  g      }t        j                  ||      }t        j                  |dz   |      }t        j                         }t        j                  |gdddd	      }|j                  |       t        j                  |dddd
      }|j                  |       |j!                  dd       |j#                  dd       y)z
    Test checks that the patch and collection are rendered with the specified
    alpha values in their facecolor and edgecolor.
    r~   Nr   r   r   dashdotr   r   r   r   r   r   r   g      ?r   
linestylesr   r   r   r   r   r   r(   r   r   r   r   r;   concatenater   codesr   axesmcollectionsPathCollectionadd_collectionr   r   rp   r   r   	starcirclevertsr   	cut_star1	cut_star2r   colr   s	            r"   test_patch_alpha_coloringr     s    ::''*DZZ##%FNNFOOT]]4R4-@ABENNFLL$**56E

5%(I

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

5%(I

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

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

5%(I

519e,I	B

%
%	!3 4y2C c1y2E LLKKAKKAr$   c                     t         j                  j                  d      } t         j                  j                         }t	        j
                  |j                  | j                  d d d   g      }t	        j
                  |j                  | j                  g      }g d}t        j                         \  }}t        |      D ]I  \  }}t        j                  ||z   |      } t        j                  | d|dd      }	|j                  |	       K |j                  ddz   g       |j                  d|dz   g       |j                   j#                          y )	Nr~   r   )---z-.:soliddashedr   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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  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   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)rI   rn   
set_center)r   r-   
set_radius)r(   rP   	set_width)r   rN   
set_theta1)-   r   
set_theta2)rS   r   r?   theta1theta2r    )itemsr   Wedgegetattr)	
param_dictkv	init_argswattrold_vnew_vfuncs	            r"   test_wedge_movementr    s    :+.12	4J &0%5%5%78TQAaD8I8##A&0&6&6&8 )""ueTq$5(((4q$5((() 9s   Bwedge_rangegffffff?)r   tolc            
      b   t        j                         } d}ddgddg||dz   gddgd	d
gddgddgddgddgg	}t        |      D ]G  \  }\  }}|dz  }|dz  }t        j                  |dz  |dz  fd||ddd      }| j                  |       I | j                  dd       | j                  dd       y )Ngo͂@g,(J@g 7
m@g,(J@gm7
m@r]   r   h  r.   i  iL   i|  r   .   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 	e KKAKKAr$   c                  p   t        j                  dd      } t        |       dk(  sJ t        j                  dddd      } t        |       dk(  sJ t        j                  dddd      } t        |       d	k(  sJ t        j
                  ddddd
      } t        |       dk(  sJ t        j                  ddddd
d      } d}t        |       |k(  sJ t        j                  dddd      } d}t        |       |k(  sJ t        j                  ddd      } t        |       dk(  sJ t        j                  ddd      } t        |       dk(  sJ t        j                  ddd      } t        |       dk(  sJ t        j                  g dd      }t        j                  |      } t        |       dk(  sJ t        j                  t        j                   d             } t        |       d!k(  sJ ddgddgddgg}t        j                  |      } t        |       d"k(  sJ t        j"                  |#      } t        |       d$d% d&k(  sJ t        j"                  dd      } t        |       d'k(  sJ t        j$                  ddd(      } t        |       d)k(  sJ t        j&                  | dd      }t        |      d*k(  sJ y$)+z
    Check that patches have nice and working `str` representation.

    Note that the logic is that `__str__` is defined such that:
    str(eval(str(p))) == str(p)
    r   r(   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q62222F!AQ?Aq6EEEEfAaqAAq6GGGGf!AQGAq6MMMMa1QOAOHq6XFfAQ?A?Hq6X15Aq6JJJJ&rBAq6EEEEa:Aq6@@@@ ::.t<D4 Aq6----&)*Aq6\!!!FQFQF#DAq6++++  d+Aq6#2;7777  0Aq66666  8Aq666661a Aq6>>>>r$   multi_color_hatch)r   stylec            	      .   t        j                         \  } }|j                  t        d      t        dd            }t	        |      D ];  \  }}|j                  d       |j                  d|        |j                  d       = |j                          |j                  d       t        d      D ]U  }t        j                  j                  dd| i      5  t        |d	z
  dfd
ddd      }d d d        |j                         W y # 1 sw Y   xY w)Nr   r   r~   r   C/Fzhatch.colorg?r|   z//)hatchfc)r   r   barranger   set_facecolorset_edgecolor	set_hatchautoscale_view	autoscalemplr$  contextr	   rp   )r   r   rectsr   rB   r   s         r"   test_multi_color_hatchr4    s    llnGCFF58U1a[)EU# 46"Qqc7#s
 LL1X YY1#w78 	I1v:q/2qHA	I
Q	I 	Is   DD	zunits_rectangle.pngc                     dd l mc m}  | j                          t	        j
                  d| j                  z  d| j                  z  fd| j                  z  d| j                  z        }t        j                         \  }}|j                  |       |j                  d| j                  z  d| j                  z  g       |j                  d| j                  z  d| j                  z  g       y )	Nr   r   r~   r   r(   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    ,,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(   rz   )?r>  r  ->)xyAxyBcoordsAcoordsBaxesAaxesB
arrowstyle)g333333?r[   )rM   皙?zaxes fractionr   )r@  rA  rB  rC  rF  )r   r   r   r  r
  get_yaxis_transform)r   ax1ax2conr@  rA  rB  rC  s           r"   test_connection_patchrL  7  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?rG  r  )iizfigure pixelsr?  r   )r@  rB  rD  rA  rC  rF  shrinkBz
figure.dpisavefig.dpirN   r'   )	r   r   r  r
  r   r   r   r?   r@   )rr   rs   rI  rJ  rK  bbs         r"   test_connection_patch_figrR  J  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)rT  rU  r   r	   r   r   rp   )rT  rU  startdeltar   r   r   s          r"   test_datetime_rectangler[  a  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   rT  rV  r   i  r   )rT  pytestraises	TypeErrorr   r	   )rT  rY  dt_deltas      r"   test_datetime_datetime_failsrb  m  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   r[   ))rM   r   )rG  r   )r   r   re  )	r   r   get_pathget_transform_process_radiusr;   rU   contains_pointall)ellpointsr   r=   r  pointr   results           r"   test_contains_pointro  z  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 rd  )r   r   rf  rg  rh  contains_pointsr;   rj  )rk  rl  r   r=   r  r   rn  s          r"   test_contains_pointsrr    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 )NrG  rN  r{   figurerP  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    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   r]  i  r   {Gz?)rT  r   r   r
   )rT  dtimer   r   arrows        r"   test_fancyarrow_unitsr    s6    !T1a EllnGCQJu6Er$   c                     t        j                         \  } }|j                  ddddddd      }t        j                  ddgdd	gd
dgddgddgdd
gd	dgddgg      }t        j
                  |t        j                  |j                  d            sJ t        j                  ddgddgddgddgddgddgddgddgg      }|j                  ddddddd       t        j
                  |t        j                  |j                  d            sJ y )Nr   r&   r   r   r   )head_length
head_widthr?   gGz+@g33333$@gL#@g\(\$@gp=
ף#@g
ףp=
?g
ףp=
ǿr(   g(\µ0@gGz.@g\(\?g(\?   )r  r  dxdyr?   r  r  )	r   r   r  r;   rU   allcloseroundr   set_data)r   r   r  	expected1	expected2s        r"   test_fancyarrow_setdatar    s/   llnGCHHQ2rqQbHIEu~~~e}~e}e}u~	I ;;y"((5;;":;;;u~u~u~t}t}u~u~u~	I 
NN
qRBaA1   ;;y"((5;;":;;;r$   zlarge_arc.svg)r$  c                  r   t        j                  dd      \  } \  }}d}d}d}||fD ]F  }t        ||f||dd      }|j                  |       |j	                          |j                  d       H |j                  d	d
       |j                  dd       |j                  dd       |j                  dd       y )Nr   r(      ii  r   )r   colorequalr   r-   r   r~   iXiPF  ii  )r   r   r   rp   set_axis_off
set_aspectr   r   )r   rI  rJ  r  r  diameterr   as           r"   test_large_arcr    s    ll1a(OC#sAAHCj A(q<
Q

g	 LLALLA LLLLr$   zall_quadrants_arcs.svgc                     t        j                  dddd      \  } }d}d}d}d}t        |j                         |      D ]>  \  }\  }}d	}	t        d
d
t	        j
                  d      z  f||f      D ]  \  }
}t        ||	      D ]w  \  }\  }}t        ||z  |
z  ||z  |
z  f||z  ||z  dd| d|z   t	        j                  t	        j                  ||            dz  d| d| 	      }|j                  |       y dz   }	 |j                  | dz  |dz         |j                  | dz  |dz         |j                  d	d       |j                  d	d       |j                          |j!                  d       A y )Nr(   F)r&   r&   )squeezefigsizei ))r   r   )r   r   rn   )r   r   ))r   r   )r   r   )r   r   )r   r   )r  )r(   r{   )r(   r  )r(   gMbP?r   gH.?)rY  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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   rG  foo)shape)r^  r_  
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  )r^  r_  r  r   )fmtr  s     r"   test_boxstyle_errorsr    s.    
 
z	/   s   1:annulus)baseline_imagesrl   c            
          t        j                         \  } }t        dddd      }t        ddddd	d
dd      }|j                  |       |j                  |       |j	                  d       y )Nre  rG  皙?gr)  r   rN  r{   r   mr}   r   xxxr)  rx  r   r(  r  )r   r   r   rp   r  r   r   cirrk  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 )NrL   rG  r  r  r  r  r{   r   r  r}   r   r  r  r  re  r  r  r   )	r   r   r   rp   r  rS   radiir?   rK   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 )NrL   rG  r  r  r  r  r{   r   r  r}   r   r  r  r  re  )rG  rG  r  rN  r  r   )r   r   r   rp   r  rS   set_semimajorset_semiminorr  r?   rK   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;   rj  r   get_extents)rm  correct_extentss     r"   test_degenerate_polygonr  T  sL    FEE5>*22O66'5'"..088OKLLLr$   kwarg)r   r   c                     t        j                  t        d      5  t        dddi| di d d d        y # 1 sw Y   y xY w)NzQSetting the 'color' property will override the edgecolor or facecolor properties.r  r  r   r   )r^  warnsUserWarningr   )r  s    r"   test_color_override_warningr  Z  sC    	kE
F 1 	0G0w/01 1 1s   5>c                  j    t        t        j                  d            } | j                         g k(  sJ y )Nr  )r   r;   zerosrc   )polys    r"   test_empty_vertsr  b  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  g  sk    GE	h':;;<  "84G+H'HIII	$  "h/B&CCCCr$   c                      t               } | j                  d       | j                  d        | j                         dk(  sJ y )Nr   r   )r   set_linestyler   r  s    r"   test_default_linestyler  q  s<    GE		 G+++r$   c                  B    t               } | j                         dk(  sJ y )Nbutt)r   get_capstyler  s    r"   test_default_capstyler  x  s     GE6)))r$   c                  B    t               } | j                         dk(  sJ y )Nmiter)r   get_joinstyler  s    r"   test_default_joinstyler  }  s     GE G+++r$   autoscale_arcsvg)rl   r$  r   c                  p   t        j                  ddd      \  } }t        ddddd      gt        d	d
ddd      gt        d	d
ddd      t        d	dddd      t        d	dddd      t        d	dddd      gf}t        ||      D ]-  \  }}|D ]  }|j	                  |        |j                          / y )Nr   rP   )rO   r   )r  rI   r   r.   )r   r   re        ?r   r&   r'   g      @n   x   g      @r     g      @i6  i@  )r   r   r   r  rp   r0  )r   axs	arc_listsr   arcsarcs         r"   test_autoscale_arcr    s     ||Aq&1HC	VQ!B	/0	Zc"R	89	Zc"R	8	Zc#c	:	Zc#c	:	Zc#c	:	<=I Y' D 	CLL	
r$   )rk   r  pdfepsc                     t        ddgddddd      }t        ddgddddd      }t        j                  |gdd	      }|j                         j	                  |       | j                         j                  |       y )
Nr   r   r   <   r'   r   r   rK   r   r   )r   
facecolors
edgecolors)r   r   PatchCollectionr   rp   r   )rr   rs   arc1arc2r   s        r"   test_arc_in_collectionr    sy    BxQq2>DBxQq2>D

&
&v&257C  &&&s+r$   c                    t        ddgddddd      }t        ddgddddd      }|j                         j                  |       | j                         j                  |       |j                  d       |j	                  d       y )	Nr   r   r   r  r'   r   r  r&   )r   r   rp   r   r7   )rr   rs   r  r  s       r"   test_modifying_arcr    sx    BxQq2>DBxa"B?D  &!!$'NN2NN2r$   )Z__doc__numpyr;   numpy.testingr   r   r^  
matplotlibr1  matplotlib.patchesr   r   r   r   r	   r
   r   r   r   matplotlib.testing.decoratorsr   r   matplotlib.transformsr   matplotlib.pyplotpyplotr   r   r   r   rz  r   r   r   r   r   r8   r   sysplatformon_winr#   rG   rY   rj   rx   r   r   r   r   r   r$  r2  r   r   r   r   r  r  r"  r4  r;  rL  rR  r[  rb  ro  rr  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     s    A  L L L O & 8 8 
,,'
!"-J-<`0Bf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$   