o
    i4`                     @   s~  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mZmZmZ d dlZd dlmZ d dlmZ d dlmZmZ G dd dZG d	d
 d
ZG dd dZdd Zdd Zedd Zdd Zddiddifddiddifddddddfddddddgiifdddddgidd fdddddddgiifddd!d"ddgidd#ffZddddddi fddiddiddddgiifddiddiddgid$d%fdd!d&dd!d&dd'dfdd!d&dd!d&d&d'dfdd!d&dd!d&d&d&dfdd!d&dd!d&d&ddfdd!d&dd!d&dd&ifdd!d&dd!d&d(d&iff	Zej !d)ed*d+ Z"ej !d,ed-d. Z#d/d0 Z$d1d2 Z%d3d4 Z&d5d6 Z'd7d8 Z(d9d: Z)d;d< Z*ej !d=e
+d>,d!d?dfe
+d>dfe
+d>e
+d!fgd@dA Z-dBdC Z.dDdE Z/dFdG Z0dHdI Z1dJdK Z2dLdM Z3dNdO Z4dPdQ Z5dRdS Z6dTdU Z7dVdW Z8ej !dXg dYdZd[ Z9d\d] Z:dS )^    N)ref)patchMock)datetime)assert_array_equalassert_approx_equalassert_array_almost_equal)MatplotlibDeprecationWarningdelete_masked_pointsc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Test_delete_masked_pointsc                 C   sB   t t tdtdd W d    d S 1 sw   Y  d S )Nza stringg      ?g      @)pytestraises
ValueErrorr
   nparangeself r   V/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/matplotlib/tests/test_cbook.pytest_bad_first_arg   s   "z,Test_delete_masked_points.test_bad_first_argc                 C   s^   g d}dddt jt jdg}t||\}}g d}t|t ||  t|t ||  d S )N)abcdef            )r   r   r      )r   nanr
   r   array)r   a1a2result1result2indr   r   r   test_string_seq   s   z)Test_delete_masked_points.test_string_seqc              	   C   s   t dddt dddt dddt dddt dddt dddg}tjjdddtjtjdgg dd	}t||}g d
}t|d t||  t|d ||   d S )Ni  r   r   r      r    r   FFTTFFmaskr   r   r    r   )r   r   mar"   r!   r
   r   
compressed)r   datesa_maskedactualr'   r   r   r   test_datetime!   s   
z'Test_delete_masked_points.test_datetimec                 C   sp   t jjdddt jt jdgg dd}tg d}t||}g d}t|d	 ||   t|d ||  d S )
Nr   r   r   r   r*   r+   )rgr   r   myr-   r   )	r   r.   r"   r!   mcolorsto_rgba_arrayr
   r   r/   )r   r1   a_rgbar2   r'   r   r   r   	test_rgba,   s   
z#Test_delete_masked_points.test_rgbaN)__name__
__module____qualname__r   r(   r3   r;   r   r   r   r   r      s
    r   c                   @   st   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )Test_boxplot_statsc                 C   s   t jd d| _d| _t jj| j| jfddd| _tg d| _t	
| j| _dd	d
ddt g dddddd
| _ddd| _ddt ddgd| _ddd| _ddd| _d S )Ni  %   r)         ?g      ?)sizemeansigma)rC   medq1q3iqrcilocihiwhislowhishiflierslabelgP$C@g@ÿg>zzD*@gjtxJ*@gDm(
@)Ӿ#W@79qU@gEɳE@gqמC@g]Y?g6 v-@gIQ;@g inޓ?)
rJ   rI   rH   rC   rE   rM   rF   rG   rL   rK   gN!@g?)rJ   rI   g =ɳE@rO   rP   )rL   rK   rM   geLM?)rK   rL   g,#W@)r   randomseednrowsncols	lognormaldatasorted
known_keyscbookboxplot_statsstd_resultsr"   known_nonbootstrapped_resknown_bootstrapped_ciknown_whis3_resknown_res_percentilesknown_res_ranger   r   r   r   setup7   s@   zTest_boxplot_stats.setupc                 C   s   t | jtsJ d S N)
isinstancer[   listr   r   r   r   test_form_main_listi   s   z&Test_boxplot_stats.test_form_main_listc                 C   s   | j D ]	}t|tsJ qd S rb   )r[   rc   dictr   resr   r   r   test_form_each_dictl   s   
z&Test_boxplot_stats.test_form_each_dictc                 C   s&   | j D ]}t|t| jksJ qd S rb   )r[   setrX   rg   r   r   r   test_form_dict_keysp   s   
z&Test_boxplot_stats.test_form_dict_keysc                 C   s0   | j d }| j D ]\}}t|| | q
d S )Nr   )r[   r\   itemsr   )r   rh   keyvaluer   r   r   test_results_baselinet   s   
z(Test_boxplot_stats.test_results_baselinec                 C   >   t j| jdd}|d }| j D ]\}}t|| | qd S )Ni'  )	bootstrapr   )rY   rZ   rV   r]   rl   r   r   resultsrh   rm   rn   r   r   r   test_results_bootstrappedy   
   z,Test_boxplot_stats.test_results_bootstrappedc                 C   rp   )Nr   whisr   )rY   rZ   rV   r^   rl   r   rr   r   r   r   test_results_whiskers_float   ru   z.Test_boxplot_stats.test_results_whiskers_floatc                 C   sB   t j| jddgd}|d }| j D ]\}}t|| | qd S )Nr   d   rv   )rY   rZ   rV   r`   rl   r   rr   r   r   r   test_results_whiskers_range   
   z.Test_boxplot_stats.test_results_whiskers_rangec                 C   sB   t j| jddgd}|d }| j D ]\}}t|| | qd S )Nr    _   rv   r   )rY   rZ   rV   r_   rl   r   rr   r   r   r   !test_results_whiskers_percentiles   r{   z4Test_boxplot_stats.test_results_whiskers_percentilesc                 C   sj   g d}t j| j|d}|d }t||D ]\}}|d |ks!J qt | j}|D ]}d|vs2J q*d S )N)Test1r   ardvarkr)   labelsr   rN   )rY   rZ   rV   zip)r   r   rs   rh   labr   r   r   test_results_withlabels   s   z*Test_boxplot_stats.test_results_withlabelsc                 C   sH   ddg}t t tj| j|d W d    d S 1 sw   Y  d S )Nr   r   r   )r   r   r   rY   rZ   rV   )r   r   r   r   r   test_label_error   s   "z#Test_boxplot_stats.test_label_errorc                 C   sH   t jjdd}tt t| W d    d S 1 sw   Y  d S )N)"   r   r   )rB   )r   rQ   normalr   r   r   rY   rZ   )r   rV   r   r   r   test_bad_dims   s   "z Test_boxplot_stats.test_bad_dimsc                 C   s   t jdd}t d|dg}tj|dd}tj|dd}|d d	 dks&J |d d
 dks0J t|d d ddg |d d	 dksEJ |d d
 dksOJ t|d d g  d S )N   )shapei   F)	autorangeTr   rK   rL   rM   )r   zeroshstackrY   rZ   r   )r   xbstats_falsebstats_truer   r   r   "test_boxplot_stats_autorange_false   s   z5Test_boxplot_stats.test_boxplot_stats_autorange_falseN)r<   r=   r>   ra   re   ri   rk   ro   rt   rx   rz   r}   r   r   r   r   r   r   r   r   r?   6   s    2r?   c                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )Test_callback_registryc                 C   s   d| _ t | _d S )Ntest)signalrY   CallbackRegistry	callbacksr   r   r   r   ra      s   zTest_callback_registry.setupc                 C   s   | j ||S rb   )r   connect)r   sfuncr   r   r   r      s   zTest_callback_registry.connectc                 C   s$   | j ji ksJ | j j i ksJ d S rb   r   _func_cid_mapr   r   r   r   is_empty      zTest_callback_registry.is_emptyc                 C   s$   | j ji ksJ | j j i ksJ d S rb   r   r   r   r   r   is_not_empty   r   z#Test_callback_registry.is_not_emptyc                 C   s   |    t }| | j|j}t|tksJ |   | | j|j}||ks)J |   t| j	j
