
    ^j`j                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dlm	Z
 d dlZd dlZd dlmZmZ d dlmZ d dlmZ d dlZd dlmZ d dlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+ d	 Z,d
 Z-d Z.d Z/d Z0d Z1dddi ejd                  d      fdddd ejd                  d      fdddd ejd                  d      fdddi ejd                  d      fdddd ejd                  d      fdddd ejd                  d      fgZ3g dZ4ejj                  jm                  de3e4      d        Z7d Z8d Z9d Z:d Z;d Z<d  Z=ejj                  jm                  d! e> e=d"                  d#        Z?ejj                  jm                  d$ e> e=d%                  d&        Z@d' ZAejj                  jm                  d(d)d*eBfd+d, ej                  d-      d-fd.d/eBfd-geBfg      d0        ZDejj                  jm                  d1d2d3eBfd+d, ej                  d-      d-fd.d/eBfd-geBfg      d4        ZEd5 ZFd6 ZGd7 ZHejj                  j                  ej                  d8k7  d9:      d;        ZKejj                  j                  ej                  d8k7  d9:      d<        ZLejj                  j                  ej                  d8k(  xr  ej                          d=:      d>        ZNd? ZOejj                  jm                  d@g dA      dB        ZPejj                  jm                  d@g dC      dD        ZQejj                  jm                  d@g dE      dF        ZRejj                  jm                  d@g dG      dH        ZSejj                  jm                  d@dIdJg      dK        ZTejj                  jm                  dLdMdNdOdPdQdRdSdTdUdVdWgfg      dX        ZUdY ZVdZ ZWd[ ZXy)\    N)mock)cyclerCycler)parse)_api_c_internal_utils)rcsetup)validate_boolvalidate_colorvalidate_colorlist_validate_color_or_linecolorvalidate_cyclervalidate_floatvalidate_fontstretchvalidate_fontweightvalidate_hatchvalidate_hist_binsvalidate_intvalidate_markeveryvalidate_stringlistvalidate_sketch_validate_linestyle_listify_validator)subprocess_run_for_testingc                    t        j                  dd       t        j                  dd       t         j                  d   }t         j                  d   }| d	z  }|j                  d
d       t        j                  d| i      5  t         j                  d   | k(  sJ 	 d d d        t         j                  d   |k(  sJ t        j                  |      5  t         j                  d   dk(  sJ 	 d d d        t         j                  d   |k(  sJ t        j                  |ddi      5  t         j                  d   dk(  sJ 	 d d d        t         j                  d   |k(  sJ t        j                  ddi      d        } |         |        t        j
                  |       t         j                  d   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)NtextF)usetexlines   )	linewidthtext.usetexlines.linewidthtest_rcparams.rczlines.linewidth: 33utf-8encodingrcfname!   ,   )r*   r(   c                  4    t         j                  d   dk(  sJ y )Nr"   r,   mplrcParams     i/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/matplotlib/tests/test_rcparams.pyfuncztest_rcparams.<locals>.func?   s    ||-."444r2   )r/   r(   r0   
write_text
rc_contextrc_file)tmp_pathr   r    rcpathr4   s        r3   test_rcparamsr:   %   s   FF6% FF7b!\\-(F./I**F
+g> 
Mv:6	7 ;||M*6z:::;<<&&000 
f	% 5||-."4445<<)*i777 
f*;R)@	A 5||-."4445<<)*i777 	^^&+,5 -5 	FF KK<<)*b0001; ;
5 5
5 5s$   F=G
*G=G
GGc                  B   t        j                  ddgdddd      } dj                         }t        |       }||k(  sJ dj                         }t	        |       |k(  sJ d	d
gt        | j                  d            k(  sJ dgt        | j                  d            k(  sJ y )NzZapf Chancerycursive
sans-serifnormal   )font.cursivefont.familyzfont.weight	font.sizez
RcParams({'font.cursive': ['Zapf Chancery', 'cursive'],
          'font.family': ['sans-serif'],
          'font.size': 12.0,
          'font.weight': 'normal'})zk
font.cursive: ['Zapf Chancery', 'cursive']
font.family: ['sans-serif']
font.size: 12.0
font.weight: normalr@   rB   zi[vz]rA   family)r/   RcParamslstripreprstrsortedfind_alllist)r(   expected_repractual_reprexpected_strs       r3   test_RcParams_classrN   K   s    	'C&2&.$&( 
)B
' (.vx	  r(K-''' vx	  r7l""" K(F2;;w3G,HHHH?d2;;x#89999r2   c                      t        j                  ddi      } ddi}t        j                  t              5  | j                  |       d d d        y # 1 sw Y   y xY w)Nfigure.figsize)      @*   rQ   rR      )r/   rD   pytestraises
ValueErrorupdate)r(   bad_dicts     r3   test_rcparams_updaterZ   g   sM    	'3	4B ,/H	z	" 
		(  s   AAc                      t        j                  t              5  t        j                  ddi       d d d        y # 1 sw Y   y xY w)NrP   rS   )rU   rV   rW   r/   rD   r1   r2   r3   test_rcparams_initr\   o   s5    	z	" 7&567 7 7s	   ;Ac                      ddl m}  t        j                  t        d      5   |  | t        d            dd       d d d        y # 1 sw Y   y xY w)	Nr   )r   z3 were givenmatchrgb)color      )matplotlib.rcsetupr   rU   rV   	TypeErrorrJ   )ccls    r3   test_nargs_cyclerrg   t   s=    0	y	7 *Cd5k"Aq)* * *s   AAc                     t        j                         5  t        j                         5  t        j                  j                         } | D ]  }| |   t        j                  |<    	 d d d        t        j                         5  t        j                  t        j                         d d d        d d d        t        j                  t              5  t        d        d d d        t        j                  t              5  t        j                         5  dt        j                  d<   d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   BxY w# 1 sw Y   y xY w)NTzsvg.fonttype)r   'suppress_matplotlib_deprecation_warningr/   r6   r0   copydeepcopyrU   rV   rW   r
   )_copykeys     r3   test_Bug_2543rn   {   s&    
	5	5	7 (^^ 	/LL%%'E /$)#JS!/	/ ^^ 	(MM#,,'	(( 
z	" d	z	" 0^^ 	0+/CLL(	00 0	/ 	/	( 	(( ( 	0 	00 0sj   E<D7'E$E'EE=E3E'&E37E 	<EE	EEE$'E0	,E33E<facera   rinherit)ra   zaxes.facecolorgedge)ra   zaxes.edgecolor)zsame facecolorzinherited facecolordifferent facecolorzsame edgecolorzinherited edgecolorrt   zcolor_type, param_dict, target)idsc                 \   |j                  d      |d|  d<   d|  d}t        j                  |      5  t        j                         \  }}|j                  t        d      d       |j                         } t        |j                  |             |k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nra   zlegend.get_rc   test)label)
popr/   r6   pltsubplotsplotrangelegendgetattrlegendPatch)
color_type
param_dicttargetget_func_axlegs          r3   test_legend_colorsr      s     /9nnW.EJE*+j\'H	
	# >2
a'iik1ws13v===	> > >s   A$B""B+c                      dt         j                  d<   t         j                  j                  ddgddg      } | j	                         dk(  sJ y )Nrp   zlines.markerfacecolorrT   rb   )r/   r0   r   Line2Dget_markerfacecolorlns    r3   test_mfc_rcparamsr      F    ,/CLL()			1a&1a&	)B!!#s***r2   c                      dt         j                  d<   t         j                  j                  ddgddg      } | j	                         dk(  sJ y )Nrp   zlines.markeredgecolorrT   rb   )r/   r0   r   r   get_markeredgecolorr   s    r3   test_mec_rcparamsr      r   r2   c                      dt         j                  d<   t        j                         \  } }|j	                  d      }|j                         dk(  sJ y )Nrp   zaxes.titlecolorTitle)r/   r0   r{   r|   	set_title	get_color)r   r   titles      r3   test_axes_titlecolor_rcparamsr      sC    &)CLL"#LLNEArLL!E??###r2   c                     | dz  }|j                  dd       t        j                  dd      5  t        j                  |dd	      }d d d        j                  d
      dk(  sJ y # 1 sw Y    xY w)Nr#   ztimezone: UTCr$   r%   zlocale.getpreferredencodingz	UTF-32-BE)return_valueTFtimezoneUTC)r5   r   patchr/   rc_params_from_fileget)r8   r9   r(   s      r3   test_Issue_1713r      so    **F
o8	1	L :$$VT59:66*&&&: :s   A''A0c                  8    dD ]  } | t         j                  d<    y )N)
pngjpegtiffrawrgbappmsgibmppbmsvgzanimation.frame_formatr.   )fmts    r3   test_animation_frame_formatsr      s"    , 514-.5r2   c           !   #   
  K   t         g d dD        d dD        d dddg fD        d	t        d
g fdddgfddgfddgfddgfddgddgfdddgft        ddg      ddgft        j                  ddg      ddgff	t               t        fdt        ffd	t        t        d      d dddgddgdt        j                  d      fD        d dD        d	t        t        d      d dddgddgdt        j                  d      fD        d dD        d	t        dt        d d!      fd"t        d t        j                  d#         ft        d$d%d&g      t        d$d%d&g      fd't        d d!      t        d(g d)      z   fd*t        d d!      t        d+g d,      z   fd-t        d d!      t        d$d%d&g      z  ft        d.d%d&g      t        d$d%d&g      ft        dd/g0      t        d(dd/g      fd1dt        d d!      z  fd2dt        d d!      z  fd3t        d d!      t        d+g d,      z   fd4t        d d!      dz  fd5t        d t        d6            fd7t        d t        d!            fd8t        d t        d9            ffd:t        fd;t        fd<t        fd=t        fd>t        fd?t        fd@t        fdAt        fdBt        fdCt        fdDt        fdEt        fdFt        fdGt        fdHt        fdIt        fdJt        ft        dKg dL      t        ft        d g dM      t        ffd	t        dNdOt        fdPt        fdQt        ffd	t         dRg dSfg dSg dSfdTdUgfg dVdWdXgft        j                  g dY      t        j                  g dZ      gt        j                  g dYg dZg      ft        j                  g dYg dZg      t        j                  g dYg dZg      ffd[t        ffd	t"        d\d]t        fd^t        fd_t        fd`t        fdat        ffd	t$        dbdct        fddt        ffd	t&        dedfdgdhg d,fg d,g d,ft        j(                  di      t        j(                  di      ffdt        ffd	t*        djdkdldmdng d,g d,ft-        d      t-        d dd       ft-        dddo      t-        dddo      ffd,t.        fg dpt.        fg dqt.        fg drt.        fdst.        fdtt.        fdut.        fdvt.        fdwt.        fdxt.        fdyt.        fdzt.        fd{t.        fd|t.        fdxt.        fdt.        ft1               t.        ffd	t2        d}d~ddddddddddddddgdddgffg ddg dffdddgfdddgffdddgfdddgfffdt        fdt        fdj5                  d      t        fg d,t        fdt        fdddgft        fd ddgft        fdg d,ft        fddgdft        ff	d	f}|D ]2  }|d   }| r|d   D ]  \  }}|||f  |d   D ]  \  }}|||f  4 y w)Nc              3   $   K   | ]  }|d f 
 yw)TNr1   .0r   s     r3   	<genexpr>z/generate_validator_testcases.<locals>.<genexpr>   s      FQ4y F   )tyyesontrue1rT   Tc              3   $   K   | ]  }|d f 
 yw)FNr1   r   s     r3   r   z/generate_validator_testcases.<locals>.<genexpr>   s      Ha5z Hr   )fnnoofffalse0r   Fc              3   ,   K   | ]  }|t         f  y wNrW   r   s     r3   r   z/generate_validator_testcases.<locals>.<genexpr>   s      6 j/ 6   aardvarkrb   )	validatorsuccessfail za,babz
