a
    ëÝEbòP  ã                   @   sˆ  d dl Z d dlZd dlmZ d dlZd dlZd dlmZ d dlmZ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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„ Z&d	d
„ Z'dd„ Z(dd„ Z)dd„ Z*dddie +d¡fddddœe +d¡fddddœe +d¡fdddie +d¡fddddœe +d¡fddddœe +d¡fgZ,g d¢Z-e
j.j/de,e-d�dd„ ƒZ0dd„ Z1d d!„ Z2d"d#„ Z3d$d%„ Z4d&d'„ Z5d(d)„ Z6e
j. /d*e6d+ƒ¡d,d-„ ƒZ7e
j. /d.e6d/ƒ¡d0d1„ ƒZ8e
j. /d2d3d4e9fd5d6e :d7¡d7fd8d9e9fd7ge9fg¡d:d;„ ƒZ;d<d=„ Z<d>d?„ Z=e
j.j>ej?d@kdAdB�dCdD„ ƒZ@e
j.j>ej?d@k�ote A¡  dEdB�dFdG„ ƒZBdS )Hé    N)ÚPath)Úmock)ÚcyclerÚCycler)Ú_apiÚ_c_internal_utils)Úvalidate_boolÚvalidate_colorÚvalidate_colorlistÚ_validate_color_or_linecolorÚvalidate_cyclerÚvalidate_floatÚvalidate_fontweightÚvalidate_hatchÚvalidate_hist_binsÚvalidate_intÚvalidate_markeveryÚvalidate_stringlistÚ_validate_linestyleÚ_listify_validatorc                 C   sŽ  t jddd� t jddd� t jd }t jd }t| ƒd	 }| d
¡ t jd| id��$ t jd | ksnJ ‚W d   ƒ n1 s‚0    Y  t jd |ksžJ ‚t j|d��" t jd dks¾J ‚W d   ƒ n1 sÒ0    Y  t jd |ksîJ ‚t j|ddid��$ t jd dk�sJ ‚W d   ƒ n1 �s,0    Y  t jd |k�sJJ ‚t  ddi¡dd„ ƒ}|ƒ  |ƒ  t  |¡ t jd dk�sŠJ ‚d S )NÚtextF)ÚusetexÚlinesé   )Ú	linewidthútext.usetexúlines.linewidthútest_rcparams.rczlines.linewidth: 33©Úrc)Úfnameé!   é,   )r    r   c                   S   s   t jd dksJ ‚d S )Nr   r"   ©ÚmplÚrcParams© r&   r&   ú^/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_rcparams.pyÚfunc;   s    ztest_rcparams.<locals>.func)r$   r   r%   r   Ú
write_textÚ
rc_contextZrc_file)Útmpdirr   r   Úrcpathr(   r&   r&   r'   Útest_rcparams!   s*    


204

r-   c                  C   s~   t  g d¢ddddœ¡} d ¡ }|t| ƒks0J ‚d ¡ }|t| ƒksHJ ‚dd	gt|  d
¡ƒksbJ ‚dgt|  d¡ƒkszJ ‚d S )N)zApple ChanceryZTextilezZapf ChanceryZcursivez
sans-serifÚnormalé   )úfont.cursiveúfont.familyzfont.weightú	font.sizea  
RcParams({'font.cursive': ['Apple Chancery',
                           'Textile',
                           'Zapf Chancery',
                           'cursive'],
          'font.family': ['sans-serif'],
          'font.size': 12.0,
          'font.weight': 'normal'})zˆ
