o
    ge                     @   sd  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 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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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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#d0d1 Z$d2d3 Z%d4d5 Z&d6d7 Z'd8d9 Z(d:d; Z)d<d= Z*ej !d>e	+d?,d"d@dfe	+d?dfe	+d?e	+d"fgdAdB Z-dCdD Z.dEdF Z/dGdH Z0dIdJ Z1dKdL Z2dMdN Z3dOdP Z4dQdR Z5dSdT Z6dUdV Z7dWdX Z8dS )Y    N)ref)patchMock)datetime)assert_array_equalassert_approx_equalassert_array_almost_equal)_api)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/cloudmapper/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   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   ardvarkr)   labelsrN   )rY   rZ   rV   zip)r   r   rs   labrh   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   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                   @   s   e Z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)signalrY   CallbackRegistry	callbacksr   r   r   r   ra      s   zTest_callback_registry.setupc                 C   s$   | j ||}|r| j j| |S rb   )r   connect_pickled_cidsadd)r   sfuncpicklecidr   r   r   r      s   zTest_callback_registry.connectc                 C   s   | j |S rb   )r   
disconnect)r   r   r   r   r   r      s   z!Test_callback_registry.disconnectc                 C   s:   t | jj| jg }t | jj| j}||ksJ |S rb   )lenr   _func_cid_mapgetr   )r   count1count2r   r   r   count   s   zTest_callback_registry.countc                 C   s6   | j ji ksJ | j j i ksJ | j jt ksJ d S rb   )r   r   r   rj   r   r   r   r   is_empty   s   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   r   is_not_empty   s   z#Test_callback_registry.is_not_emptyr   TFc                 C   s   |    t }| | j|j|}t|tk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ksJ |   | | |    d S rb   	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k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      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   )hasattrr   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   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   rb   r   r   r   r   r   <lambda>2      zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>"_get_running_interactive_frameworkc                   S   r   rb   r   r   r   r   r   r   5  r   zargument mismatch c                   S   s   dS )Nznot-noner   r   r   r   r   r   <  r   z,takes 0 positional arguments but 1 was given)rY   r   r   setattrr   r   	TypeErrorprocess
readouterrouterr)capsysmonkeypatchcbouterrr   r   r   /test_callbackregistry_default_exception_handler0  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   TestExceptionD      r   c                   S      t rb   )RuntimeErrorr   r   r   r   raise_runtime_errorG  r   z+raising_cb_reg.<locals>.raise_runtime_errorc                   S   r   rb   )r   r   r   r   r   raise_value_errorJ  r   z)raising_cb_reg.<locals>.raise_value_errorc                    s   t | tr | rb   )rc   r   )excpr   r   r   transformerM  s   
z#raising_cb_reg.<locals>.transformer)exception_handlerr   zcb, excp)		ExceptionrY   r   r   r   r   r   r   r   )r   r   r   r   cb_oldcb_filtcb_filt_passr   r   r   raising_cb_regC  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   g  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_handlerd  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_sequencel  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   r	   'suppress_matplotlib_deprecation_warningrY   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 rb   )r	   r   rY   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\Z)matchr   )
r   objectrY   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   rY   pts_to_prestepasarrayfloatr   	r   y1y2xsy1sy2sx_target	y1_target	y2_targetr   r   r   test_to_prestep     





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_empty     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_poststep  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   Dummy  r   r#  c                       g | ]}  qS r   r   .0_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   $

$r7  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   )r3  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   

rB  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#  4  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)  C  r*  z-test_reshape2d.<locals>.<listcomp>.<listcomp>r    r+  r%  r(  r   r   r)  C  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   rE  f  s   z.test_reshape2d.<locals>.ArraySubclass.__iter__c                    s   t t |S rb   )r   r"   rD  __getitem__)r   itemrF  r   r   rH  j  s   z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r<   r=   r>   rE  rH  __classcell__r   r   rF  r   ArraySubclassd  s    rK  
   r  )rL  )r  buffer)	r   r   r   r   ddr   r   ffr   )rY   _reshape_2Dr   r   r+  r   rQ   randrc   rd   ndarrayr  rV   r   )xnewr   rK  r   r   r(  r   test_reshape2d2  sJ   
"""""&		rT  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   rL  r   r   )columnsr   )
r   r   reshape	DataFramerY   rP  r   Ttestingr   )pdXr   XnewrS  r   r   r   test_reshape2d_pandas~  s   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    )rY   contiguous_regions)r   r   r   r,   r   r   r   r   r   r   test_contiguous_regions  s   
(ra  c                 C   s2   | j tdtddd}t|}|dksJ d S )Nr    rL     )indexr   )Seriesr+  rY   r?  )r[  r   r2   r   r   r   %test_safe_first_element_pandas_series  s   
re  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   
rj  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_perimeterrY  appendr   r  array_equal_array_patch_perimeters)r   rl  rm  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   )r&  r   nr   r   r)    s    zAtest_array_patch_perimeters.<locals>.divisors.<locals>.<listcomp>r   rC  r}  r   r}  r   divisors  s   z-test_array_patch_perimeters.<locals>.divisors))r    r    )r_     )   	   r   rk  )r   r   rW  r1  r2  )r|  r  rr  rs  r   rl  rm  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__  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   )clsr   r   r   classy     z!test_setattr_cm.<locals>.A.classyc                   S   r   rb   r   r   r   r   r   static  r  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   r5    s    


r5  c                   @   r   )ztest_setattr_cm.<locals>.BNr   r   r   r   r   r6    r   r6  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r5  r   r4  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  )r6  r  r   r  r   test_setattr_cm  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   rL  z
0.00123456)rY   _format_approx)r   r   r   r   test_format_approx!  s   ,r  )9r1  r   weakrefr   unittest.mockr   r   r   numpyr   numpy.testingr   r   r   r   
matplotlibr	   matplotlib.cbookrY   matplotlib.colorscolorsr8   r
   r   r?   r   r   r   r   r   fail_mappingpass_mappingr   r   r   r   r   r  r  r  r  r  r  r   rW  r"  r7  r<  rB  rT  r^  ra  re  rj  r  r  r  r   r   r   r   <module>   s    "~|!




LR