o
    jx                  	   @  sF  U d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlmZ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 d d	lmZ G d
d dZ G dd d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,e0d-< 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Z1d.e0d/< ej*+d0e/d1d2 Z2ej*+d3e1d4d5 Z3d6d7 Z4d8d9 Z5d:d; Z6d<d= Z7d>d? Z8d@dA Z9dBdC Z:dDdE Z;ej*+dFe<dG=dHdId*fe<dGd*fe<dGe<dHfgdJdK Z>dLdM Z?dNdO Z@dPdQ ZAdRdS ZBdTdU ZCdVdW ZDdXdY ZEdZd[ ZFd\d] ZGd^d_ ZHd`da ZIdbdc ZJddde ZKdfdg ZLdhdi ZMdjdk ZNdldm ZOej*+dng dodpdq ZPdrds ZQdtdu ZRdvdw ZSdS )x    )annotationsN)Any)patchMock)datetimedate	timedelta)assert_array_equalassert_approx_equalassert_array_almost_equal)_apicbook)delete_masked_points
strip_math)
ModuleTypec                   @  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   \/var/www/html/Deteccion_Ine/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   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   r0   r(   r'   mcolorsZto_rgba_arrayr   r	   r1   )r   r3   Za_rgbar4   r)   r   r   r   	test_rgba0   s   
z#Test_delete_masked_points.test_rgbaN)__name__
__module____qualname__r   r*   r5   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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_method;   s@   zTest_boxplot_stats.setup_methodc                 C  s   t | jtsJ d S N)
isinstancerW   listr   r   r   r   test_form_main_listm   s   z&Test_boxplot_stats.test_form_main_listc                 C  s   | j D ]	}t|tsJ qd S r^   )rW   r_   dictr   resr   r   r   test_form_each_dictp   s   
z&Test_boxplot_stats.test_form_each_dictc                 C  s&   | j D ]}t|t| jksJ qd S r^   )rW   setrU   rc   r   r   r   test_form_dict_keyst   s   
z&Test_boxplot_stats.test_form_dict_keysc                 C  s0   | j d }| j D ]\}}t|| | q
d S )Nr   )rW   rX   itemsr   )r   rd   keyvaluer   r   r   test_results_baselinex   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   rV   rS   rY   rh   r
   r   resultsrd   ri   rj   r   r   r   test_results_bootstrapped}   
   z,Test_boxplot_stats.test_results_bootstrappedc                 C  rl   )Nr$   Zwhisr   )r   rV   rS   rZ   rh   r   rm   r   r   r   test_results_whiskers_float   rp   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   rq   )r   rV   rS   r\   rh   r   rm   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&   _   rq   r   )r   rV   rS   r[   rh   r   rm   r   r   r   !test_results_whiskers_percentiles   ru   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+   labelsrN   )r   rV   rS   zip)r   ry   rn   Zlabrd   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#   rx   )r   r   r   r   rV   rS   )r   ry   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   r   rV   r   rS   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   rK   rL   rM   )r   ZzerosZhstackr   rV   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]   ra   re   rg   rk   ro   rr   rt   rw   r{   r|   r   r   r   r   r   r   r?   :   s    2
r?   c                   @  s   e Zd Zdd ZdS )Hashablec                 C     d S r^   r   r   r   r   r   dummy       zHashable.dummyN)r<   r=   r>   r   r   r   r   r   r      s    r   c                   @  s   e Zd ZdZdd ZdS )
UnhashableNc                 C  r   r^   r   r   r   r   r   r      r   zUnhashable.dummy)r<   r=   r>   __hash__r   r   r   r   r   r      s    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e
jdeegdd Ze
jdddge
jdeegdd Ze
jdddge
jdeegdd Ze
jdddge
jdeeg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                   s>   t  fdd jjD }t jj j}||ksJ |S )Nc                 3  s    | ]
\}}| j kV  qd S r^   r   ).0r   pr   r   r   	<genexpr>   s    z/Test_callback_registry.count.<locals>.<genexpr>)sumr   _func_cid_maplengetr   )r   Zcount1Zcount2r   r   r   count   s   zTest_callback_registry.countc                 C  sD   t j  g | jjg 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_cidsrf   r   r   r   r   is_empty   s   
zTest_callback_registry.is_emptyc                 C  s2   t j  g | jjg 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  r   r^   r   r   r   r   r   <lambda>   r   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   TFclsc                 C  s   |    | }| | j|j|}t|tu sJ |   | | j|j|}||ks+J |   tg | jj	dks;J t| jjdksEJ ~|    d S )Nr"   )
r   r   r   r   typeintr   r   r   r   )r   r   r   mini_mecid1Zcid2r   r   r   test_callback_complete   s   z-Test_callback_registry.test_callback_completec                 C  sN   |    | }| | 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   |    | }| | 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|   |    | }| | j|j| | }| | j|j| | }| | 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  s"   t ttt dsJ d S )Nr   )hasattrr   r   r   r   r   r   r   r   r   test_picklingB  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   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   I  r   zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>"_get_running_interactive_frameworkc                   S  r   r^   r   r   r   r   r   r   L  r   zargument mismatch c                   S  s   dS )Nznot-noner   r   r   r   r   r   S  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_handlerG  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 r^   )RuntimeErrorr   r   r   r   raise_runtime_error^     z+raising_cb_reg.<locals>.raise_runtime_errorc                   S  r   r^   r   r   r   r   r   raise_value_errora  r   z)raising_cb_reg.<locals>.raise_value_errorc                   s   t | tr | r^   )r_   r   excpr   r   r   transformerd  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_regZ  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   ~  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_handler{  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   rn   r   r   r     s    z)test_callbackregistry_signals.<locals>.cbbarr"   )r   r   r   r   r   r   r   )crr   r   r   r   test_callbackregistry_signals  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test2r   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$   )rT   r   Zsanitize_sequencekeysvaluesrh   )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 d t| dksJ tjd d dkr4ttjd }| d j	
t|d t|d fr2J d S | d j	tks=J d S )NZoopsr"   r#   )r$      r   
matplotlibZmpl_toolkits)r   warn_externalr   sysversion_infopathlibPath__file__parentsfilename
startswithstr)ZrecwarnZbasedirr   r   r   test_warn_external  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 )Nr  )return_valuez	\Adummy\Zr   r   )
r   objectr   r   	_getframer   ZwarnsUserWarningr   r  )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_empty0  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   r   pts_to_midstepr  r  r	   r  r   r   r   test_to_midstep5  r  r+  c                  C  r   r!  )r   r*  r   r"  r   r   r   test_to_midstep_emptyI  r$  r,  argsr   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_failsN  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   DummyY  r   r/  c                      g | ]}  qS r   r   r   _r/  r   r   
<listcomp>[      z test_grouper.<locals>.<listcomp>r&   r   r"   )ranger   Grouperjoinrf   r`   Zget_siblingsZjoinedremove	itertoolsproduct)
r   r   r   r   r    objsr7   otherABr   r3  r   test_grouperX  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/  m  r   r/  c                   r0  r   r   r1  r3  r   r   r4  o  r5  z(test_grouper_private.<locals>.<listcomp>r&   r   r"   )r6  r   r7  r8  _mapping)r<  r7   mappingoZbase_setr   r3  r   test_grouper_privatel  s   
rD  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_flatiter}  s   