dks7J t| j	j	dksAJ ~|    d S )Nr   )r   r   r   r   dummytypeintr   lenr   r   )r   mini_mecid1cid2r   r   r   test_callback_complete   s   z-Test_callback_registry.test_callback_completec                 C      d S rb   r   r   r   r   r   r         zTest_callback_registry.dummyc                 C   s"   t ttt dsJ d S )Nr   )hasattrpickleloadsdumpsrY   r   r   r   r   r   test_pickling   s   z$Test_callback_registry.test_picklingN)
r<   r=   r>   ra   r   r   r   r   r   r   r   r   r   r   r      s    r   c                 C   s   t  }|ddd  | t ddd  tt |dd W d    n1 s+w   Y  | t ddd  |dd d S )Nfooc                   S   r   rb   r   r   r   r   r   <lambda>       zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>"_get_running_interactive_frameworkc                   S   r   rb   r   r   r   r   r   r      r   zargument mismatchc                   S   s   dS )Nznot-noner   r   r   r   r   r      r   )rY   r   r   setattrr   r   	TypeErrorprocess)monkeypatchcbr   r   r   /test_callbackregistry_default_exception_handler   s   

r   c                    s   G dd dt  dd }dd } fdd}tjd d	}|d
| tj|d	}|d
| tj|d	}|d
| tjd|tg| g|tgg| S )Nc                   @      e Zd ZdS )z%raising_cb_reg.<locals>.TestExceptionNr<   r=   r>   r   r   r   r   TestException       r   c                   S      t rb   )RuntimeErrorr   r   r   r   raising_function   r   z(raising_cb_reg.<locals>.raising_functionc                   S   r   rb   )r   r   r   r   r   raising_function_VE   r   z+raising_cb_reg.<locals>.raising_function_VEc                    s   t | tr | rb   )rc   r   )excpr   r   r   transformer   s   
z#raising_cb_reg.<locals>.transformer)exception_handlerr   zcb, excp)		ExceptionrY   r   r   r   markparametrizer   r   )r   r   r   r   cb_oldcb_filtcb_filt_passr   r   r   raising_cb_reg   s$   r   c                 C   sL   |  tddd  t| |d W d    d S 1 sw   Y  d S )Nr   c                   S   r   rb   r   r   r   r   r   r     r   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>r   )r   rY   r   r   r   )r   r   r   r   r   r   .test_callbackregistry_custom_exception_handler  s   
"r   c                  C   s   dddd} g d}g d}g d}|t t|  ksJ |t t|  ks,J |t t|  ks9J |t|ksBJ |t|ksKJ d S )Nr   r   r   r   r   r   r   r   r   ))r   r   )r   r   )r   r   )rW   rY   sanitize_sequencekeysvaluesrl   )r   kvir   r   r   test_sanitize_sequence  s   r   r   r   	forbiddenrequiredr   r   )r   r   r   )r   allowedalias_mapping)r   )r   r   r   r   )r   r   )r   )r   r   )r   r   )r   r   zinp, kwargs_to_normc              	   C   sz   t t. t  tj| fi | W d    n1 sw   Y  W d    d S W d    d S 1 s6w   Y  d S rb   )r   r   r   rY   (_suppress_matplotlib_deprecation_warningnormalize_kwargs)inpkwargs_to_normr   r   r   test_normalize_kwargs_failC  s
   Pr   zinp, expected, kwargs_to_normc                 C   sH   t   |t j| fi |ksJ W d    d S 1 sw   Y  d S rb   )rY   r   r   )r   expectedr   r   r   r   test_normalize_kwargs_passJ  s   
