o
    iv                  	   @  s  U 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	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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'e*d(< 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+d)e*d*< ej$%d+e)d,d- Z,ej$%d.e+d/d0 Z-d1d2 Z.d3d4 Z/d5d6 Z0d7d8 Z1d9d: Z2d;d< Z3d=d> Z4ej$%d?e5d@6dAdBd%fe5d@d%fe5d@e5dAfgdCdD Z7dEdF Z8dGdH Z9dIdJ Z:dKdL Z;dMdN Z<dOdP Z=dQdR Z>dSdT Z?dUdV Z@dWdX ZAdYdZ ZBd[d\ ZCd]d^ ZDd_d` ZEdadb ZFdcdd ZGdedf ZHdgdh ZIej$%dig djdkdl ZJdS )m    )annotationsN)Any)patchMock)datetimedate	timedelta)assert_array_equalassert_approx_equalassert_array_almost_equal)_apicbook)delete_masked_points
strip_mathc                   @  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   j/var/www/html/eduruby.in/lip-sync/lip-sync-env/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   Za1Za2Zresult1Z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&   mcolorsZto_rgba_arrayr   r	   r0   )r   r2   Za_rgbar3   r(   r   r   r   	test_rgba-   s   
z#Test_delete_masked_points.test_rgbaN)__name__
__module____qualname__r   r)   r4   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)rB   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ޓ?)
rI   rH   rG   rB   rD   rL   rE   rF   rK   rJ   gN!@g?)rI   rH   g =ɳE@rN   rO   )rK   rJ   rL   geLM?)rJ   rK   g,#W@)r   randomseedZnrowsZncolsZ	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_method8   s@   zTest_boxplot_stats.setup_methodc                 C  s   t | jtsJ d S N)
isinstancerV   listr   r   r   r   test_form_main_listj   s   z&Test_boxplot_stats.test_form_main_listc                 C  s   | j D ]	}t|tsJ qd S r]   )rV   r^   dictr   resr   r   r   test_form_each_dictm   s   
z&Test_boxplot_stats.test_form_each_dictc                 C  s&   | j D ]}t|t| jksJ qd S r]   )rV   setrT   rb   r   r   r   test_form_dict_keysq   s   
z&Test_boxplot_stats.test_form_dict_keysc                 C  s0   | j d }| j D ]\}}t|| | q
d S )Nr   )rV   rW   itemsr   )r   rc   keyvaluer   r   r   test_results_baselineu   s   
z(Test_boxplot_stats.test_results_baselinec                 C  >   t j| jdd}|d }| j D ]\}}t|| | qd S )Ni'  )Z	bootstrapr   )r   rU   rR   rX   rg   r
   r   resultsrc   rh   ri   r   r   r   test_results_bootstrappedz   
   z,Test_boxplot_stats.test_results_bootstrappedc                 C  rk   )Nr#   Zwhisr   )r   rU   rR   rY   rg   r   rl   r   r   r   test_results_whiskers_float   ro   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   rp   )r   rU   rR   r[   rg   r   rl   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%   _   rp   r   )r   rU   rR   rZ   rg   r   rl   r   r   r   !test_results_whiskers_percentiles   rt   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)ZTest1r"   ZAardvarkr*   labelsrM   )r   rU   rR   zip)r   rx   rm   Zlabrc   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"   rw   )r   r   r   r   rU   rR   )r   rx   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|   )rA   )r   rP   normalr   r   r   r   rU   )r   rR   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)Z	autorangeTr   rJ   rK   rL   )r   ZzerosZhstackr   rU   r   )r   xZbstats_falseZbstats_truer   r   r   "test_boxplot_stats_autorange_false   s   z5Test_boxplot_stats.test_boxplot_stats_autorange_falseN)r;   r<   r=   r\   r`   rd   rf   rj   rn   rq   rs   rv   rz   r{   r~   r   r   r   r   r   r>   7   s    2