aardvark, zaardvark, ,)r   r   rT   )r   c              3   (   K   | ]
  }|d dgf  yw)rT   rb   Nr1   r   s     r3   r   z/generate_validator_testcases.<locals>.<genexpr>   s       : !Q[ :   z1, 2      ?      @)rT   rb   c              3   ,   K   | ]  }|t         f  y wr   r   r   s     r3   r   z/generate_validator_testcases.<locals>.<genexpr>   s       j/ r   )r   r   rT   rT   rb   rc   c              3   (   K   | ]
  }|d dgf  yw)r   r   Nr1   r   s     r3   r   z/generate_validator_testcases.<locals>.<genexpr>   s"      B #s_ Br   z1.5, 2.5)r   r   c              3   ,   K   | ]  }|t         f  y wr   r   r   s     r3   r   z/generate_validator_testcases.<locals>.<genexpr>   s      N j/ Nr   )r   r   r   r   Nzcycler("color", "rgb")ra   r`   zcycler("color", "Dark2")Dark2	linestyle---zW(cycler("color", ["r", "g", "b"]) +
                          cycler("mew", [2, 3, 5]))markeredgewidth)rb   rc      zcycler(c='rgb', lw=[1, 2, 3])r    r   z5cycler('c', 'rgb') * cycler('linestyle', ['-', '--'])lsr   )mewz2 * cycler('color', 'rgb')z2 * cycler('color', 'r' + 'gb')z"cycler(c='r' + 'gb', lw=[1, 2, 3])zcycler('color', 'rgb') * 2z6concat(cycler('color', 'rgb'), cycler('color', 'cmk'))rgbcmkzcycler('color', 'rgbcmk')[:3]zcycler('color', 'rgb')[::-1]bgr   zcycler("bleh, [])z1cycler('color', 'rgb') * * cycler('color', 'rgb')zCycler("linewidth", [1, 2, 3])z1cycler('c', [j.__class__(j) for j in ['r', 'b']])z2cycler('c', [j. __class__(j) for j in ['r', 'b']])z2cycler('c', [j.	__class__(j) for j in ['r', 'b']])z2cycler('c', [j.__class__(j) for j in ['r', 'b']])z9cycler('c', [j.__class__(j).lower() for j in ['r', 'b']])z-cycler('color', [x for x in ['r', 'g', 'b']])z1 + 2zos.system("echo Gotcha")z	import osz9def badjuju(a): return a; badjuju(cycler("color", "rgb"))zcycler("waka", [1, 2, 3])zcycler(c=[1, 2, 3])zcycler(lw=['a', 'b', 'c'])waka)rT   rc   r   )C1rp   rr   ))--|r   )\oOr   )/+*/.xr   r   r   z--_   Xzr,g,b)rp   rr   r   zr, ,rp   )r   rr   bluerr   r   )rT   r   r   r   rT   r   fish)