"r   c               	   C   s   t td3} td d| _tjtdd td W d    n1 s$w   Y  W d    d S W d    d S 1 s<w   Y  d S )Nsys)return_valuez	\Adummy\Zmatchr   )	r   objectrY   r   	_getframer   warnsUserWarning_warn_external)mock_sysr   r   r   (test_warn_external_frame_embedded_pythonR  s   "r   c            	      C      t d} t d}t dd d d }t| ||\}}}t jg dtd}t jg dtd}t jg dtd}t|| t|| t|| t| |\}}t|| t|| d S )Nr)   r   r   r   r   r   r   r   dtyper   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   rY   pts_to_prestepasarrayfloatr   	r   y1y2xsy1sy2sx_target	y1_target	y2_targetr   r   r   test_to_prestepY     





r   c                  C      t g g } | jdksJ d S N)r   r   )rY   r   r   stepsr   r   r   test_to_prestep_emptym     r  c            	      C   r   )Nr)   r   r   r   r   )r   r   r   r   r   r   r   )r   r   rY   pts_to_poststepr   r   r   r   r   r   r   test_to_poststepr  r   r  c                  C   r   r  )rY   r  r   r  r   r   r   test_to_poststep_empty  r  r  c            	      C   r   )Nr)   r   )r         ?r	  rA   rA         @r
  r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   rY   pts_to_midstepr   r   r   r   r   r   r   test_to_midstep  r   r  c                  C   r   r  )rY   r  r   r  r   r   r   test_to_midstep_empty  r  r  args   r)   c                 C   s:   t t tj|   W d    d S 1 sw   Y  d S rb   )r   r   r   rY   r   )r  r   r   r   test_step_fails  s   "r  c            
         s  G dd d  fddt dD  \} }}}}}t }|j|  tt|d t|ks0J t|| t|ks=J |dd  D ]
}|| |sMJ qC||  |dd  D ]
}|| |rcJ qYt	
|dd  |dd  D ]\}}	|||	s~J qrd S )Nc                   @   r   )ztest_grouper.<locals>.dummyNr   r   r   r   r   r     r   r   c                       g | ]}  qS r   r   .0jr   r   r   
<listcomp>      z test_grouper.<locals>.<listcomp>r    r   r   )rangerY   Grouperjoinrj   rd   get_siblingsjoinedremove	itertoolsproduct)
r   r   r   r   r   objsr5   otherABr   r  r   test_grouper  s   $

