U
    \	ae                     @   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   s,   t t tdtdd W 5 Q R X d S )Nza stringg      ?g      @)pytestraises
ValueErrorr
   nparangeself r   ?/tmp/pip-unpacked-wheel-wjyw_3jo/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   FTr&   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-   r3   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      ?)sizemeansigmar;   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ޓ?)
rB   rA   r@   r;   r=   rE   r>   r?   rD   rC   gN!@g?)rB   rA   g =ɳE@)rD   rC   rE   geLM?)rC   rD   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_ranger   r   r   r   setup7   sd                zTest_boxplot_stats.setupc                 C   s   t | jtstd S N)
isinstancerN   listAssertionErrorr   r   r   r   test_form_main_listi   s    z&Test_boxplot_stats.test_form_main_listc                 C   s   | j D ]}t|tstqd S rU   )rN   rV   dictrX   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tqd S rU   )rN   setrK   rX   r[   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   )rN   rO   itemsr   )r   r\   keyvaluer   r   r   test_results_baselinet   s    
z(Test_boxplot_stats.test_results_baselinec                 C   s>   t j| jdd}|d }| j D ]\}}t|| | q"d S )Ni'  )Z	bootstrapr   )rL   rM   rI   rP   r`   r   r   resultsr\   ra   rb   r   r   r   test_results_bootstrappedy   s    z,Test_boxplot_stats.test_results_bootstrappedc                 C   s>   t j| jdd}|d }| j D ]\}}t|| | q"d S )Nr   Zwhisr   )rL   rM   rI   rQ   r`   r   rd   r   r   r   test_results_whiskers_float   s    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   rg   )rL   rM   rI   rS   r`   r   rd   r   r   r   test_results_whiskers_range   s    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    _   rg   r   )rL   rM   rI   rR   r`   r   rd   r   r   r   !test_results_whiskers_percentiles   s    z4Test_boxplot_stats.test_results_whiskers_percentilesc                 C   sf   ddddg}t j| j|d}t||D ]\}}|d |ks&tq&t | j}|D ]}d|ksPtqPd S )NZTest1r   Zardvarkr%   labelsrF   )rL   rM   rI   ziprX   )r   rn   re   Zlabr\   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 5 Q R X d S )Nr   r   rm   )r   r   r   rL   rM   rI   )r   rn   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 5 Q R X d S )N)"   rr   rr   )r:   )r   rG   normalr   r   r   rL   rM   )r   rI   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   rC   rD   rE   )r   zerosZhstackrL   rM   rX   r   )r   xZbstats_falseZbstats_truer   r   r   "test_boxplot_stats_autorange_false   s    z5Test_boxplot_stats.test_boxplot_stats_autorange_falseN)r4   r5   r6   rT   rY   r]   r_   rc   rf   rh   rj   rl   rp   rq   rt   rz   r   r   r   r   r7   6   s   2
r7   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)signalrL   CallbackRegistry	callbacksr   r   r   r   rT      s    zTest_callback_registry.setupc                 C   s$   | j ||}|r | j j| |S rU   )r   connect_pickled_cidsadd)r   sfuncpicklecidr   r   r   r      s    zTest_callback_registry.connectc                 C   s   | j |S rU   )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s6t|S rU   )lenr   _func_cid_mapgetr}   rX   )r   Zcount1Zcount2r   r   r   count   s    zTest_callback_registry.countc                 C   s6   | j ji kst| j j i ks t| j jt ks2td S rU   )r   r   rX   r   r^   r   r   r   r   is_empty   s    zTest_callback_registry.is_emptyc                 C   s$   | j ji kst| j j i ks td S rU   )r   r   rX   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   r{   r   r}   dummytypeintrX   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   |    t }| | j|j|}t|tks0t|   | 	| |    d S rU   
r   r{   r   r}   r   r   r   rX   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foor   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   r{   r   r}   r   r   r   rX   )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 rU   r   r   r   r   r   r   (  s    zTest_callback_registry.dummyc                 C   s"   t ttt dstd S )Nr   )hasattrr   loadsdumpsrL   r~   rX   r   r   r   r   test_pickling+  s    z$Test_callback_registry.test_picklingN)r4   r5   r6   rT   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 5 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 rU   r   r   r   r   r   <lambda>2      zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>"_get_running_interactive_frameworkc                   S   s   d S rU   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)rL   r~   r   setattrr   r   	TypeErrorprocessZ
readouterrouterrrX   )ZcapsysmonkeypatchcbZ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                   @   s   e Zd ZdS )z%raising_cb_reg.<locals>.TestExceptionNr4   r5   r6   r   r   r   r   TestExceptionD  s   r   c                   S   s   t d S rU   )RuntimeErrorr   r   r   r   raise_runtime_errorG  s    z+raising_cb_reg.<locals>.raise_runtime_errorc                   S   s   t d S rU   )r   r   r   r   r   raise_value_errorJ  s    z)raising_cb_reg.<locals>.raise_value_errorc                    s   t | tr | d S rU   )rV   r   )excpr   r   r   transformerM  s    
z#raising_cb_reg.<locals>.transformer)Zexception_handlerr   zcb, excp)		ExceptionrL   r~   r   r   r   r   r   r   )r   r   r   r   Zcb_oldZcb_filtZcb_filt_passr   r   r   raising_cb_regC  s$    r   c              	   C   s6   |  tddd  t| |d W 5 Q R X d S )Nr   c                   S   s   d S rU   r   r   r   r   r   r   g  r   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>r   )r   rL   r   r   r   )r   r   r   r   r   r   .test_callbackregistry_custom_exception_handlerd  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   )rJ   rL   Zsanitize_sequencekeysrX   valuesr`   )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   s<   t t( t  tj| f| W 5 Q R X W 5 Q R X d S rU   )r   r   r   r	   'suppress_matplotlib_deprecation_warningrL   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 5 Q R X d S rU   )r	   r   rL   r   rX   )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 5 Q R X W 5 Q R X d S )Nsys)Zreturn_valuez	\Adummy\Z)matchr   )
r   objectrL   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   rL   pts_to_prestepasarrayfloatr   	ry   y1y2xsZy1sZy2sZx_targetZ	y1_targetZ	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   )rL   r   rv   rX   Z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 r   )r   r   rL   pts_to_poststepr   r   r   r   r   r   r   test_to_poststep  s    