Nonenoner   r   )AABBCCz#AABBCC)AABBCC00z	#AABBCC00)tab:bluer   )C12r   )z	(0, 1, 0))              ?r   )r   r   )z(0, 1, 0, 1))r   r   r   r   )r   rT   r   rT   r   ztab:verybluez(0, 1)z(0, 1, 0, 1, 0)z(0, 1, none)z(0, 1, "0.5")))	linecolorr   )markerfacecolorr   )mfcr   )markeredgecolorr   )mecr   linemarker)autor   )fdr   )10
   1, 2, 3   )NNrT   rT   皙?r  )r  r  )r  r  rc   )rT   rb   333333?)r   rb   rc   )rT   rb   r   )r  皙?r  )r  rb   rc   )rT   r	  r  )rT   r  )r  rT   abc)rT   r   )r  r   r   )r   r  )r   r   )solidr  )r   r   )dashedr  )-.r  )dashdotr  ):r  )dottedr  r   ) r  r   r   )DoTtEdr  )z1, 3)r   )rT   rc   gGz?i  r   g     |@)rT   rb   rc   r   )r   g       @g      @g      @s   dottedr  zutf-16r   r   r   )r
   r   iternparraysetrW   r   r   r   r   r   r/   color_sequencesrJ   r   r   r   r   r   aranger   slicere   objectr   encode)validvalidation_testsvalidator_dictr   argr   