r>   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   r\      s   z#Test_callback_registry.setup_methodc                 C  s    |r	| j ||S | j ||S r]   )r   connectZ_connect_picklable)r   sfuncpickler   r   r   r      s   zTest_callback_registry.connectc                 C  s   | j |S r]   )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 r]   )lenr   _func_cid_mapgetr   )r   Zcount1Z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 r]   )r   testingbreak_cyclesr   r   Z_pickled_cidsre   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 r]   )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 r]   r   r   r   r   r   <lambda>       z9Test_callback_registry.test_cid_restore.<locals>.<lambda>r   c                   S  r   r]   r   r   r   r   r   r      r   r!   )r   r   r   r   loadsdumps)r   cbZ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cid1Z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 r]   	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   Zmini_me2r   r   r   'test_registration_on_non_empty_registry  s   z>Test_callback_registry.test_registration_on_non_empty_registryc                 C  r   r]   r   r   r   r   r   r   2     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_pickling5  s   z$Test_callback_registry.test_picklingN)r;   r<   r=   r\   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   r]   r   r   r   r   r   r   <  r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>"_get_running_interactive_frameworkc                   S  r   r]   r   r   r   r   r   r   ?  r   zargument mismatch c                   S  s   dS )Nznot-noner   r   r   r   r   r   F  r   z,takes 0 positional arguments but 1 was given)r   r   r   setattrr   r   	TypeErrorprocessZ
readouterrouterr)Zcapsysmonkeypatchr   Zouterrr   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   TestExceptionN      r   c                   S     t r]   )RuntimeErrorr   r   r   r   raise_runtime_errorQ  r   z+raising_cb_reg.<locals>.raise_runtime_errorc                   S  r   r]   r   r   r   r   r   raise_value_errorT  r   z)raising_cb_reg.<locals>.raise_value_errorc                   s   t | tr | r]   )r^   r   excpr   r   r   transformerW  s   
z#raising_cb_reg.<locals>.transformerZexception_handlerr   zcb, excp)		Exceptionr   r   r   r   r   r   r   r   )r   r   r   r   Zcb_oldZcb_filtZcb_filt_passr   r   r   raising_cb_regM  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   r]   r   r   r   r   r   r   q  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_handlern  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   )Zsignalsc                   s     |  d S r]   )append)r   rm   r   r   r   y  s    z)test_callbackregistry_signals.<locals>.cbbarr!   )r   r   r   r   r   r   r   )crr   r   r   r   test_callbackregistry_signalsv  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   | r]   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_func2Ztest1Ztest2)r   r   matchr   )r   r   r   Z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#   )rS   r   Zsanitize_sequencekeysvaluesrg   )r   kvir   r   r   test_sanitize_sequence  s   r   r!   r"   )r   r   Zalias_mappingr   r   ztuple[tuple[dict, dict], ...]fail_mappingz"tuple[tuple[Any, dict, dict], ...]pass_mappingz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 r]   )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 r]   )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   ZwarnsUserWarningr   warn_external)Z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y2ZxsZy1sZy2sZx_targetZ	y1_targetZ	y2_targetr   r   r   test_to_prestep     





r  c                  C     t g g } | jdksJ d S N)r"   r   )r   r  r   Zstepsr   r   r   test_to_prestep_empty     r  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   r  r  c                  C  r	  r
  )r   r  r   r  r   r   r   test_to_poststep_empty  r  r  c            	      C  r   )Nr*   r   )r         ?r  r@   r@         @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  r  r  c                  C  r	  r
  )r   r  r   r  r   r   r   test_to_midstep_empty-  r  r  args   r#   r*   c                 C  s:   t t tj|   W d    d S 1 sw   Y  d S r]   )r   r   r   r   r  )r  r   r   r   test_step_fails2  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   Dummy=  r   r  c                      g | ]}  qS r   r   .0_r  r   r   
<listcomp>?      z test_grouper.<locals>.<listcomp>r%   r   r!   )ranger   Grouperjoinre   r_   Zget_siblingsZjoinedremove	itertoolsproduct)
r   r   r   r   r   objsr6   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 ]}||v s(J q || d  }| dd  D ]
}|| |u s?J q5d S )Nc                   @  r   )z#test_grouper_private.<locals>.DummyNr   r   r   r   r   r  Q  r   r  c                   r  r   r   r  r  r   r   r  S  r   z(test_grouper_private.<locals>.<listcomp>r%   r   r!   )r!  r   r"  r#  _mapping)r'  r6   mappingoZbase_setr   r  r   test_grouper_privateP  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   Zflatnextr   _safe_first_finite)r   itretr   r   r   test_flatitera  s   

r4  c                  C  *   t dt j} t| }t |sJ d S r   )r   fullr&   r   r1  isnanZarrr3  r   r   r   test__safe_first_finite_all_nanm     
r9  c                  C  r5  r   )r   r6  infr   r1  isinfr8  r   r   r   test__safe_first_finite_all_infs  r:  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 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   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    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 r]   )super__iter__r   r'   )r   ri   	__class__r   r   r@    s   z.test_reshape2d.<locals>.ArraySubclass.__iter__c                   s   t t |S r]   )r   r'   r?  __getitem__)r   itemrA  r   r   rC    s   z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r;   r<   r=   r@  rC  __classcell__r   r   rA  r   ArraySubclass  s    rF  
   r   )rG  )r   buffer)	r   r   r   r   ddr   r    ffr    )r   _reshape_2Dr   r   r!  r   rP   Zrandr^   r_   Zndarrayr'   r   r  rR   )xnewr   rF  r   r   r  r   test_reshape2dy  sT   