font.cursive: ['Apple Chancery', 'Textile', 'Zapf Chancery', 'cursive']
font.family: ['sans-serif']
font.size: 12.0
font.weight: normalr0   r2   zi[vz]r1   Úfamily)r$   ÚRcParamsÚlstripÚreprÚstrÚsortedZfind_allÚlist)r   Zexpected_reprZexpected_strr&   r&   r'   Útest_RcParams_classG   s    
ú	r:   c               	   C   s|   t  ddi¡} ddi}t t¡�H tjtdd�� |  |¡ W d   ƒ n1 sP0    Y  W d   ƒ n1 sn0    Y  d S )Núfigure.figsize)ç      @é*   ©r<   r=   é   Úvalidate©Úmatch)r$   r4   ÚpytestÚraisesÚ
ValueErrorÚwarnsÚUserWarningÚupdate)r   Zbad_dictr&   r&   r'   Útest_rcparams_updateh   s    ÿrI   c                	   C   sj   t  t¡�L t jtdd�� t ddi¡ W d   ƒ n1 s>0    Y  W d   ƒ n1 s\0    Y  d S )Nr@   rA   r;   r>   )rC   rD   rE   rF   rG   r$   r4   r&   r&   r&   r'   Útest_rcparams_initq   s    ÿrJ   c               	   C   s<  t  ¡ �Ž t ¡ �2 tj ¡ } | D ]}| | tj|< q"W d   ƒ n1 sJ0    Y  t ¡ � t tj¡ W d   ƒ n1 s~0    Y  W d   ƒ n1 sœ0    Y  t t	¡� t
d ƒ W d   ƒ n1 sÎ0    Y  t t	¡�D t ¡ � dtjd< W d   ƒ n1 �s0    Y  W d   ƒ n1 �s.0    Y  d S )NTzsvg.fonttype)r   Z'suppress_matplotlib_deprecation_warningr$   r*   r%   ÚcopyÚdeepcopyrC   rD   rE   r   )Z_copyÚkeyr&   r&   r'   Útest_Bug_2543w   s    


.
H&
rN   ÚfaceÚcolorÚrÚinherit)rP   zaxes.facecolorÚgÚedge)rP   zaxes.edgecolor)zsame facecolorzinherited facecolorúdifferent facecolorzsame edgecolorzinherited edgecolorrU   zcolor_type, param_dict, target)Úidsc                 C   sŒ   |  d¡|d| › d�< d| › d�}t |¡�L t ¡ \}}|jtdƒdd� | ¡ }t|j	|ƒƒ |ksjJ ‚W d   ƒ n1 s~0    Y  d S )NrP   zlegend.Úget_é   Útest)Úlabel)
Úpopr$   r*   ÚpltÚsubplotsZplotÚrangeZlegendÚgetattrZlegendPatch)Ú
color_typeZ
param_dictÚtargetZget_funcÚ_ÚaxÚlegr&   r&   r'   Útest_legend_colorsŸ   s    re   c                  C   s4   dt jd< t j ddgddg¡} |  ¡ dks0J ‚d S )NrQ   zlines.markerfacecolorr?   é   )r$   r%   r   ÚLine2DZget_markerfacecolor©Úlnr&   r&   r'   Útest_mfc_rcparams¬   s    
rj   c                  C   s4   dt jd< t j ddgddg¡} |  ¡ dks0J ‚d S )NrQ   zlines.markeredgecolorr?   rf   )r$   r%   r   rg   Zget_markeredgecolorrh   r&   r&   r'   Útest_mec_rcparams²   s    
rk   c                  C   s4   dt jd< t ¡ \} }| d¡}| ¡ dks0J ‚d S )NrQ   zaxes.titlecolorZTitle)r$   r%   r\   r]   Ú	set_titleÚ	get_color)rb   rc   Útitler&   r&   r'   Útest_axes_titlecolor_rcparams¸   s    

ro   c                 C   sl   t | ƒd }|jddd� tjddd�� t |dd¡}W d   ƒ n1 sL0    Y  | d	¡d
kshJ ‚d S )Nr   ztimezone: UTCz	UTF-32-BE)Úencodingzlocale.getpreferredencoding)Zreturn_valueTFÚtimezoneÚUTC)r   r)   r   Úpatchr$   Zrc_params_from_fileÚget)r+   r,   r   r&   r&   r'   Útest_Issue_1713¿   s
    ,ru   c                  C   s   dD ]} | t jd< qd S )N)