$r$  c                     s   G dd d  fddt dD } t }|j|   |j}| D ]
}t||v s*J q |t| d  }| dd  D ]}|t| |u sEJ q9d S )Nc                   @   r   )z#test_grouper_private.<locals>.dummyNr   r   r   r   r   r     r   r   c                    r  r   r   r  r  r   r   r    r  z(test_grouper_private.<locals>.<listcomp>r    r   r   )r  rY   r  r  _mappingr   )r   r5   mappingobase_setr   r  r   test_grouper_private  s   
r)  c                  C   sj   t d} | j}dt|ksJ dt|ksJ t|}|dks#J dt|ks+J dt|ks3J d S )Nr    r   r   )r   r   flatnextrY   safe_first_element)r   itretr   r   r   test_flatiter  s   

r/  c                     s  G dd d t g d} t| dksJ  fddtdD }t |d} t| dks0J td}t |d} t| dksDJ  fd	dtd
D }t |d} t| dks^J tjd
d}t |d} t| dkstJ dgdgd
gg}t |d} t| t	sJ t| d tj
r| d jdksJ t| d tj
r| d jdksJ t| d tj
r| d jdksJ g dd
dgdgg}t |d} t| t	sJ t| d tj
r| d jdksJ t| d tj
r| d jdksJ t| d tj
r| d jdksJ G dd dtj
}tjdtd}|dt|jd}t |d} t| dks/J t| d |s9J g d}t |d} t| d t|ksPJ t| d tj
s[J d S )Nc                   @   r   )ztest_reshape2d.<locals>.dummyNr   r   r   r   r   r     r   r   r   )r   r   c                    r  r   r   r  r  r   r   r    r  z"test_reshape2d.<locals>.<listcomp>r    r   r    c                    s"   g | ]} fd dt dD qS )c                    r  r   r   r  r  r   r   r    r  z-test_reshape2d.<locals>.<listcomp>.<listcomp>r    r  r  r   r  r   r   r    s   " r   )r   r    )r    r   r   r   r   r   r   r)   )r   )r   c                       s(   e Zd Z fddZ fddZ  ZS )z%test_reshape2d.<locals>.ArraySubclassc                 3   s"    t   D ]}t|V  qd S rb   )super__iter__r   r"   )r   rn   	__class__r   r   r5    s   z.test_reshape2d.<locals>.ArraySubclass.__iter__c                    s   t t |S rb   )r   r"   r4  __getitem__)r   itemr6  r   r   r8    s   z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r<   r=   r>   r5  r8  __classcell__r   r   r6  r   ArraySubclass  s    r;  
   r   )r<  )r   buffer)	r   r   r   r   ddr   r   ffr   )rY   _reshape_2Dr   r   r  r   rQ   randrc   rd   ndarrayr   rV   r   )xnewr   r;  r   r   r  r   test_reshape2d  sJ   
