B
    Jdfk              	   @   sp  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 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&d(d) Z'd*d+ Z(d,d- Z)d.d/ Z*d0d1 Z+ej!"d2e	,d3-d4d5dfe	,d3dfe	,d3e	,d4fgd6d7 Z.d8d9 Z/d:d; Z0d<d= Z1d>d? Z2d@dA Z3dBdC Z4dDdE Z5dFdG Z6dHdI Z7dJdK Z8dLdM Z9dNdO Z:dPdQ Z;dRdS Z<dS )T    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   s,   t t tdtdd W d Q R X d S )Nza stringg      ?g      @)pytestraises
ValueErrorr
   nparange)self r   M/var/www/html/venv/lib/python3.7/site-packages/matplotlib/tests/test_cbook.pytest_bad_first_arg   s    z,Test_delete_masked_points.test_bad_first_argc             C   sj   ddddddg}ddd	t jt jd
g}t||\}}ddddg}t|t ||  t|t ||  d S )Nabcdef            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ddd	d	ddgd
}t||}dddg}t|d t||  t|d ||   d S )Ni  r   r   r      r   r   FT)maskr   )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   s   t jjdddt jt jdgddddddgd}tdd	d
dddg}t||}dddg}t|d ||   t|d ||  d S )Nr   r   r   r   FT)r%   rgr   r   myr   r   )	r   r&   r!   r    mcolorsZto_rgba_arrayr
   r   r'   )r   r)   Za_rgbar*   r"   r   r   r   	test_rgba,   s    

z#Test_delete_masked_points.test_rgbaN)__name__
__module____qualname__r   r#   r+   r1   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ddd	d
dddddddg| _t	
| j| _dddddt ddddg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      ?g      ?)sizemeansigmar8   medq1q3iqrcilocihiwhislowhishiflierslabelgP$C@g@ÿg>zzD*@gjtxJ*@gDm(
@gӾ#W@g79qU@gEɳE@gqמC@g]Y?g6 v-@gIQ;@g inޓ?)
r?   r>   r=   r8   r:   rB   r;   r<   rA   r@   gN!@g?)r?   r>   g =ɳE@)rA   r@   rB   geLM?)r@   rA   g,#W@)r   randomseedZnrowsZncolsZ	lognormaldatasorted
known_keyscbookboxplot_statsstd_resultsr!   known_nonbootstrapped_resknown_bootstrapped_ciknown_whis3_resknown_res_percentilesknown_res_range)r   r   r   r   setup7   s<    