error_types          r3   generate_validator_testcasesr!     s    #I FDF IHFHI6&2r46	 *"Xc3Z( :,/"ZL1#j\2Cj3*- 3*-C:&c
3hhSz*S#J7	 5*%j/	 );:%SzAq6%rxx'79:		 )1=B)C:Sz)288J+?ABNLN		 &.We,.0Wc&9&9'&BCE[3+6[3+687gu-/;<> 6We,vk9/MMOMgu-kC;78: TC;/[3+68!Q(.A792Aw8N4NO7VGU=S9ST:We,vk9/MMO2F7E4JQ4NONWd8n575vgtE{7ST4fWd5k6RS7@ j/&
3F3 GGHLN CJ'-z:
+N /
;(*5/<&),j9'#34jA=CA	D %5*%j/
#%	 )/%7se_'#v7xx	*BHHY,?@XXy)457hh	956XXy)457 :& 	 %
 ":.Z($j1!:."J/		& 3 :&Z(
	 )%!++iimRYYr]3 z* 
	 )!%-+AhdAt 45Aq!neAq!n5 i(	*	*	*"I.	* ),Y'Y'I&Y'y)Y'y))$	"8Y'!	: *!3!#7!#9!5z%'7)*SkAe}#56"Q(<$=>1a&kA1v;/Aq6lR!QL1 z*j)??8,j9j)$!Q=*-1a&>:.y>:.FA;