"""""&		rD  c                 C   s   t ddd}| j|g dd}t|d}t|j|D ]\}}t j	|| qt ddd}| j|g dd}t|d}t|j|D ]\}}t j	|| qHd S )N   r<  r   r   )columnsr   )
r   r   reshape	DataFramerY   r@  r   Ttestingr   )pdXr   XnewrC  r   r   r   test_reshape2d_pandas+  s   rN  c                  C   s  d\} }}dg|  dg|  dg|  }d| f| | | | | fg}t ||ks+J d\}}|dg|  }t ||ks?J dg| |d |   }|||  f||  | ||  | | fg}t ||kshJ |dg|  }t ||ksxJ t dgd g ksJ t g g ksJ d S )N)r   r)   r    TFr   )r      r    )rY   contiguous_regions)r   r   r   r,   r   r   r   r   r   r   test_contiguous_regions<  s   
(rQ  c                 C   s2   | j tdtddd}t|}|dksJ d S )Nr    r<     )indexr   )Seriesr  rY   r,  )rK  r   r2   r   r   r   %test_safe_first_element_pandas_seriesS  s   
rU  c               	      s   t ddddd t dddd }  | fD ]}|  tt |dd W d    n1 s3w   Y  qt jjf fd	d
	}|  tt |dd W d    d S 1 s\w   Y  d S )N3.0r   c                 S   r   rb   r   r   r   r   r   func1[     z$test_delete_parameter.<locals>.func1c                  [   r   rb   r   )kwargsr   r   r   func2_  rY  z$test_delete_parameter.<locals>.func2barrW  c                    s    |  d S rb   r   rW  rX  r   r   pyplot_wrapperh  s   z-test_delete_parameter.<locals>.pyplot_wrapperrb   )rY   _delete_parameterr   r   r	   deprecation_deprecated_parameter)r[  r   r^  r   r]  r   test_delete_parameterZ  s   


"rb  c                  C   s   t ddd	dd} | ddd tt | dd W d    n1 s&w   Y  tt | ddd W d    d S 1 sBw   Y  d S )
NrV  argc                 S   r   rb   r   )prerc  postr   r   r   r   q  rY  z$test_make_keyword_only.<locals>.funcr   r   )rc  r   rb   )rY   _make_keyword_onlyr   r   r	   )r   r   r   r   test_make_keyword_onlyp  s   
"rg  c                 C   s0   t d t| dksJ | d jtksJ d S )Noopsr   r   )rY   r   r   filename__file__)recwarnr   r   r   test_warn_external}  s   
rl  c                  C   sl   dd } dd }dD ])\}}t || ||}t||d ||d D ]\}}| |||d q'q
d S )Nc              	   S   s   | j \}}g td|d ||d }g td|d ||d }g }t|d d |dd  D ]-\}}	t|d d |dd  D ]\}
}t| ||	d |
|d f j}|| qAq0t|}t	|tj
| ||dsqJ d S )Nr   r   r   rstridecstride)r   r  r   rY   _array_perimeterrI  appendr   r   array_equal_array_patch_perimeters)r   rn  ro  rowscolsrow_indscol_indspolysrsrs_nextcscs_nextpsr   r   r   check  s   
""$
z*test_array_patch_perimeters.<locals>.checkc                    s    fddt d d D S )Nc                    s   g | ]
} | d kr|qS )r   r   r2  nr   r   r    s    zAtest_array_patch_perimeters.<locals>.divisors.<locals>.<listcomp>r   r1  r  r   r  r   divisors  s   z-test_array_patch_perimeters.<locals>.divisors))r    r    )rO     )   	   r   rm  )r   r   rG  r  r  )r~  r  rt  ru  r   rn  ro  r   r   r   test_array_patch_perimeters  s   
r  ztarget,test_shape))rb   )r   r   )Nr   r3  )r  )r   r   )r0  )r   r  ))Nr   N)r   r   r   c                 C   sl   dt |  dtd|  }t|}tjt|d tj	| |d W d    d S 1 s/w   Y  d S )Nz^'aardvark' must be zD.*z
has shape r   )aardvark)
r   reescaper   r   r   r   r   rY   _check_shape)target
test_shapeerror_patternrV   r   r   r   test_check_shape  s   
"r  c                     s.  G dd d G dd d }    fdd}|  j _| tjddd	d
 dddd
 dddd
Q j j u sAJ jju sIJ jdksPJ jdksWJ jdks^J jdkseJ jj ksmJ jdkstJ j	dks{J j
dksJ W d    n1 sw   Y  | d S )Nc                   @   sZ   e Zd Ze Ze Zdd Zdd Zedd Z	e
dd Zed	d
 Zejdd
 ZdS )ztest_setattr_cm.<locals>.Ac                 S   s   d| _ d| _d| _d S )Nr  overridep)r  r  _pr   r   r   r   __init__  s   
z#test_setattr_cm.<locals>.A.__init__c                 S   r   rb   r   r   r   r   r   meth  r   ztest_setattr_cm.<locals>.A.methc                 S   r   rb   r   )klassr   r   r   classy  rY  z!test_setattr_cm.<locals>.A.classyc                   S   r   rb   r   r   r   r   r   static  rY  z!test_setattr_cm.<locals>.A.staticc                 S   s   | j S rb   r  r   r   r   r   prop  s   ztest_setattr_cm.<locals>.A.propc                 S   s
   || _ d S rb   r  )r   valr   r   r   r    s   
N)r<   r=   r>   r   	cls_levelr  r  r  classmethodr  staticmethodr  propertyr  setterr   r   r   r   r"    s    


r"  c                   @   r   )ztest_setattr_cm.<locals>.BNr   r   r   r   r   r#    r   r#  c                    s   | j | j usJ | j| ju sJ jdksJ | j| ju sJ | j ju s'J | jdks.J t| dr5J | jdks<J | jj ksDJ | j ju sLJ d| jvsSJ d| jvsZJ d| jvsaJ d S )Nr  r  extrar  r  r  r  )r  r  r  r  r  r   monkey__dict__)objr"  r   r!  r   r   verify_pre_post_state  s   z.test_setattr_cm.<locals>.verify_pre_post_statesquirrelmoosec                   S   r   rb   r   r   r   r   r   r     r   z!test_setattr_cm.<locals>.<lambda>boor  c                   S   r   rb   r   r   r   r   r   r     r   bobr  r  )	r  r  r  r  r  r  r  r  r  )r  r  rY   _setattr_cmr  r  r  r  r  r  r  )r#  r  r   r  r   test_setattr_cm  s4   r  );r  r   r  weakrefr   unittest.mockr   r   r   numpyr   numpy.testingr   r   r   r   matplotlib.cbookrY   matplotlib.colorscolorsr8   r	   r
   r   r?   r   r   r   r   r   fail_mappingpass_mappingr   r   r   r   r   r   r  r  r  r  r  r   rG  r  r$  r)  r/  rD  rN  rQ  rU  rb  rg  rl  r  r  r  r   r   r   r   <module>   s    "0!




L
	