rI  c                  C  *   t dt j} t| }t |sJ d S r   )r   fullr'   r   rF  isnanZarrrH  r   r   r   test__safe_first_finite_all_nan     
rN  c                  C  rJ  r   )r   rK  infr   rF  isinfrM  r   r   r   test__safe_first_finite_all_inf  rO  rR  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                   r0  r   r   r1  r3  r   r   r4    r5  z"test_reshape2d.<locals>.<listcomp>r&   )r"   r&   c                   s"   g | ]} fd dt dD qS )c                   r0  r   r   r1  r3  r   r   r4    r5  z-test_reshape2d.<locals>.<listcomp>.<listcomp>r&   r6  r1  r3  r   r   r4    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   rj   	__class__r   r   rU    s   z.test_reshape2d.<locals>.ArraySubclass.__iter__c                   s   t t |S r^   )r   r(   rT  __getitem__)r   itemrV  r   r   rX    s   z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r<   r=   r>   rU  rX  __classcell__r   r   rV  r   ArraySubclass  s    r[  
   r  )r\  )r  buffer)	r   r   r   r   ddr    r!   ffr!   )r   _reshape_2Dr   r   r6  r   rQ   Zrandr_   r`   ndarrayr(   r   r  rS   )xnewr   r[  r   r   r3  r   test_reshape2d  sT   
""""&&&		rc  c                 C  sX   t ddd}| j|g dd}t|d}t|j|D ]\}}t j	|| qd S )N   r\  r$   r   columnsr   )
r   r   reshape	DataFramer   r`  rz   Tr   r	   )pdXr   Xnewrb  r   r   r   test_reshape2d_pandas     rm  c                 C  sX   t ddd}| j|ddgd}t|d}t|j|D ]\}}t j	|| qd S Nrd  r\  r$   r   r9   )dims)
r   r   rg  	DataArrayr   r`  rz   ri  r   r	   )xrrk  r   rl  rb  r   r   r   test_reshape2d_xarray  rn  rs  c                 C  s\   t ddd}| j|g dd}t|\}}t j|| t d}t j|| d S )Nrd  r\  r$   r   re  )r   r   rg  rh  r   index_ofr   r	   )rj  rk  r   Idxrl  IdxRefr   r   r   test_index_of_pandas     
rw  c                 C  s\   t ddd}| j|ddgd}t|\}}t j|| t d}t j|| d S ro  )r   r   rg  rq  r   rt  r   r	   )rr  rk  r   ru  rl  rv  r   r   r   test_index_of_xarray  rx  ry  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   
(r{  c                 C  s2   | j tdtddd}t|}|dksJ d S )Nr&   r\     )indexr   )ZSeriesr6  r   rF  )rj  r   r4   r   r   r   %test_safe_first_element_pandas_series'  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 ]%\}}	t|D ]\}
}t| ||	d |
|d f j}|| q1q(t	|}t
|tj| ||dsaJ d S )Nr   r"   rstridecstride)r   r6  r:  pairwiser   Z_array_perimeterri  r   r   r  Zarray_equalZ_array_patch_perimeters)r   r  r  rowscolsZrow_indsZcol_indsZpolysrsZrs_nextcsZcs_nextZpsr   r   r   check1  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   r4  A  s    zAtest_array_patch_perimeters.<locals>.divisors.<locals>.<listcomp>r"   rS  r  r   r  r   divisors@  s   z-test_array_patch_perimeters.<locals>.divisors))r&   r&   )rz     )   	   r"   r  )r   r   rg  r:  r;  )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overrider   )r  r  _pr   r   r   r   __init__O  s   
z#test_setattr_cm.<locals>.A.__init__c                 S  r   r^   r   r   r   r   r   methT  r   ztest_setattr_cm.<locals>.A.methc                 S  r   r^   r   )r   r   r   r   classyW     z!test_setattr_cm.<locals>.A.classyc                   S  r   r^   r   r   r   r   r   static[  r  z!test_setattr_cm.<locals>.A.staticc                 S     | j S r^   r  r   r   r   r   prop_  s   ztest_setattr_cm.<locals>.A.propc                 S  
   || _ d S r^   r  )r   valr   r   r   r  c  s   
N)r<   r=   r>   r  	cls_levelr  r  r  classmethodr  staticmethodr  propertyr  setterr   r   r   r   r>  K  s    


r>  c                   @  r   )ztest_setattr_cm.<locals>.BNr   r   r   r   r   r?  g  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_statel  s   z.test_setattr_cm.<locals>.verify_pre_post_stateZsquirrelZmoosec                   S  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     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_cmJ  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   r\  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   r  r   r   r   r4    s    z5test_safe_first_element_with_none.<locals>.<listcomp>r\  r   r"   )r6  r   rF  )Zdatetime_lstr4   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)fmtrj   r   r   r   r   test_auto_format_str  s   r  c                  C  b   G dd d} t d}| |_|tjd< td}||}t|}t|tj	s*J t
|| dS )z
    Test that torch tensors are converted to NumPy arrays.

    We don't want to create a dependency on torch in the test suite, so we mock it.
    c                   @     e Zd Zdd Zdd ZdS )z/test_unpack_to_numpy_from_torch.<locals>.Tensorc                 S  r  r^   rS   r   r   r   r   r       
z8test_unpack_to_numpy_from_torch.<locals>.Tensor.__init__c                 S  r  r^   r  r   r   r   r   	__array__     z9test_unpack_to_numpy_from_torch.<locals>.Tensor.__array__Nr<   r=   r>   r  r  r   r   r   r   Tensor      r  torchr\  N)r   r  r  modulesr   r   r   _unpack_to_numpyr_   ra  r	   )r  r  rS   Ztorch_tensorr   r   r   r   test_unpack_to_numpy_from_torch  s   



r  c                  C  r  )z
    Test that jax arrays are converted to NumPy arrays.

    We don't want to create a dependency on jax in the test suite, so we mock it.
    c                   @  r  )z,test_unpack_to_numpy_from_jax.<locals>.Arrayc                 S  r  r^   r  r   r   r   r   r    r  z5test_unpack_to_numpy_from_jax.<locals>.Array.__init__c                 S  r  r^   r  r   r   r   r   r    r  z6test_unpack_to_numpy_from_jax.<locals>.Array.__array__Nr  r   r   r   r   Array  r  r  jaxr\  N)r   r  r  r  r   r   r   r  r_   ra  r	   )r  r  rS   Z	jax_arrayr   r   r   r   test_unpack_to_numpy_from_jax  s   



r  c                    sp   G dd d t d}  fdd| _ | _| tjd< td}| |}t|}t	|tj
s1J t|| dS )z
    Test that tensorflow arrays are converted to NumPy arrays.

    We don't want to create a dependency on tensorflow in the test suite, so we mock it.
    c                   @  r  )z4test_unpack_to_numpy_from_tensorflow.<locals>.Tensorc                 S  r  r^   r  r   r   r   r   r    r  z=test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__init__c                 S  r  r^   r  r   r   r   r   r    r  z>test_unpack_to_numpy_from_tensorflow.<locals>.Tensor.__array__Nr  r   r   r   r   r    r  r  
tensorflowc                   s
   t |  S r^   )r_   r   r  r   r   r     s   
 z6test_unpack_to_numpy_from_tensorflow.<locals>.<lambda>r\  N)r   Z	is_tensorr  r  r  r   r   r   r  r_   ra  r	   )r  rS   Z	tf_tensorr   r   r  r   $test_unpack_to_numpy_from_tensorflow  s   



r  )T
__future__r   r:  r  r   r  typingr   Zunittest.mockr   r   r   r   r   numpyr   Znumpy.testingr	   r
   r   r   r  r   r   Zmatplotlib.colorscolorsr:   Zmatplotlib.cbookr   r   typesr   r   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,  r   rg  r.  r@  rD  rI  rN  rR  rc  rm  rs  rw  ry  r{  r~  r  r  r  r  r  r  r  r  r  r   r   r   r   <module>   s    "~ !
!



S



R