r   c                  C   s   t g g } | jdkstd S r   )rL   r   rv   rX   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      ?r9   g      @r   r   r   r   )r   r   rL   pts_to_midstepr   r   r   r   r   r   r   test_to_midstep  s    





r   c                  C   s   t g g } | jdkstd S r   )rL   r   rv   rX   r   r   r   r   test_to_midstep_empty  s    r   args   r%   c              	   C   s$   t t tj|   W 5 Q R X d S rU   )r   r   r   rL   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|dd  D ]}|| |stq|	|  |dd  D ]}|| |rtqt
|dd  |dd  D ]\}}	|||	stqd S )Nc                   @   s   e Zd ZdS )ztest_grouper.<locals>.DummyNr   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   )rangerL   Grouperjoinr^   rW   rX   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}| D ]}t||ks@tq@|t| d  }| dd  D ]}|t| |ksrtqrd S )Nc                   @   s   e Zd ZdS )z#test_grouper_private.<locals>.DummyNr   r   r   r   r   r     s   r   c                    s   g | ]
}  qS r   r   r   r   r   r   r     s     z(test_grouper_private.<locals>.<listcomp>r    r   r   )r   rL   r   r   _mappingr   rX   )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nextrX   rL   safe_first_element)ry   itretr   r   r   test_flatiter&  s    