+		I]~ + 1";/	-i8 -Vf,,- $2&#9 1Zj0011s   XXzvalidator, arg, targetTc                      | |      }t        |t        j                        r!t        j                  j	                  ||       y t        |t
              s||k(  sJ y t        |      t        |      k(  sJ y r   )
isinstancer  ndarraytestingassert_equalr   rJ   )r   r  r   ress       r3   test_validator_validr(    s]     C.C&"**%


V,'f}} CyDL(((r2   zvalidator, arg, exception_typeFc                 h    t        j                  |      5   | |       d d d        y # 1 sw Y   y xY wr   )rU   rV   )r   r  exception_types      r3   test_validator_invalidr+    s,     
~	& #  s   	(1c                  ~    d} t        j                  t        |       5  t        d       d d d        y # 1 sw Y   y xY w)NzJ'foo' is neither a color sequence name nor can it be interpreted as a listr^   zcycler('color', 'foo'))rU   rV   rW   r   )msgs    r3   %test_validate_cycler_bad_color_stringr.    s3    
VC	z	- 2012 2 2s   3<zweight, parsed_weight)boldr/  BOLD)d   r1  )100r1  r1  )g4@   z20.6c                     |t         u r.t        j                  t               5  t        |        d d d        y t        |       |k(  sJ y # 1 sw Y   y xY wr   )rW   rU   rV   r   )weightparsed_weights     r3   test_validate_fontweightr7    sO     
"]]:& 	('	( 	( #6*m;;;	( 	(   AAzstretch, parsed_stretch)expandedr9  EXPANDEDc                     |t         u r.t        j                  t               5  t        |        d d d        y t        |       |k(  sJ y # 1 sw Y   y xY wr   )rW   rU   rV   r   )stretchparsed_stretchs     r3   test_validate_fontstretchr>    sO     #]]:& 	* )	* 	* $G,>>>	* 	*r8  c                      t         j                  D  cg c]	  } d| v s|  }} |D ]%  } t        t         j                  |    t              r%J  y c c} w )Nkeymap)r/   r0   r#  rJ   )kkey_lists     r3   test_keymapsrC     sK    <<9a8q=9H9 1#,,q/40001 :s
   	AAc                      t         j                  d   dk7  sJ t        j                         5  dt         j                  d<   d d d        t         j                  d   dk(  sJ y # 1 sw Y   "xY w)Nbackendzmodule://aardvark)r/   r0   r6   r1   r2   r3   test_no_backend_reset_rccontextrF    s_    <<	"&9999		 6"5Y6<<	"&99996 6s   A""A+c                  v   t        j                  ddi      5  t         j                  d   du sJ t        j                  t
              5  t        j                  ddd      5  	 d d d        d d d        t         j                  d   du sJ 	 d d d        y # 1 sw Y   2xY w# 1 sw Y   6xY w# 1 sw Y   y xY w)Nr!   Fr'   T)r!   z	test.blah)r/   r6   r0   rU   rV   KeyErrorr1   r2   r3   test_rcparams_reset_after_failrI    s     
M51	2 4||M*e333]]8$ 	4d#KL 	 ||M*e3334 4 	 	4 4s;   1B/
B#$B&B#.B/B B##B,	(B//B8linuxz
Linux only)reasonc                    i t         j                  dddt        |       d}t        j                  t
        j                        5  t        t        j                  ddg|dt
        j                         d d d        y # 1 sw Y   y xY w)Nr   DISPLAYWAYLAND_DISPLAY