zTest_boxplot_stats.setupc             C   s   t | jtstd S )N)
isinstancerK   listAssertionError)r   r   r   r   test_form_main_listi   s    z&Test_boxplot_stats.test_form_main_listc             C   s"   x| j D ]}t|tstqW d S )N)rK   rR   dictrT   )r   resr   r   r   test_form_each_dictl   s    z&Test_boxplot_stats.test_form_each_dictc             C   s*   x$| j D ]}t|t| jkstqW d S )N)rK   setrH   rT   )r   rW   r   r   r   test_form_dict_keysp   s    z&Test_boxplot_stats.test_form_dict_keysc             C   s4   | j d }x$| j D ]\}}t|| | qW d S )Nr   )rK   rL   itemsr   )r   rW   keyvaluer   r   r   test_results_baselinet   s    
z(Test_boxplot_stats.test_results_baselinec             C   sB   t j| jdd}|d }x$| j D ]\}}t|| | q$W d S )Ni'  )Z	bootstrapr   )rI   rJ   rF   rM   r[   r   )r   resultsrW   r\   r]   r   r   r   test_results_bootstrappedy   s    z,Test_boxplot_stats.test_results_bootstrappedc             C   sB   t j| jdd}|d }x$| j D ]\}}t|| | q$W d S )Nr   )whisr   )rI   rJ   rF   rN   r[   r   )r   r_   rW   r\   r]   r   r   r   test_results_whiskers_float   s    z.Test_boxplot_stats.test_results_whiskers_floatc             C   sF   t j| jddgd}|d }x$| j D ]\}}t|| | q(W d S )Nr   d   )ra   )rI   rJ   rF   rP   r[   r   )r   r_   rW   r\   r]   r   r   r   test_results_whiskers_range   s    z.Test_boxplot_stats.test_results_whiskers_rangec             C   sF   t j| jddgd}|d }x$| j D ]\}}t|| | q(W d S )Nr   _   )ra   r   )rI   rJ   rF   rO   r[   r   )r   r_   rW   r\   r]   r   r   r   !test_results_whiskers_percentiles   s    z4Test_boxplot_stats.test_results_whiskers_percentilesc             C   sn   ddddg}t j| j|d}x&t||D ]\}}|d |ks(tq(W t | j}x|D ]}d|ksVtqVW d S )NZTest1r   Zardvarkr$   )labelsrC   )rI   rJ   rF   ziprT   )r   rg   r_   ZlabrW   r   r   r   test_results_withlabels   s    
z*Test_boxplot_stats.test_results_withlabelsc          	   C   s2   ddg}t t tj| j|d W d Q R X d S )Nr   r   )rg   )r   r   r   rI   rJ   rF   )r   rg   r   r   r   test_label_error   s    z#Test_boxplot_stats.test_label_errorc          	   C   s2   t jjdd}tt t| W d Q R X d S )N)"   rk   rk   )r7   )r   rD   normalr   r   r   rI   rJ   )r   rF   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sLt|d d
 dks`tt|d d ddg |d d	 dkst|d d
 dkstt|d d g  d S )N   )shapei   F)Z	autorangeTr   r@   rA   rB   )r   ZzerosZhstackrI   rJ   rT   r   )r   xZbstats_falseZbstats_truer   r   r   "test_boxplot_stats_autorange_false   s    z5Test_boxplot_stats.test_boxplot_stats_autorange_falseN)r2   r3   r4   rQ   rU   rX   rZ   r^   r`   rb   rd   rf   ri   rj   rm   rr   r   r   r   r   r5   6   s   2
r5   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)signalrI   CallbackRegistry	callbacks)r   r   r   r   rQ      s    zTest_callback_registry.setupc             C   s$   | j ||}|r | j j| |S )N)rw   connect_pickled_cidsadd)r   sfuncpicklecidr   r   r   rx      s    zTest_callback_registry.connectc             C   s   | j |S )N)rw   
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s6t|S )N)lenrw   _func_cid_mapgetru   rT   )r   Zcount1Zcount2r   r   r   count   s    zTest_callback_registry.countc             C   s@   t j  | jji kst| jji ks*t| jjt ks<td S )N)r   testingbreak_cyclesrw   r   rT   ry   rY   )r   r   r   r   is_empty   s    
zTest_callback_registry.is_emptyc             C   s.   t j  | jji kst| jji ks*td S )N)r   r   r   rw   r   rT   )r   r   r   r   is_not_empty   s    
z#Test_callback_registry.is_not_emptyr}   TFc             C   s   |    t }| | j|j|}t|tks0t|   | | j|j|}||ksVt|   t	| j
jdksrtt	| j
j
dkst~|    d S )Nr   )r   rs   rx   ru   dummytypeintrT   r   r   rw   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ks0t|   | 	| |    d S )N)
r   rs   rx   ru   r   r   r   rT   r   r   )r   r}   r   r   r   r   r   test_callback_disconnect   s    
z/Test_callback_registry.test_callback_disconnectc             C   sN   |    t }| | j|j|}t|tks0t|   | 	d |   d S )Nfoo)
r   rs   rx   ru   r   r   r   rT   r   r   )r   r}   r   r   r   r   r   test_callback_wrong_disconnect   s    
z5Test_callback_registry.test_callback_wrong_disconnectc             C   s|   |    t }| | j|j| t }| | j|j| t }| | j|j| |   |  dkshtd }d }|    d S )Nr   )r   rs   rx   ru   r   r   r   rT   )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   d S )Nr   )r   r   r   r   r   *  s    zTest_callback_registry.dummyc             C   s"   t ttt dstd S )Nrw   )hasattrr}   loadsdumpsrI   rv   rT   )r   r   r   r   test_pickling-  s    z$Test_callback_registry.test_picklingN)r2   r3   r4   rQ   rx   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   r   r   r   rs      s   rs   c          	   C   s   t  }|ddd  |t ddd  tt |dd W d Q R X |  }|j	|j
  krldksrn t|t ddd  |dd |  }|j	dkstd	|j
