o
    :aig                  	   @   sX  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 Z9dS )N    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   =/usr/lib/python3/dist-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   Zdatesa_maskedactualr#   r   r   r   test_datetime!   s   
z'Test_delete_masked_points.test_datetimec                 C   sp   t jjdddt jt jdgg dd}tg d}t||}g d}t|d	 ||   t|d ||  d S )
Nr   r   r   r   r&   r'   )rgr   r   myr)   r   )	r   r*   r"   r!   mcolorsZto_rgba_arrayr
   r   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.   r4   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meanZsigma)r<   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ޓ?)
rB   rA   r@   r<   r=   rE   r>   r?   rD   rC   gN!@g?)rB   rA   g =ɳE@rG   rH   )rD   rC   rE   geLM?)rC   rD   g,#W@)r   randomZ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   s@   zTest_boxplot_stats.setupc                 C   s   t | jtsJ d S N)
isinstancerO   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 rV   )rO   rW   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 rV   )rO   setrL   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   )rO   rP   itemsr   )r   r\   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'  )Z	bootstrapr   )rM   rN   rJ   rQ   r`   r   r   resultsr\   ra   rb   r   r   r   test_results_bootstrappedy   
   z,Test_boxplot_stats.test_results_bootstrappedc                 C   rd   )Nr   Zwhisr   )rM   rN   rJ   rR   r`   r   re   r   r   r   test_results_whiskers_float   rh   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   ri   )rM   rN   rJ   rT   r`   r   re   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    _   ri   r   )rM   rN   rJ   rS   r`   r   re   r   r   r   !test_results_whiskers_percentiles   rm   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ardvarkr%   labelsrF   )rM   rN   rJ   zip)r   rq   rf   Zlabr\   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   rp   )r   r   r   rM   rN   rJ   )r   rq   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)"   ru   ru   )r;   )r   rI   Znormalr   r   r   rM   rN   )r   rJ   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   rC   rD   rE   )r   ZzerosZhstackrM   rN   r   )r   xZbstats_falseZbstats_truer   r   r   "test_boxplot_stats_autorange_false   s   z5Test_boxplot_stats.test_boxplot_stats_autorange_falseN)r5   r6   r7   rU   rY   r]   r_   rc   rg   rj   rl   ro   rs   rt   rv   r{   r   r   r   r   r8   6   s    2
r8   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)signalrM   CallbackRegistry	callbacksr   r   r   r   rU      s   zTest_callback_registry.setupc                 C   s$   | j ||}|r| j j| |S rV   )r   connect_pickled_cidsadd)r   sfuncpicklecidr   r   r   r      s   zTest_callback_registry.connectc                 C   s   | j |S rV   )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 rV   )lenr   _func_cid_mapgetr~   )r   Zcount1Zcount2r   r   r   count   s   zTest_callback_registry.countc                 C   s@   t j  | jji ksJ | jji ksJ | jjt ksJ d S rV   )r   testingbreak_cyclesr   r   r   r^   r   r   r   r   is_empty   s   
zTest_callback_registry.is_emptyc                 C   s.   t j  | jji ksJ | jji ksJ d S rV   )r   r   r   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cid1Z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 rV   	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   Zmini_me2r   r   r   'test_registration_on_non_empty_registry  s   z>Test_callback_registry.test_registration_on_non_empty_registryc                 C      d S rV   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dumpsrM   r   r   r   r   r   test_pickling-  s   z$Test_callback_registry.test_picklingN)r5   r6   r7   rU   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   rV   r   r   r   r   r   <lambda>4      zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>"_get_running_interactive_frameworkc                   S   r   rV   r   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)rM   r   r   setattrr   r   	TypeErrorprocessZ
readouterrouterr)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                   @      e Zd ZdS )z%raising_cb_reg.<locals>.TestExceptionNr5   r6   r7   r   r   r   r   TestExceptionF      r   c                   S      t rV   )RuntimeErrorr   r   r   r   raise_runtime_errorI  r   z+raising_cb_reg.<locals>.raise_runtime_errorc                   S   r   rV   r   r   r   r   r   raise_value_errorL  r   z)raising_cb_reg.<locals>.raise_value_errorc                    s   t | tr | rV   )rW   r   excpr   r   r   transformerO  s   
z#raising_cb_reg.<locals>.transformerZexception_handlerr   zcb, excp)		ExceptionrM   r   r   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   sL   |  tddd  t| |d W d    d S 1 sw   Y  d S )Nr   c                   S   r   rV   r   r   r   r   r   r   i  r   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>r   )r   rM   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    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   | rV   r   r   r   r   r   raise_handlerq  r   z5test_callbackregistry_blocking.<locals>.raise_handlerr   c                   S      t d)N1 should be blockedr   r   r   r   r   
test_func1t     z2test_callbackregistry_blocking.<locals>.test_func1c                   S   r   )N2 should be blockedr   r   r   r   r   
test_func2v  r   z2test_callbackregistry_blocking.<locals>.test_func2Ztest1Ztest2)r~   r   matchr   )rM   r   r   Zblockedr   r   r   r   )r   r   r   r   r   r   r   test_callbackregistry_blockingn  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   )rK   rM   Zsanitize_sequencekeys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   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 rV   )r   r   r   r	   'suppress_matplotlib_deprecation_warningrM   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 rV   )r	   r   rM   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)Zreturn_valuez	\Adummy\Zr   r   )
r   objectrM   r   	_getframer   ZwarnsUserWarningr	   warn_external)Zmock_sysr   r   r   (test_warn_external_frame_embedded_python  s   "r   c            	      C      t d} t d}t dd d d }t| ||\}}}t jg dtd}t jg dtd}t jg dtd}t|| t|| t|| t| |\}}t|| t|| d S )Nr%   r   r   r   r   r   r   r   dtyper   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   rM   pts_to_prestepasarrayfloatr   	rz   Zy1Z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   )rM   r   rx   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   rM   pts_to_poststepr   r   r   r   r   r   r   test_to_poststep  r   r   c                  C   r   r   )rM   r   rx   r   r   r   r   test_to_poststep_empty  r   r   c            	      C   r   )Nr%   r   )r         ?r   r:   r:         @r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   rM   pts_to_midstepr   r   r   r   r   r   r   test_to_midstep  r   r   c                  C   r   r   )rM   r   rx   r   r   r   r   test_to_midstep_empty  r   r   args   r   r%   c                 C   s:   t t tj|   W d    d S 1 sw   Y  d S rV   )r   r   r   rM   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   )rangerM   Grouperjoinr^   rX   Zget_siblingsZjoinedremove	itertoolsproduct)
r   r   r   r   r   objsr0   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||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  rM   r  r  _mappingr   )r  r0   mappingoZ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   ZflatnextrM   safe_first_element)rz   itretr   r   r   test_flatiter7  s   

r  c                     s  G dd d t g d} t| dksJ  fddtdD }t |d} t| dks0J td}t |d} t| dksDJ  fd	dtd
D }t |d} t| dks^J tjd
d}t |d} t| dkstJ dgdgd
gg}t |d} t| t	sJ t| d tj
r| d jdksJ t| d tj
r| d jdksJ t| d tj
r| d jdksJ 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   E  r   r   rz   )r   r   c                    r   r   r   r   r  r   r   r  K  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  T  r  z-test_reshape2d.<locals>.<listcomp>.<listcomp>r    r  r   r  r   r   r  T  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 rV   )super__iter__r   r"   )r   rb   	__class__r   r   r  w  s   z.test_reshape2d.<locals>.ArraySubclass.__iter__c                    s   t t |S rV   )r   r"   r  __getitem__)r   itemr  r   r   r  {  s   z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r5   r6   r7   r  r  __classcell__r   r   r  r   ArraySubclassu  s    r"  
   r   )r#  )r   buffer)	r   r   r   r   ddr   r   Zffr   )rM   _reshape_2Dr   rx   r  r   rI   ZrandrW   rX   Zndarrayr   rJ   r   )xnewrz   r"  r   r   r  r   test_reshape2dC  sJ   
"""""&		r(  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   r#  r   r   )columnsrz   )
r   r   reshapeZ	DataFramerM   r&  rr   Tr   r   )pdXrz   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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    )rM   Zcontiguous_regions)r   r   r   r(   r   r   r   r   r   r   test_contiguous_regions  s   
(r1  c                 C   s2   | j tdtddd}t|}|dksJ d S )Nr    r#     )indexr   )ZSeriesr  rM   r  )r-  r   r-   r   r   r   %test_safe_first_element_pandas_series  s   
r4  c                 C   s0   t d t| dksJ | d jtksJ d S )NZoopsr   r   )r	   r   r   filename__file__)Zrecwarnr   r   r   test_warn_external  s   
r7  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)rx   r  rr   rM   Z_array_perimeterr,  appendr   r   Zarray_equalZ_array_patch_perimeters)rz   r9  r:  rowscolsZrow_indsZcol_indsZpolysZ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    )r0     )   	   r   r8  )r   r   r+  r
  r  )r?  rB  r<  r=  rz   r9  r:  r   r   r   test_array_patch_perimeters  s   
rF  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)rG  rH  _pr   r   r   r   __init__  s   
z#test_setattr_cm.<locals>.A.__init__c                 S   r   rV   r   r   r   r   r   meth  r   ztest_setattr_cm.<locals>.A.methc                 S   r   rV   r   )clsr   r   r   classy     z!test_setattr_cm.<locals>.A.classyc                   S   r   rV   r   r   r   r   r   static  rO  z!test_setattr_cm.<locals>.A.staticc                 S   s   | j S rV   rJ  r   r   r   r   prop  s   ztest_setattr_cm.<locals>.A.propc                 S   s
   || _ d S rV   rQ  )r   valr   r   r   rR    s   
N)r5   r6   r7   r   	cls_levelrH  rK  rL  classmethodrN  staticmethodrP  propertyrR  setterr   r   r   r   r    s    


r  c                   @   r   )ztest_setattr_cm.<locals>.BNr   r   r   r   r   r    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 )NrG  rH  extrarI  rT  rN  rP  )rL  rG  rR  rT  rH  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   r   rV   r   r   r   r   r   r     r   z!test_setattr_cm.<locals>.<lambda>ZboorY  c                   S   r   rV   r   r   r   r   r   r      r   ZbobrN  rP  )	rR  rG  rL  rH  rY  rZ  rT  rN  rP  )rL  rZ  rM   Z_setattr_cmrG  rH  rY  rR  rT  rN  rP  )r  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   r#  z
0.00123456)rM   Z_format_approx)r   r   r   r   test_format_approx2  s   ,rb  ):r
  r   weakrefr   Zunittest.mockr   r   r   Znumpyr   Znumpy.testingr   r   r   r   Z
matplotlibr	   Zmatplotlib.cbookrM   Zmatplotlib.colorsZcolorsr3   r
   r   r8   r|   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/  r1  r4  r7  rF  r_  rb  r   r   r   r   <module>   sx    "~~!
!


LR