""""&&&		rM  c                 C  sX   t ddd}| j|g dd}t|d}t|j|D ]\}}t j	|| qd S )N   rG  r#   r   columnsr   )
r   r   reshape	DataFramer   rK  ry   Tr   r	   )pdXr   XnewrL  r   r   r   test_reshape2d_pandas     rW  c                 C  sX   t ddd}| j|ddgd}t|d}t|j|D ]\}}t j	|| qd S NrN  rG  r#   r   r8   )dims)
r   r   rQ  	DataArrayr   rK  ry   rS  r   r	   )xrrU  r   rV  rL  r   r   r   test_reshape2d_xarray  rX  r]  c                 C  s\   t ddd}| j|g dd}t|\}}t j|| t d}t j|| d S )NrN  rG  r#   r   rO  )r   r   rQ  rR  r   index_ofr   r	   )rT  rU  r   IdxrV  IdxRefr   r   r   test_index_of_pandas     
ra  c                 C  s\   t ddd}| j|ddgd}t|\}}t j|| t d}t j|| d S rY  )r   r   rQ  r[  r   r^  r   r	   )r\  rU  r   r_  rV  r`  r   r   r   test_index_of_xarray  rb  rc  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   Zcontiguous_regions)r   r   r   r-   r   r   r   r   r   r   test_contiguous_regions  s   
(re  c                 C  s2   | j tdtddd}t|}|dksJ d S )Nr%   rG     )indexr   )ZSeriesr!  r   r1  )rT  r   r3   r   r   r   %test_safe_first_element_pandas_series  s   
rh  c                 C  s0   t d t| dksJ | d jtksJ d S )NZoopsr!   r   )r   r   r   filename__file__)Zrecwarnr   r   r   test_warn_external  s   
rk  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!  ry   r   Z_array_perimeterrS  r   r   r  Zarray_equalZ_array_patch_perimeters)r   rm  rn  rowscolsZrow_indsZcol_indsZpolysrsZrs_nextcsZcs_nextZ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   r  r   nr   r   r  +  s    zAtest_array_patch_perimeters.<locals>.divisors.<locals>.<listcomp>r!   r>  ru  r   ru  r   divisors*  s   z-test_array_patch_perimeters.<locals>.divisors))r%   r%   )rd     )   	   r!   rl  )r   r   rQ  r%  r&  )rs  rw  ro  rp  r   rm  rn  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__9  s   
z#test_setattr_cm.<locals>.A.__init__c                 S  r   r]   r   r   r   r   r   meth>  r   ztest_setattr_cm.<locals>.A.methc                 S  r   r]   r   )clsr   r   r   classyA     z!test_setattr_cm.<locals>.A.classyc                   S  r   r]   r   r   r   r   r   staticE  r  z!test_setattr_cm.<locals>.A.staticc                 S  s   | j S r]   r  r   r   r   r   propI  s   ztest_setattr_cm.<locals>.A.propc                 S  s
   || _ d S r]   r  )r   valr   r   r   r  M  s   
N)r;   r<   r=   r   	cls_levelr}  r  r  classmethodr  staticmethodr  propertyr  setterr   r   r   r   r)  5  s    


r)  c                   @  r   )ztest_setattr_cm.<locals>.BNr   r   r   r   r   r*  Q  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_stateV  s   z.test_setattr_cm.<locals>.verify_pre_post_stateZsquirrelZmoosec                   S  r   r]   r   r   r   r   r   r   r  r   z!test_setattr_cm.<locals>.<lambda>boor  c                   S  r   r]   r   r   r   r   r   r   t  r   Zbobr  r  )	r  r|  r  r}  r  r  r  r  r  )r  r  r   Z_setattr_cmr|  r}  r  r  r  r  r  )r*  r  r   r  r   test_setattr_cm4  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   rG  z
0.00123456)r   Z_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   rt  r   r   r   r    s    z5test_safe_first_element_with_none.<locals>.<listcomp>rG  r   r!   )r!  r   r1  )Zdatetime_lstr3   r   r   r   !test_safe_first_element_with_none  s   
r  c                   C  s4   t ddksJ t ddksJ t ddksJ d S )Nz
1 \times 2z$1 \times 2$z1 x 2z	$\rm{hi}$hi)r   r   r   r   r   test_strip_math  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   Z_auto_format_strr   Zfloat64)fmtri   r   r   r   r   test_auto_format_str  s   r  )K
__future__r   r%  r   typingr   Zunittest.mockr   r   r   r   r   numpyr   Znumpy.testingr	   r
   r   r   Z
matplotlibr   r   Zmatplotlib.colorscolorsr9   Zmatplotlib.cbookr   r   r   r>   r   r   r   r   r   r   r   r   r   r   r   r   __annotations__r   r   r   r   r  r  r  r  r  r  r   rQ  r  r+  r/  r4  r9  r=  rM  rW  r]  ra  rc  re  rh  rk  r{  r  r  r  r  r  r   r   r   r   <module>   s    "~ !
!



S



R