kstd S )
Nr   c               S   s   d S )Nr   r   r   r   r   <lambda>4      zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>"_get_running_interactive_frameworkc               S   s   d S )Nr   r   r   r   r   r   7  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)rI   rv   rx   setattrr   r   	TypeErrorprocessZ
readouterrouterrrT   )ZcapsysmonkeypatchcbZouterrr   r   r   /test_callbackregistry_default_exception_handler2  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               @   s   e Zd ZdS )z%raising_cb_reg.<locals>.TestExceptionN)r2   r3   r4   r   r   r   r   TestExceptionF  s   r   c               S   s   t d S )N)RuntimeErrorr   r   r   r   raise_runtime_errorI  s    z+raising_cb_reg.<locals>.raise_runtime_errorc               S   s   t d S )N)r   r   r   r   r   raise_value_errorL  s    z)raising_cb_reg.<locals>.raise_value_errorc                s   t | tr | d S )N)rR   r   )excp)r   r   r   transformerO  s    
z#raising_cb_reg.<locals>.transformer)exception_handlerr   zcb, excp)		ExceptionrI   rv   rx   r   r   r   r   r   )r|   r   r   r   Zcb_oldZcb_filtZcb_filt_passr   )r   r   raising_cb_regE  s    r   c          	   C   s6   |  tddd  t| |d W d Q R X d S )Nr   c               S   s   d S )Nr   r   r   r   r   r   i  r   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>r   )r   rI   r   r   r   )r   r   r   r   r   r   .test_callbackregistry_custom_exception_handlerf  s    r   c           
   C   s   dd } t j| d}dd }dd }|d| |d	| |  |d |d	 W d Q R X |jdd
4 |d tjtdd |d	 W d Q R X W d Q R X tjtdd |d W d Q R X tjtdd |d	 W d Q R X d S )Nc             S   s   | d S )Nr   )r   r   r   r   raise_handlerq  s    z5test_callbackregistry_blocking.<locals>.raise_handler)r   c               S   s   t dd S )Nz1 should be blocked)r   r   r   r   r   
test_func1t  s    z2test_callbackregistry_blocking.<locals>.test_func1c               S   s   t dd S )Nz2 should be blocked)r   r   r   r   r   
test_func2v  s    z2test_callbackregistry_blocking.<locals>.test_func2Ztest1Ztest2)ru   z2 should be blocked)matchz1 should be blocked)rI   rv   rx   Zblockedr   r   r   r   )r   r   r   r   r   r   r   test_callbackregistry_blockingn  s"    


r   c              C   s   dddd} dddg}dddg}dd	d
g}|t t|  ksDt|t t|  ks^t|t t|  ksxt|t|kst|t|kstd S )Nr   r   r   )r   r   r   r   r   r   )r   r   )r   r   )r   r   )rG   rI   Zsanitize_sequencekeysrT   valuesr[   )r   kvir   r   r   test_sanitize_sequence  s    


r   r   r   )r   r   Zalias_mappingr   r   zinp, kwargs_to_normc          
   C   s<   t t( t  tj| f| W d Q R X W d Q R X d S )N)r   r   r   r	   'suppress_matplotlib_deprecation_warningrI   normalize_kwargs)inpkwargs_to_normr   r   r   test_normalize_kwargs_fail  s    