MPLBACKENDMPLCONFIGDIR-cz^import matplotlib;matplotlib.use('tkagg');import matplotlib.pyplot;matplotlib.pyplot.plot(42);T)envcheckstderr)osenvironrG   rU   rV   
subprocessCalledProcessErrorr   sys
executableDEVNULL)r8   rS  s     r3   .test_backend_fallback_headless_invalid_backendr]    sz    <RZZ <RS]<C 
z44	5 <"^^T+ 4
(:(:	<< < <s   /A>>Bc                    i t         j                  dddt        |       d}| dz  }|j                  d       t	        t
        j                  ddg|ddd	      j                  }|j                         j                         d
k(  sJ y )Nr   TkAggrM  matplotlibrczbackend_fallback: truerR  zTimport matplotlib.pyplot;matplotlib.pyplot.plot(42);print(matplotlib.get_backend());TrS  r   rT  capture_outputagg)
rV  rW  rG   r5   r   rZ  r[  stdoutstriplower)r8   rS  rc_pathrE  s       r3   +test_backend_fallback_headless_auto_backendrh  *  s    ARZZ AR #h-AC
 'G/0 )	
,	
 d$t= >DV  ==?  "e+++r2   headlessc                 z   t        t        j                        t        d      k\  rt        t              }ni }t        j
                  d