ZpngZjpegZtiffÚrawZrgbaÚppmZsgiZbmpZpbmÚsvgzanimation.frame_formatr#   )Úfmtr&   r&   r'   Útest_animation_frame_formatsÇ   s    rz   c              !   c   s¤  t g dd„ dD ƒ¢dd„ dD ƒ¢R 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 ddg¡ddgff	tƒ tfdtfdtjft ddg¡tjffd
œt	t
dd�dd„ dddgddgdt d¡fD ƒdd„ dD ƒd
œt	tdd�dd„ dddgddgdt d¡fD ƒdd„ dD ƒd
œtd td!d"ƒftd#d$d%gƒtd#d$d%gƒfd&td!d"ƒtd'g d(¢ƒ fd)td!d"ƒtd*g d+¢ƒ fd,td!d"ƒtd#d$d%gƒ ftd-d$d%gƒtd#d$d%gƒftdd.gd/�td'dd.gƒffd0tfd1tfd2tfd3tfd4tfd5tfd6tfd7tfd8tfd9tfd:tfd;tfd<tfd=tfd>tftd?g d@¢ƒtftd!g dA¢ƒtffd
œtdBdCtfdDtfdEtffd
œtdFg dG¢fg dG¢g dG¢fdHdIgfg dJ¢dKdLgft g dM¢¡t g dN¢¡gt g dM¢g dN¢g¡ft g dM¢g dN¢g¡t g dM¢g dN¢g¡ffdOtffd
œtdPdQtfdRtfdStfdTtfdUtffd
œtdVdWtfdXtffd
œtdYdZd[d\g d+¢fg d+¢g d+¢ft d]¡t d]¡ffdtffd
œtd^d_d`dadbg d+¢g d+¢ftdƒtd dd ƒftdddcƒtdddcƒffd+tfg dd¢tfg de¢tfg df¢tfdgtfdhtfditfdjtfdktfdltfdmtfdntfdotfdptfdltfdtftƒ tffd
œtdqdrdsdtdudvdwdxdydzd{d|d}d~dd€gd�dd‚gffg dƒ¢d�g d„¢ffd�ddgfd�ddgffd	ddgfd	ddgfffdtfd…tfd† d‡¡tfg d+¢tfdt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 ]V}|dˆ }| �r||d‰ D ]\}}|||fV  �qbn |dŠ D ]\}}|||fV  �q„�qHd S )‹Nc                 s   s   | ]}|d fV  qdS )TNr&   ©Ú.0rb   r&   r&   r'   Ú	<genexpr>Ó   ó    z/generate_validator_testcases.<locals>.<genexpr>)ÚtÚyÚyesÚonÚtrueÚ1r?   Tc                 s   s   | ]}|d fV  qdS )FNr&   r{   r&   r&   r'   r}   Õ   r~   )ÚfÚnÚnoÚoffÚfalseÚ0r   Fc                 s   s   | ]}|t fV  qd S ©N©rE   r{   r&   r&   r'   r}   ×   s   ÿÚaardvarkrf   éÿÿÿÿ)Ú	validatorÚsuccessÚfailÚ za,bÚaÚbz
aardvark, zaardvark, ,)r“   r”   r?   )r?   rf   )r†   c                 s   s   | ]}|d dgfV  qdS )r?   rf   Nr&   r{   r&   r&   r'   r}   ì   s   ÿz1, 2ç      ø?ç      @c                 s   s   | ]}|t fV  qd S r‹   rŒ   r{   r&   r&   r'   r}   ï   s   ÿ)r�   ©r“   r?   ©r?   rf   rX   c                 s   s   | ]}|d dgfV  qdS )r•   r–   Nr&   r{   r&   r&   r'   r}   õ   s   ÿz1.5, 2.5)r•   r–   c                 s   s   | ]}|t fV  qd S r‹   rŒ   r{   r&   r&   r'   r}   ø   s   ÿ)r�   r—   r˜   r‹   Nzcycler("color", "rgb")rP   ÚrgbZ	linestyleú-ú--zW(cycler("color", ["r", "g", "b"]) +
                          cycler("mew", [2, 3, 5]))Zmarkeredgewidth)rf   rX   é   zcycler(c='rgb', lw=[1, 2, 3])r   r˜   z5cycler('c', 'rgb') * cycler('linestyle', ['-', '--'])Zlsrœ   )Zmewé   zcycler("bleh, [])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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'])Zwaka)r?   rX   rœ   )ZC1rQ   rS   ))ú--|rž   )ú\oOrŸ   )ú/+*/.xr    ©r’   r’   z--_é   ÚXzr,g,b)rQ   rS   r”   zr, ,rQ   )r’   rS   ÚbluerS   r¤   )r?   r   r   ©r   r?   r   Úfish)
©ÚNoneÚnone©r©   r©   )ZAABBCCz#AABBCC)ZAABBCC00z	#AABBCC00)útab:bluer«   )ÚC12r¬   )z	(0, 1, 0))ç        ç      ð?r­   )r¥   r¥   )z(0, 1, 0, 1))r­   r®   r­   r®   )©r   r?   r   r?   r¯   ztab:verybluez(0, 1)z(0, 1, 0, 1, 0)z(0, 1, none)z(0, 1, "0.5")))Ú	linecolorr°   )Úmarkerfacecolorr±   )Zmfcr±   )Úmarkeredgecolorr²   )Zmecr²   ÚlineÚmarker)Úautorµ   )Úfdr¶   )Ú10é
   z1, 2, 3é   )NN©r?   r?   ©çš™™™™™¹?r¼   )rº   rº   )r»   r»   rX   )r?   rf   ç333333Ó?)r“   rf   rX   )r?   rf   r“   )r¼   çš™™™™™É?r½   )r¼   rf   rX   )r?   r¾   r½   )r?   r¼   )r¼   r?   Úabc)r?   r“   )r¼   r”   r—   )r“   r¼   )rš   rš   )ÚsolidrÀ   )r›   r›   )ÚdashedrÁ   )ú-.rÂ   )ÚdashdotrÃ   )ú:rÄ   )ÚdottedrÅ   r¡   )ú rÆ   r§   rª   )ZDoTtEdrÅ   )z1, 3)r   )r?   rX   g®Gáz®ó?iÈ  r   g     €|@)r?   rf   rX   r�   )r®   g       @g      @g      @s   dottedrÅ   zutf-16r�   r�   r‘   )r   r   ÚiterÚnpÚarrayÚsetrE   r   ZMatplotlibDeprecationWarningr   r   r   r   r   r   r
   r	   r   r   Zaranger   ÚsliceÚ	TypeErrorÚobjectr   Úencode)ZvalidZvalidation_testsZvalidator_dictr�   Úargra   Z
error_typer&   r&   r'   Úgenerate_validator_testcasesÐ   s¶   ÿÿþ
ÿû

ø
ýõ

ÿÿÿü	

ÿÿÿüÿÿÿþÿÿÿÿÿñÿÿÿÿÿÿÿçæ6þý
ÿÿú	öüôÿù
ûøù	


ðöõ
øò€ Æ VrÐ   zvalidator, arg, targetTc                 C   sT   | |ƒ}t |tjƒr$tj ||¡ n,t |tƒs<||ksPJ ‚nt|ƒt|ƒksPJ ‚d S r‹   )Ú
isinstancerÈ   ZndarrayÚtestingZassert_equalr   r9   )r�   rÏ   ra   Úresr&   r&   r'   Útest_validator_valid°  s    
rÔ   zvalidator, arg, exception_typeFc                 C   s6   t  |¡� | |ƒ W d   ƒ n1 s(0    Y  d S r‹   )rC   rD   )r�   rÏ   Zexception_typer&   r&   r'   Útest_validator_invalid½  s    rÕ   zweight, parsed_weight)ÚboldrÖ   ZBOLD)éd   r×   )Ú100r×   r×   )gš™™™™™4@é   z20.6c                 C   sP   |t u r<t t ¡� t| ƒ W d   ƒ qL1 s00    Y  nt| ƒ|ksLJ ‚d S r‹   )rE   rC   rD   r   )ÚweightZparsed_weightr&   r&   r'   Útest_validate_fontweightÄ  s    (rÛ   c                  C   s2   dd„ t jD ƒ} | D ]}tt j| tƒsJ ‚qd S )Nc                 S   s   g | ]}d |v r|‘qS )Zkeymapr&   )r|   Úkr&   r&   r'   Ú
<listcomp>Ù  r~   z test_keymaps.<locals>.<listcomp>)r$   r%   rÑ   r9   )Zkey_listrÜ   r&   r&   r'   Útest_keymapsØ  s    rÞ   c                
   C   s´   t jddid��� t jd du s$J ‚t t¡�B t jdddœd�� W d   ƒ n1 sX0    Y  W d   ƒ n1 sv0    Y  t jd du s’J ‚W d   ƒ n1 s¦0    Y  d S )Nr   Fr   T)r   z	test.blah)r$   r*   r%   rC   rD   ÚKeyErrorr&   r&   r&   r'   Útest_rcparams_reset_after_failÞ  s    <rà   Úlinuxz
Linux only)Úreasonc                 C   sh   i t j¥dddt| ƒdœ¥}t tj¡�, tjtj	ddg|dtj
d� W d   ƒ n1 sZ0    Y  d S )Nr’   )ZDISPLAYZWAYLAND_DISPLAYÚ
MPLBACKENDÚMPLCONFIGDIRú-czBimport matplotlib;matplotlib.use('tkagg');import matplotlib.pyplotT)ÚenvÚcheckÚstderr)ÚosÚenvironr7   rC   rD   Ú
subprocessÚCalledProcessErrorÚrunÚsysÚ
executableÚDEVNULL)r+   ræ   r&   r&   r'   Útest_backend_fallback_headlessê  s    þÿúrñ   Zheadlessc                 C   sR   t  d¡ i tj¥dt| ƒdœ¥}tjtjddg|dd�}| 	¡  
¡ dksNJ ‚d S )	NÚtkinterr’   )rã   rä   rå   a  import matplotlib as mpl; sentinel = mpl.rcsetup._auto_backend_sentinel; assert mpl.RcParams({'backend': sentinel})['backend'] == sentinel; assert dict.__getitem__(mpl.rcParams, 'backend') == sentinel; import matplotlib.pyplot; print(matplotlib.get_backend())T)ræ   Úuniversal_newlinesZagg)rC   Zimportorskipré   rê   r7   rë   Úcheck_outputrî   rï   ÚstripÚlower)r+   ræ   Úbackendr&   r&   r'   Útest_backend_fallback_headfulù  s    
ÿ÷rø   )CrK   ré   Úpathlibr   rë   rî   Zunittestr   r   r   rC   Z
matplotlibr$   r   r   Zmatplotlib.pyplotZpyplotr\   Zmatplotlib.colorsÚcolorsZmcolorsÚnumpyrÈ   Zmatplotlib.rcsetupr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r-   r:   rI   rJ   rN   Zto_rgbaZlegend_color_testsZlegend_color_test_idsÚmarkZparametrizere   rj   rk   ro   ru   rz   rÐ   rÔ   rÕ   rE   rÉ   rÛ   rÞ   rà   ZskipifÚplatformrñ   Zdisplay_is_validrø   r&   r&   r&   r'   Ú<module>   sŠ   @&!	
ÿ
ÿø


ÿ
	 aÿ
ÿ
ö

þ