o
    lit                  	   @   s  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mZm	Z	 d dl
Zd dlmZmZmZ d dlZd dlmZmZ d dlmZ d dl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 Z ej!"dg ddd Z#dd Z$dd Z%d d!d"d#d$d%giifd d!d"d#d$d$d%giiffZ&di i fd d!d"d d!d"i fd%d!id$d!id#d$d$d%giiffZ'ej!"d&e&d'd( Z(ej!"d)e'd*d+ Z)d,d- Z*d.d/ Z+d0d1 Z,d2d3 Z-d4d5 Z.d6d7 Z/d8d9 Z0ej!"d:e1d;2d<d=d$fe1d;d$fe1d;e1d<fgd>d? Z3d@dA Z4dBdC Z5dDdE Z6dFdG Z7dHdI Z8dJdK Z9dLdM Z:dNdO Z;dPdQ Z<dRdS Z=dTdU Z>dVdW Z?dXdY Z@dZd[ ZAd\d] ZBd^d_ ZCd`da ZDej!"dbg dcddde ZEdS )f    N)ref)patchMock)datetimedate	timedelta)assert_array_equalassert_approx_equalassert_array_almost_equal)_apicbook)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   Y/home/ubuntu/SoloSpeech/.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yr0   r   )	r   r1   r%   r$   mcolorsto_rgba_arrayr   r   r2   )r   r4   a_rgbar5   r*   r   r   r   	test_rgba+   s   
z#Test_delete_masked_points.test_rgbaN)__name__
__module____qualname__r   r+   r6   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)rF   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ޓ?)
rM   rL   rK   rF   rH   rP   rI   rJ   rO   rN   gN!@g?)rM   rL   g =ɳE@rR   rS   )rO   rN   rP   geLM?)rN   rO   g,#W@)r   randomseednrowsncols	lognormaldatasorted
known_keysr   boxplot_statsstd_resultsr%   known_nonbootstrapped_resknown_bootstrapped_ciknown_whis3_resknown_res_percentilesknown_res_ranger   r   r   r   setup_method6   s@   zTest_boxplot_stats.setup_methodc                 C   s   t | jtsJ d S N)
isinstancer]   listr   r   r   r   test_form_main_listh   s   z&Test_boxplot_stats.test_form_main_listc                 C   s   | j D ]	}t|tsJ qd S rd   )r]   re   dictr   resr   r   r   test_form_each_dictk   s   
z&Test_boxplot_stats.test_form_each_dictc                 C   s&   | j D ]}t|t| jksJ qd S rd   )r]   setr[   ri   r   r   r   test_form_dict_keyso   s   
z&Test_boxplot_stats.test_form_dict_keysc                 C   s0   | j d }| j D ]\}}t|| | q
d S )Nr   )r]   r^   itemsr
   )r   rj   keyvaluer   r   r   test_results_baselines   s   