r  c               	      s  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ddd
gd
dgdgg}t |d} t	| t
stt	| d tjr| d jdkstt	| d tjr | d jdkstt	| d tjr&| d jdks*tG dd dtj}tjdtd}|dt|jd}t |d} t| dksxtt	| d |stdddddddd dg	}t |d} t| d t|kstt	| d tjstd S )!Nc                   @   s   e Zd ZdS )ztest_reshape2d.<locals>.DummyNr   r   r   r   r   r   4  s   r   ry   )r   r   c                    s   g | ]
}  qS r   r   r   r   r   r   r   :  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   C  s     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   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 rU   )super__iter__r   r"   )r   rb   	__class__r   r   r  f  s    z.test_reshape2d.<locals>.ArraySubclass.__iter__c                    s   t t |S rU   )r   r"   r  __getitem__)r   itemr  r   r   r  j  s    z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r4   r5   r6   r  r  __classcell__r   r   r  r   ArraySubclassd  s   r
  
   r   )r  )r   bufferr   r   r   ddr   r   ff)rL   _reshape_2Dr   rv   rX   r   r   rG   ZrandrV   rW   Zndarrayr   rI   r   )xnewry   r
  r   r   r   r   test_reshape2d2  sJ    
&&&&&&		r  c                 C   s   t ddd}| j|dddgd}t|d}t|j|D ]\}}t j	|| q>t ddd}| j|dddgd}t|d}t|j|D ]\}}t j	|| qd S )	N   r  r   r   r   r   )columnsry   )
r   r   reshapeZ	DataFramerL   r  ro   TZtestingr   )pdXry   ZXnewr  r   r   r   test_reshape2d_pandas~  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    )rL   Zcontiguous_regionsrX   )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   rL   r   rX   )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   rX   filename__file__)Zrecwarnr   r   r   test_warn_external  s    
r   c                  C   sl   dd } dd }dD ]R\}}t || ||}t||d ||d D ]\}}| |||d qNqd S )Nc              	   S   s   | j \}}td|d ||d f}td|d ||d f}g }t|d d |dd  D ]Z\}}	t|d d |dd  D ]6\}
}t| ||	d |
|d f j}|| q~q\t|}t	|tj
| ||dstd S )Nr   r   r   rstridecstride)rv   r   ro   rL   Z_array_perimeterr  appendr   r   Zarray_equalZ_array_patch_perimetersrX   )ry   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&  ry   r"  r#  r   r   r   test_array_patch_perimeters  s    
r0  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 5 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)r1  r2  _pr   r   r   r   __init__  s    z#test_setattr_cm.<locals>.A.__init__c                 S   s   d S rU   r   r   r   r   r   meth  s    ztest_setattr_cm.<locals>.A.methc                 S   s   d S rU   r   )clsr   r   r   classy  s    z!test_setattr_cm.<locals>.A.classyc                   S   s   d S rU   r   r   r   r   r   static  s    z!test_setattr_cm.<locals>.A.staticc                 S   s   | j S rU   r4  r   r   r   r   prop  s    ztest_setattr_cm.<locals>.A.propc                 S   s
   || _ d S rU   r:  )r   valr   r   r   r;    s    N)r4   r5   r6   r   	cls_levelr2  r5  r6  classmethodr8  staticmethodr9  propertyr;  setterr   r   r   r   r     s   


r   c                   @   s   e Zd ZdS )ztest_setattr_cm.<locals>.BNr   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 )Nr1  r2  extrar3  r=  r8  r9  )	r6  rX   r1  r;  r=  r2  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 rU   r   r   r   r   r   r     r   z!test_setattr_cm.<locals>.<lambda>ZboorB  c                   S   s   d S rU   r   r   r   r   r   r     r   Zbobr8  r9  )	r;  r1  r6  r2  rB  rC  r=  r8  r9  )r6  rC  rL   Z_setattr_cmrX   r1  r2  rB  r;  r=  r8  r9  )r   rG  r   rF  r   test_setattr_cm  s<         rH  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)rL   Z_format_approxrX   )r   r   r   r   test_format_approx!  s    rK  )9r   r   weakrefr   Zunittest.mockr   r   r   Znumpyr   Znumpy.testingr   r   r   r   Z
matplotlibr	   Zmatplotlib.cbookrL   Zmatplotlib.colorscolorsr2   r
   r   r7   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   r0  rH  rK  r   r   r   r   <module>   s   "~|!




LR