r   zinp, expected, kwargs_to_normc          	   C   s.   t   |tj| f|ks tW d Q R X d S )N)r	   r   rI   r   rT   )r   expectedr   r   r   r   test_normalize_kwargs_pass  s    
r   c           
   C   sL   t td6} td d| _tjtdd t	d W d Q R X W d Q R X d S )Nsys)Zreturn_valuez	\Adummy\Z)r   r   )
r   objectrI   r   	_getframer   ZwarnsUserWarningr	   warn_external)Zmock_sysr   r   r   (test_warn_external_frame_embedded_python  s    r   c        	      C   s   t d} t d}t dd d d }t| ||\}}}t jdddddddgtd}t jdddddddgtd}t jdddddddgtd}t|| t|| t|| t| |\}}t|| t|| d S )Nr$   r   r   r   r   )dtype)r   r   rI   pts_to_prestepasarrayfloatr   )	rq   y1y2xsy1sy2sx_target	y1_target	y2_targetr   r   r   test_to_prestep  s    





r   c              C   s   t g g } | jdkstd S )N)r   r   )rI   r   ro   rT   )stepsr   r   r   test_to_prestep_empty  s    r   c        	      C   s   t d} t d}t dd d d }t| ||\}}}t jdddddddgtd}t jdddddddgtd}t jdddddddgtd}t|| t|| t|| t| |\}}t|| t|| d S )Nr$   r   r   r   r   r   )r   )r   r   rI   pts_to_poststepr   r   r   )	rq   r   r   r   r   r   r   r   r   r   r   r   test_to_poststep  s    





r   c              C   s   t g g } | jdkstd S )N)r   r   )rI   r   ro   rT   )r   r   r   r   test_to_poststep_empty  s    r   c        	   	   C   s   t d} t d}t dd d d }t| ||\}}}t jddddddddgtd}t jddd	d	d
d
ddgtd}t jddd
d
d	d	ddgtd}t|| t|| t|| t| |\}}t|| t|| d S )Nr$   r   r   g      ?g      ?g      @r   )r   r   r   )r   r   rI   pts_to_midstepr   r   r   )	rq   r   r   r   r   r   r   r   r   r   r   r   test_to_midstep  s    