z(Test_boxplot_stats.test_results_baselinec                 C   >   t j| jdd}|d }| j D ]\}}t|| | qd S )Ni'  )	bootstrapr   )r   r\   rY   r_   rn   r	   r   resultsrj   ro   rp   r   r   r   test_results_bootstrappedx   
   z,Test_boxplot_stats.test_results_bootstrappedc                 C   rr   )Nr!   whisr   )r   r\   rY   r`   rn   r
   rt   r   r   r   test_results_whiskers_float~   rw   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   rx   )r   r\   rY   rb   rn   r
   rt   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#   _   rx   r   )r   r\   rY   ra   rn   r
   rt   r   r   r   !test_results_whiskers_percentiles   r}   z4Test_boxplot_stats.test_results_whiskers_percentilesc                 C   sb   g d}t j| j|d}t||D ]\}}|d |ksJ qt | j}|D ]}d|vs.J q&d S )N)Test1r    Aardvarkr,   labelsrQ   )r   r\   rY   zip)r   r   ru   labrj   r   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   r   r\   rY   )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   )rE   )r   rT   normalr   r   r   r   r\   )r   rY   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   rN   rO   rP   )r   zeroshstackr   r\   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@   rA   rc   rg   rk   rm   rq   rv   rz   r|   r   r   r   r   r   r   r   r   r   rB   5   s    2
rB   c                   @   s   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	e
jdddgdd Ze
jdddgdd Ze
jdddgdd Ze
jdddgdd Zdd Zdd ZdS )Test_callback_registryc                 C   s   d| _ t | _d S )Ntest)signalr   CallbackRegistry	callbacksr   r   r   r   rc      s   z#Test_callback_registry.setup_methodc                 C   s    |r	| j ||S | j ||S rd   )r   connect_connect_picklable)r   sfuncpickler   r   r   r      s   zTest_callback_registry.connectc                 C   s   | j |S rd   )r   
disconnect)r   cidr   r   r   r      s   z!Test_callback_registry.disconnectc                 C   s:   t | jj| jg }t | jj| j}||ksJ |S rd   )lenr   _func_cid_mapgetr   )r   count1count2r   r   r   count   s   zTest_callback_registry.countc                 C   s@   t j  | jji ksJ | jji ksJ | jjt ksJ d S rd   )r   testingbreak_cyclesr   r   _pickled_cidsrl   r   r   r   r   is_empty   s   
zTest_callback_registry.is_emptyc                 C   s.   t j  | jji ksJ | jji ksJ d S rd   )r   r   r   r   r   r   r   r   r   is_not_empty   s   
z#Test_callback_registry.is_not_emptyc                 C   sH   t  }|ddd  tt|}|ddd }|dks"J d S )Nr   c                   S      d S rd   r   r   r   r   r   <lambda>       z9Test_callback_registry.test_cid_restore.<locals>.<lambda>r   c                   S   r   rd   r   r   r   r   r   r      r   r   )r   r   r   r   loadsdumps)r   cbcb2r   r   r   r   test_cid_restore   s
   z'Test_callback_registry.test_cid_restorer   TFc                 C   s   |    t }| | j|j|}t|tu sJ |   | | j|j|}||ks+J |   t| j	j
dks9J t| j	j	dksCJ ~|    d S )Nr   )r   r   r   r   dummytypeintr   r   r   r   )r   r   mini_mecid1cid2r   r   r   test_callback_complete   s   z-Test_callback_registry.test_callback_completec                 C   sN   |    t }| | j|j|}t|tu sJ |   | | |    d S rd   	r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   test_callback_disconnect      
z/Test_callback_registry.test_callback_disconnectc                 C   sN   |    t }| | j|j|}t|tu sJ |   | d |   d S )Nfoor   r   r   r   r   test_callback_wrong_disconnect  r   z5Test_callback_registry.test_callback_wrong_disconnectc                 C   s|   |    t }| | j|j| t }| | j|j| t }| | j|j| |   |  dks4J d }d }|    d S Nr    )r   r   r   r   r   r   r   )r   r   r   mini_me2r   r   r   'test_registration_on_non_empty_registry  s   z>Test_callback_registry.test_registration_on_non_empty_registryc                 C   r   rd   r   r   r   r   r   r   0     zTest_callback_registry.dummyc                 C   s"   t ttt dsJ d S )Nr   )hasattrr   r   r   r   r   r   r   r   r   test_pickling3  s   z$Test_callback_registry.test_picklingN)r?   r@   rA   rc   r   r   r   r   r   r   r   markparametrizer   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  |  }|j	|j
  krAdksDJ  J |t ddd  |dd |  }|j	dks^J d	|j
v seJ d S )
Nr   c                   S   r   rd   r   r   r   r   r   r   :  r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>"_get_running_interactive_frameworkc                   S   r   rd   r   r   r   r   r   r   =  r   zargument mismatch c                   S   s   dS )Nznot-noner   r   r   r   r   r   D  r   z,takes 0 positional arguments but 1 was given)r   r   r   setattrr   r   	TypeErrorprocess
readouterrouterr)capsysmonkeypatchr   outerrr   r   r   /test_callbackregistry_default_exception_handler8  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@   rA   r   r   r   r   TestExceptionL      r   c                   S      t rd   )RuntimeErrorr   r   r   r   raise_runtime_errorO  r   z+raising_cb_reg.<locals>.raise_runtime_errorc                   S   r   rd   r   r   r   r   r   raise_value_errorR  r   z)raising_cb_reg.<locals>.raise_value_errorc                    s   t | tr | rd   )re   r   excpr   r   r   transformerU  s   
z#raising_cb_reg.<locals>.transformerexception_handlerr   zcb, excp)		Exceptionr   r   r   r   r   r   r   r   )r   r   r   r   cb_oldcb_filtcb_filt_passr   r   r   raising_cb_regK  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   rd   r   r   r   r   r   r   o  r   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>r   )r   r   r   r   r   )r   r   r   r   r   r   .test_callbackregistry_custom_exception_handlerl  s   
"r   c                     s   t jdgd} g   fdd}| d| tt | d| W d    n1 s+w   Y  | dd tt | dd W d    n1 sLw   Y   dgksXJ d S )Nr   )signalsc                    s     |  d S rd   )append)r   ru   r   r   r   w  s    z)test_callbackregistry_signals.<locals>.cbbarr   )r   r   r   r   r   r   r   )crr   r   r   r   test_callbackregistry_signalst  s   r   c               	   C   s\  dd } t j| d}dd }dd }|d| |d	| |  |d |d	 W d    n1 s7w   Y  |jdd
) |d tjtdd |d	 W d    n1 s_w   Y  W d    n1 snw   Y  tjtdd |d W d    n1 sw   Y  tjtdd |d	 W d    d S 1 sw   Y  d S )Nc                 S   s   | rd   r   r   r   r   r   raise_handler  r   z5test_callbackregistry_blocking.<locals>.raise_handlerr   c                   S      t d)N1 should be blockedr   r   r   r   r   
test_func1     z2test_callbackregistry_blocking.<locals>.test_func1c                   S   r   )N2 should be blockedr   r   r   r   r   
test_func2  r   z2test_callbackregistry_blocking.<locals>.test_func2test1test2)r   r   matchr   )r   r   r   blockedr   r   r   r   )r   r   r   r   r   r   r   test_callbackregistry_blocking  s.   


"r   zline, result)	)a : no_commentr   )a : "quoted str"r   )za : "quoted str" # commentr   )a : "#000000"r   )za : "#000000" # commentr   )a : ["#000000", "#FFFFFF"]r   )z$a : ["#000000", "#FFFFFF"] # commentr   )z"a : val  # a comment "with quotes"za : val)z# only comment "with quotes" xxr   c                 C   s   t | |ks	J dS )z+Strip everything from the first unquoted #.N)r   _strip_comment)lineresultr   r   r   test_strip_comment  s   r  c                   C   s>   t jtdd td W d    d S 1 sw   Y  d S )NzMissing closing quoter   zgrid.color: "aa)r   r   r   r   r  r   r   r   r   test_strip_comment_invalid  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!   )rZ   r   sanitize_sequencekeysvaluesrn   )r   kvir   r   r   test_sanitize_sequence  s   r  r   r    )r   r   alias_mappingr   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 rd   )r   r   r   r   'suppress_matplotlib_deprecation_warningr   normalize_kwargs)inpkwargs_to_normr   r   r   test_normalize_kwargs_fail  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 rd   )r   r  r   r  )r  expectedr  r   r   r   test_normalize_kwargs_pass  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\Zr   r   )
r   objectr   r   	_getframer   warnsUserWarningr   warn_external)mock_sysr   r   r   (test_warn_external_frame_embedded_python  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   r   pts_to_prestepasarrayfloatr   	r   y1y2xsy1sy2sx_target	y1_target	y2_targetr   r   r   test_to_prestep     





r2  c                  C      t g g } | jdksJ d S N)r    r   )r   r&  r   stepsr   r   r   test_to_prestep_empty     r8  c            	      C   r   )Nr,   r!  r%  r#  r"  )r!   r!   r    r    r   r   r   )r   r   r   pts_to_poststepr'  r(  r   r)  r   r   r   test_to_poststep  r3  r;  c                  C   r4  r5  )r   r:  r   r6  r   r   r   test_to_poststep_empty  r9  r<  c            	      C   r   )Nr,   r!  )r         ?r=  rD   rD         @r>  r!   r#  )r   r   r   r   r    r    r!   r!   )r!   r!   r    r    r   r   r   r   )r   r   r   pts_to_midstepr'  r(  r   r)  r   r   r   test_to_midstep  r3  r@  c                  C   r4  r5  )r   r?  r   r6  r   r   r   test_to_midstep_empty+  r9  rA  args   r!   r,   c                 C   s:   t t tj|   W d    d S 1 sw   Y  d S rd   )r   r   r   r   r&  )rB  r   r   r   test_step_fails0  s   "rD  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   Dummy;  r   rE  c                       g | ]}  qS r   r   .0_rE  r   r   
<listcomp>=      z test_grouper.<locals>.<listcomp>r#   r   r   )ranger   Grouperjoinrl   rf   get_siblingsjoinedremove	itertoolsproduct)
r   r   r   r   r   objsr8   otherABr   rJ  r   test_grouper:  s   $

$rY  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   rE  O  r   rE  c                    rF  r   r   rG  rJ  r   r   rK  Q  rL  z(test_grouper_private.<locals>.<listcomp>r#   r   r   )rM  r   rN  rO  _mappingr   )rU  r8   mappingobase_setr   rJ  r   test_grouper_privateN  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nextr   _safe_first_finite)r   itretr   r   r   test_flatiter_  s   

rd  c                  C   *   t dt j} t| }t |sJ d S r   )r   fullr$   r   ra  isnanarrrc  r   r   r   test__safe_first_finite_all_nank     
rj  c                  C   re  r   )r   rf  infr   ra  isinfrh  r   r   r   test__safe_first_finite_all_infq  rk  rn  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 tdtdtdg}t |d} t| t	sJ t| 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	sJ t| d tj
r| d jdksJ t| d tj
r,| d jdks.J t| d tj
r?| d jdksAJ G dd dtj
}tjdtd}|dt|jd}t |d} t| dkshJ t| d |srJ g d}t |d} t| d t|ksJ t| d tj
sJ d S )Nc                   @   r   )ztest_reshape2d.<locals>.DummyNr   r   r   r   r   rE  y  r   rE  r   )r   r   c                    rF  r   r   rG  rJ  r   r   rK    rL  z"test_reshape2d.<locals>.<listcomp>r#   )r   r#   c                    s"   g | ]} fd dt dD qS )c                    rF  r   r   rG  rJ  r   r   rK    rL  z-test_reshape2d.<locals>.<listcomp>.<listcomp>r#   rM  rG  rJ  r   r   rK    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 rd   )super__iter__r   r%   )r   rp   	__class__r   r   rq    s   z.test_reshape2d.<locals>.ArraySubclass.__iter__c                    s   t t |S rd   )r   r%   rp  __getitem__)r   itemrr  r   r   rt    s   z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r?   r@   rA   rq  rt  __classcell__r   r   rr  r   ArraySubclass  s    rw  
   r#  )rx  )r$  buffer)	r   r   r   r   ddr   r   ffr   )r   _reshape_2Dr   r   rM  r   rT   randre   rf   ndarrayr%   r   r(  rY   )xnewr   rw  r  r   rJ  r   test_reshape2dw  sT   
""""&&&		r  c                 C   sX   t ddd}| j|g dd}t|d}t|j|D ]\}}t j	|| qd S )N   rx  r!   r  columnsr   )
r   r   reshape	DataFramer   r|  r   Tr   r   )pdXr   Xnewr  r   r   r   test_reshape2d_pandas     r  c                 C   sX   t ddd}| j|ddgd}t|d}t|j|D ]\}}t j	|| qd S Nr  rx  r!   r   r:   )dims)
r   r   r  	DataArrayr   r|  r   r  r   r   )xrr  r   r  r  r   r   r   test_reshape2d_xarray  r  r  c                 C   s\   t ddd}| j|g dd}t|\}}t j|| t d}t j|| d S )Nr  rx  r!   r  r  )r   r   r  r  r   index_ofr   r   )r  r  r   Idxr  IdxRefr   r   r   test_index_of_pandas     
r  c                 C   s\   t ddd}| j|ddgd}t|\}}t j|| t d}t j|| d S r  )r   r   r  r  r   r  r   r   )r  r  r   r  r  r  r   r   r   test_index_of_xarray  r  r  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#   )r   contiguous_regions)r   r   r   r/   r  r   r   r   r   r   test_contiguous_regions  s   
(r  c                 C   s2   | j tdtddd}t|}|dksJ d S )Nr#   rx     )indexr   )SeriesrM  r   ra  )r  r   r5   r   r   r   %test_safe_first_element_pandas_series	  s   
r  c                 C   s0   t d t| dksJ | d jtksJ d S )Noopsr   r   )r   r  r   filename__file__)recwarnr   r   r   test_warn_external  s   
r  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   rM  r   r   _array_perimeterr  r   r   r'  array_equal_array_patch_perimeters)r   r  r  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   rH  r  nr   r   rK  )  s    zAtest_array_patch_perimeters.<locals>.divisors.<locals>.<listcomp>r   ro  r  r   r  r   divisors(  s   z-test_array_patch_perimeters.<locals>.divisors))r#   r#   )r     )   	   r   r  )r   r   r  rS  rT  )r  r  r  r  r   r  r  r   r   r   test_array_patch_perimeters  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 )Naardvarkoverridep)r  r  _pr   r   r   r   __init__7  s   
z#test_setattr_cm.<locals>.A.__init__c                 S   r   rd   r   r   r   r   r   meth<  r   ztest_setattr_cm.<locals>.A.methc                 S   r   rd   r   )clsr   r   r   classy?     z!test_setattr_cm.<locals>.A.classyc                   S   r   rd   r   r   r   r   r   staticC  r  z!test_setattr_cm.<locals>.A.staticc                 S   s   | j S rd   r  r   r   r   r   propG  s   ztest_setattr_cm.<locals>.A.propc                 S   s
   || _ d S rd   r  )r   valr   r   r   r  K  s   
N)r?   r@   rA   r  	cls_levelr  r  r  classmethodr  staticmethodr  propertyr  setterr   r   r   r   rW  3  s    


rW  c                   @   r   )ztest_setattr_cm.<locals>.BNr   r   r   r   r   rX  O  r   rX  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rW  r   rV  r   r   verify_pre_post_stateT  s   z.test_setattr_cm.<locals>.verify_pre_post_statesquirrelmoosec                   S   r   rd   r   r   r   r   r   r   p  r   z!test_setattr_cm.<locals>.<lambda>boor  c                   S   r   rd   r   r   r   r   r   r   r  r   bobr  r  )	r  r  r  r  r  r  r  r  r  )r  r  r   _setattr_cmr  r  r  r  r  r  r  )rX  r  r   r  r   test_setattr_cm2  s4   r  c                  C   s   t j} | dddksJ | dddksJ | dddksJ | dddks'J | dd	dks0J | d
d	dks9J | dd	dksBJ | d
d| d
d  krSdksVJ  J d S )Nr   r   0r    r!   g(0z-0gHz>r#   gӴ:T?z0.00123gӴ:Tz-0.00123   rx  z
0.00123456)r   _format_approx)r   r   r   r   test_format_approx  s   ,r  c                  C   s@   dd t dD } d | d< t| }|d ur|| d ksJ d S )Nc                 S   s   g | ]}t  t|d  qS ))days)r   todayr   r  r   r   r   rK    s    z5test_safe_first_element_with_none.<locals>.<listcomp>rx  r   r   )rM  r   ra  )datetime_lstr5   r   r   r   !test_safe_first_element_with_none  s   
r  zfmt, value, result))z%.2f m皙?0.20 m)z{:.2f} mr  r  )z{} mr  z0.2 m)constr  r  )z%d or {}r  z0 or {})z{{{:,.0f}}}g     jAz	{200,000})z{:.2%}gUUUUUU?z66.67%)z$%ggRQ@z$2.54c                 C   s2   t | ||ks
J t | t||ksJ dS )z)Apply *value* to the format string *fmt*.N)r   _auto_format_strr   float64)fmtrp   r  r   r   r   test_auto_format_str  s   r  )FrS  r   weakrefr   unittest.mockr   r   r   r   r   numpyr   numpy.testingr   r	   r
   r   
matplotlibr   r   matplotlib.colorscolorsr;   matplotlib.cbookr   r   rB   r   r   r   r   r   r   r   r   r  r  r  fail_mappingpass_mappingr  r  r  r2  r8  r;  r<  r@  rA  r   r  rD  rY  r^  rd  rj  rn  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   s    "~ !
!



S



R