i | i t        j                  dt        |       d}t        t        j                  ddg|ddd      j                  }|j                         j                         d	k7  sJ y )Nz8.2.0)exc_typer   )rP  rQ  rR  a)  import matplotlib as mpl; sentinel = mpl.rcsetup._auto_backend_sentinel; assert mpl.RcParams({'backend': sentinel})['backend'] == sentinel; assert mpl.rcParams._get('backend') == sentinel; assert mpl.get_backend(auto_select=False) is None; import matplotlib.pyplot; print(matplotlib.get_backend())Tra  rc  )tkinter)parse_versionrU   __version__dictImportErrorimportorskiprV  rW  rG   r   rZ  r[  rd  re  rf  )r8   pytest_kwargsrS  rE  s       r3   test_backend_fallback_headfulrs  @  s     V''(M',BBk2
3]3
IRZZ
Ir3x=
IC(	
+	, d$t
= >DV  ==?  "e+++r2   c                 z    t         j                  j                  t         j                  j                                y r   )r/   r0   rX   rj   )monkeypatchs    r3   test_deprecationrv  [  s!    LL))+,r2   value)bestrT   r   g?ffffff?grz  z	(0.9, .7)c                 *    | t         j                  d<   y )N
legend.locr.   rw  s    r3   test_rcparams_legend_locr  b  s     "'CLLr2   )rx  rT   ry  r{  c                     | dz  }|j                  d|        t        j                  |      5  t        j                  d   |k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr`  zlegend.loc: r)   r}  r5   r/   r6   r0   r8   rw  rg  s      r3   "test_rcparams_legend_loc_from_filer  q  s[     'GeW-.	g	& 3||L)U2223 3 3   AA)r   r  z	(1, 2, 3)c                 z    | t         j                  d<   t         j                  d   dk(  sJ t        |       dk(  sJ y )Npath.sketchr   )r/   r0   r   r~  s    r3   test_validate_sketchr    s:    "'CLL<<&)3335!Y...r2   )rT   r   z1 2 3c                     t        j                  t        d      5  t        |        d d d        t        j                  t        d      5  | t        j
                  d<   d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)Nzscale, length, randomnessr^   r  )rU   rV   rW   r   r/   r0   r~  s    r3   test_validate_sketch_errorr    se    	z)D	E 	z)D	E ,&+]#, , , ,s   A(A4(A14A=r  z(1,2,3)c                     | dz  }|j                  d|        t        j                  |      5  t        j                  d   dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr`  zpath.sketch: r)   r  r   r  r  s      r3   #test_rcparams_path_sketch_from_filer    sY    'Gug./	g	& 8||M*i7778 8 8r  zgroup, option, alias, value)r   r    lwrc   )r   r   r   r  )r   ra   cwhite)axes	facecolorfcblack)figure	edgecolorecmagenta)r   r   r   r   )r   antialiasedaaFfontr=   sansVerdanac                 v    ||i}t        j                  | fi | |  d| }t         j                  |   |k(  sJ y )N.)r/   r(   r0   )groupoptionaliasrw  	rc_kwargsrcParams_keys         r3   test_rc_aliasesr    sE     IFF5IWAfX&L<<%...r2   c                      t        d t        j                         D              t        t        j                  j                               k(  sJ y )Nc              3   4   K   | ]  }|j                     y wr   )name)r   ps     r3   r   z2test_all_params_defined_as_code.<locals>.<genexpr>  s     6!qvv6s   )r  r	   _params_listr/   r0   keysr1   r2   r3   test_all_params_defined_as_coder    s6    6w33566#cll>O>O>Q:RRRRr2   c                      t        j                         D ]N  } t        j                  | j                  | j                        }|t         j
                  | j                     k(  rNJ  y r   )r	   r  _convert_validator_specr  r   _validators)paramr   s     r3   test_validators_defined_as_coder    sQ    %%' <33EJJP	G//

;;;;<r2   c                      t        j                         D ]M  } | j                  dk(  r| j                  t        j
                  | j                     k(  r>J | j                          y )NrE  )r	   r  r  defaultr/   rcParamsDefault)r  s    r3   test_defaults_as_coder    sU    %%' L::"}} 3 3EJJ ??KK?	Lr2   )Yrj   rV  rX  rZ  unittestr   r   r   packaging.versionr   rm  rU   
matplotlibr/   r   r   matplotlib.pyplotpyplotr{   matplotlib.colorscolorsmcolorsnumpyr  r	   rd   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   matplotlib.testingr   r:   rN   rZ   r\   rg   rn   to_rgbalegend_color_testslegend_color_test_idsmarkparametrizer   r   r   r   r   r   r!  rJ   r(  r+  r.  rW   r  r7  r>  rC  rF  rI  skipifplatformr]  rh  xdisplay_is_validrs  rv  r  r  r  r  r  r  r  r  r  r1   r2   r3   <module>r     s    	  
  ! 4   .  #      " :#1L:87
*0* gs^_W__S12yC8W__Ssc2OGOOC4HIgs^_W__S12yC8W__Ssc2OGOOC4HI	   9;M2  4>4>++$'5g1T 1:4@AC)C) 9:5ABDD
2 0ZRXXc]C Z	UJ3 << 2RXXc]C Z	UJ5 ??1:	4 CLLG+LA< B<  CLLG+LA, B,* LLGI$G$5$G$G$I I  ,,0-  # ''  # 33 "EF/ G/ "34, 5, 9i"898 :8 6+2113-/|)5	9 	/	/S<Lr2   