r   c              C   s   t g g } | jdkstd S )N)r   r   )rI   r   ro   rT   )r   r   r   r   test_to_midstep_empty  s    r   args   r   r$   c          	   C   s$   t t tj|   W d Q R X d S )N)r   r   r   rI   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s`tt|| t|ksztx$|dd  D ]}|| |stqW |	|  x$|dd  D ]}|| |rtqW x8t
|dd  |dd  D ]\}}	|||	stqW d S )Nc               @   s   e Zd ZdS )ztest_grouper.<locals>.DummyN)r2   r3   r4   r   r   r   r   Dummy  s   r   c                s   g | ]
}  qS r   r   ).0_)r   r   r   
<listcomp>  s    z test_grouper.<locals>.<listcomp>r   r   r   )rangerI   GrouperjoinrY   rS   rT   Zget_siblingsZjoinedremove	itertoolsproduct)
r   r   r   r   r   objsr-   otherABr   )r   r   test_grouper  s    $

&r   c                 s   G dd d  fddt dD } t }|j|   |j}x| D ]}t||ksBtqBW |t| d  }x(| dd  D ]}|t| |ksxtqxW d S )Nc               @   s   e Zd ZdS )z#test_grouper_private.<locals>.DummyN)r2   r3   r4   r   r   r   r   r   '  s   r   c                s   g | ]
}  qS r   r   )r   r   )r   r   r   r   )  s    z(test_grouper_private.<locals>.<listcomp>r   r   r   )r   rI   r   r   _mappingr   rT   )r   r-   mappingoZbase_setr   )r   r   test_grouper_private&  s    

r   c              C   sj   t d} | j}dt|ks tdt|ks0tt|}|dksFtdt|ksVtdt|ksftd S )Nr   r   r   )r   r   ZflatnextrT   rI   safe_first_element)rq   itretr   r   r   test_flatiter7  s    

r   c           	      sR  G dd d t g d} t| dks,t fddtdD }t |d} t| dks`ttd}t |d} t| dkst fd	dtd
D }t |d} t| dksttjd
d}t |d} t| dkstdgdgd
gg}t |d} t	| t
stt	| d tjr6| d jdks:tt	| d tjr\| d jdks`tt	| d tjr| d jdksttdtdtdg}t |d} t	| t
stt| dkstt	| d tjr| d jdkstddd
gd
dgdgg}t |d} t	| t
s(tt	| d tjrJ| d jdksNtt	| d tjrp| d jdksttt	| d tjr| d jdkstG dd dtj}tjdtd}|dt|jd}t |d} t| dkstt	| d |stdddddddd dg	}t |d} t| d t|ks8tt	| d tjsNtd S )!Nc               @   s   e Zd ZdS )ztest_reshape2d.<locals>.DummyN)r2   r3   r4   r   r   r   r   r   E  s   r   rq   )r   r   c                s   g | ]
}  qS r   r   )r   r   )r   r   r   r   K  s    z"test_reshape2d.<locals>.<listcomp>r   )r   r   c                s"   g | ]} fd dt dD qS )c                s   g | ]
}  qS r   r   )r   r   )r   r   r   r   T  s    z-test_reshape2d.<locals>.<listcomp>.<listcomp>r   )r   )r   r   )r   r   r   r   T  s    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$   xt   D ]}t|V  qW d S )N)super__iter__r   r!   )r   r]   )	__class__r   r   r   ~  s    z.test_reshape2d.<locals>.ArraySubclass.__iter__c                s   t t |S )N)r   r!   r   __getitem__)r   item)r   r   r   r     s    z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r2   r3   r4   r   r   __classcell__r   r   )r   r   ArraySubclass|  s   r   
   )r   )r   )r   bufferr   r   r   ddr   r   ff)rI   _reshape_2Dr   ro   rT   r   r   rD   ZrandrR   rS   Zndarrayr!   r   r   rF   )xnewrq   r   r   r   )r   r   test_reshape2dC  sT    
&&&&&&&		r  c             C   s^   t ddd}| j|dddgd}t|d}x&t|j|D ]\}}t j	|| q@W d S )	N   r   r   r   r   r   )columnsrq   )
r   r   reshape	DataFramerI   r  rh   Tr   r   )pdXrq   Xnewr  r   r   r   test_reshape2d_pandas  s
    r  c             C   s\   t ddd}| j|ddgd}t|d}x&t|j|D ]\}}t j	|| q>W d S )Nr  r   r   rq   r/   )dims)
r   r   r  	DataArrayrI   r  rh   r	  r   r   )xrr  rq   r  r  r   r   r   test_reshape2d_xarray  s
    r  c             C   s^   t ddd}| j|dddgd}t|\}}t j|| t d}t j|| d S )Nr  r   r   r   r   r   )r  )r   r   r  r  rI   index_ofr   r   )r
  r  rq   Idxr  IdxRefr   r   r   test_index_of_pandas  s    
r  c             C   s\   t ddd}| j|ddgd}t|\}}t j|| t d}t j|| d S )Nr  r   r   rq   r/   )r  )r   r   r  r  rI   r  r   r   )r  r  rq   r  r  r  r   r   r   test_index_of_xarray  s    
r  c              C   s"  d\} }}dg|  dg|  dg|  }d| f| | | | | fg}t ||ksVtd\}}|dg|  }t ||ks~tdg| |d |   }|||  f||  | ||  | | fg}t ||kst|dg|  }t ||kstt dgd g ks
tt g g kstd S )N)r   r$   r   TFr   )r      r   )rI   Zcontiguous_regionsrT   )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.td S )Nr   r      )indexr   )ZSeriesr   rI   r   rT   )r
  r{   r*   r   r   r   %test_safe_first_element_pandas_series  s    
r  c             C   s0   t d t| dkst| d jtks,td S )NZoopsr   r   )r	   r   r   rT   filename__file__)Zrecwarnr   r   r   test_warn_external  s    
r  c              C   st   dd } dd }x^dD ]V\}}t || ||}x6t||d ||d D ]\}}| |||d qRW qW d S )Nc          	   S   s   | j \}}td|d ||d f}td|d ||d f}g }x|t|d d |dd  D ]^\}}	xTt|d d |dd  D ]6\}
}t| ||	d |
|d f j}|| qW q^W t|}t	|tj
| ||dstd S )Nr   r   r   )rstridecstride)ro   r   rh   rI   Z_array_perimeterr	  appendr   r   Zarray_equalZ_array_patch_perimetersrT   )rq   r  r   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   )r'  r   )r'  r   divisors  s    z-test_array_patch_perimeters.<locals>.divisors))r   r   )r     )   	   r   )r  r   )r   r   r  r   r   )r&  r(  r"  r#  rq   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
 j j kstjjkstjdkstjdkstjdkstjdkstjj kstj	dkstj
dkstjdkstW d Q R X | 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.  _p)r   r   r   r   __init__  s    z#test_setattr_cm.<locals>.A.__init__c             S   s   d S )Nr   )r   r   r   r   meth  s    ztest_setattr_cm.<locals>.A.methc             S   s   d S )Nr   )clsr   r   r   classy  s    z!test_setattr_cm.<locals>.A.classyc               S   s   d S )Nr   r   r   r   r   static  s    z!test_setattr_cm.<locals>.A.staticc             S   s   | j S )N)r0  )r   r   r   r   prop  s    ztest_setattr_cm.<locals>.A.propc             S   s
   || _ d S )N)r0  )r   valr   r   r   r6    s    N)r2   r3   r4   r   	cls_levelr.  r1  r2  classmethodr4  staticmethodr5  propertyr6  setterr   r   r   r   r     s   r   c               @   s   e Zd ZdS )ztest_setattr_cm.<locals>.BN)r2   r3   r4   r   r   r   r   r     s   r   c                s   | j | j k	st| j| jks tjdks.t| j| jks>t| j jksNt| jdks\tt| drjt| jdksxt| jj kst| j jkstd| jkstd| jkstd| jkstd S )Nr-  r.  extrar/  r8  r4  r5  )	r2  rT   r-  r6  r8  r.  r   monkey__dict__)obj)r   r   r   r   r   verify_pre_post_state   s    z.test_setattr_cm.<locals>.verify_pre_post_stateZsquirrelZmoosec               S   s   d S )Nr   r   r   r   r   r   <  r   z!test_setattr_cm.<locals>.<lambda>boor=  c               S   s   d S )Nr   r   r   r   r   r   >  r   Zbobr4  r5  )	r6  r-  r2  r.  r=  r>  r8  r4  r5  )r2  r>  rI   Z_setattr_cmrT   r-  r.  r=  r6  r8  r4  r5  )r   rA  r   )r   r   r   r   test_setattr_cm  s0    rC  c              C   s   t j} | dddkst| dddks*t| dddks<t| dddksNt| dd	dks`t| d
d	dksrt| dd	dkst| d
d| d
d  krdksn td S )Nr   r   0r   r   g(0z-0gHz>r   gӴ:T?z0.00123gӴ:Tz-0.00123   r   z
0.00123456)rI   Z_format_approxrT   )r   r   r   r   test_format_approxP  s    rF  )=r   r}   weakrefr   Zunittest.mockr   r   r   numpyr   Znumpy.testingr   r   r   r   Z
matplotlibr	   Zmatplotlib.cbookrI   Zmatplotlib.colorscolorsr0   r
   r   r5   rs   r   r   r   r   r   Zfail_mappingZpass_mappingr   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,  rC  rF  r   r   r   r   <module>   sj   "~~!!  S



R