U
    Âmœds  ã                   @   sÖ  d dl Z d dlZd dlmZ d dlmZmZ d dlmZmZm	Z	 d dl
Zd dlmZmZmZ d dlZd dlmZmZ d dlmZ d dlmZ G dd	„ d	ƒZG d
d„ dƒZG dd„ dƒZdd„ Zdd„ Zedd„ ƒZdd„ Zdd„ Z ej! "ddddddddd d!g	¡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/d0„ ƒZ(ej! "d1e'¡d2d3„ ƒZ)d4d5„ Z*d6d7„ Z+d8d9„ Z,d:d;„ Z-d<d=„ Z.d>d?„ Z/d@dA„ Z0ej! "dBe 1dC¡ 2dDdE¡d,fe 1dC¡d,fe 1dC¡e 1dD¡fg¡dFdG„ ƒZ3dHdI„ Z4dJdK„ Z5dLdM„ Z6dNdO„ Z7dPdQ„ Z8dRdS„ Z9dTdU„ Z:dVdW„ Z;dXdY„ Z<dZd[„ Z=d\d]„ Z>d^d_„ Z?d`da„ Z@dbdc„ ZAddde„ ZBej! "dfdgdhdidjdkdldmdng¡dodp„ ƒZCdS )qé    N)Úref)ÚpatchÚMock)ÚdatetimeÚdateÚ	timedelta)Úassert_array_equalÚassert_approx_equalÚassert_array_almost_equal)Ú_apiÚcbook)Ú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   úT/home/sam/Atlas/atlas_env/lib/python3.8/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"   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'   r0   r6   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>zÔzDü*@gjtÀxJ*@g–Dm‡(«
@gÓ¾¹#W@g7ˆ9µqÂU@g¶®EÉ³E@g—q×ž¥C@g¥å]YŒÁõ?gó6 v´-@gIÿ÷Qæ;@g äinÞ“¥?)
rE   rD   rC   r>   r@   rH   rA   rB   rG   rF   gÑÁNá!@gûˆèý?)rE   rD   g =É³E@)rG   rF   rH   gÖeLMÀÈ?)rF   rG   g¯,Á¹#W@)r   ÚrandomÚseedZnrowsZncolsZ	lognormalÚdataÚsortedÚ
known_keysr   Úboxplot_statsÚstd_resultsr%   Úknown_nonbootstrapped_resÚknown_bootstrapped_ciÚknown_whis3_resÚknown_res_percentilesÚknown_res_ranger   r   r   r   Úsetup_method6   sd     ÿ        ý   ÿôþýþþzTest_boxplot_stats.setup_methodc                 C   s   t | jtƒst‚d S ©N)Ú
isinstancerP   ÚlistÚAssertionErrorr   r   r   r   Útest_form_main_listh   s    z&Test_boxplot_stats.test_form_main_listc                 C   s   | j D ]}t|tƒst‚qd S rW   )rP   rX   ÚdictrZ   ©r   Úresr   r   r   Útest_form_each_dictk   s    
z&Test_boxplot_stats.test_form_each_dictc                 C   s&   | j D ]}t|ƒt| jƒkst‚qd S rW   )rP   ÚsetrN   rZ   r]   r   r   r   Útest_form_dict_keyso   s    
z&Test_boxplot_stats.test_form_dict_keysc                 C   s0   | j d }| j ¡ D ]\}}t|| |ƒ qd S )Nr   )rP   rQ   Úitemsr
   )r   r^   ÚkeyÚvaluer   r   r   Útest_results_baselines   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   )r   rO   rL   rR   rb   r	   ©r   Úresultsr^   rc   rd   r   r   r   Útest_results_bootstrappedx   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   )r   rO   rL   rS   rb   r
   rf   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   ri   )r   rO   rL   rU   rb   r
   rf   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#   é_   ri   r   )r   rO   rL   rT   rb   r
   rf   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Aardvarkr(   ©ÚlabelsrI   )r   rO   rL   ÚziprZ   )r   rp   rg   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    ro   )r   r   r   r   rO   rL   )r   rp   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)é"   rt   rt   )r=   )r   rJ   Únormalr   r   r   r   rO   )r   rL   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sŠt‚|d d
 dksžt‚t|d d g ƒ d S )NéŒ   )Úshapeiçÿÿÿé   F)Z	autorangeTr   rF   rG   rH   )r   ZzerosZhstackr   rO   rZ   r
   )r   ÚxZbstats_falseZbstats_truer   r   r   Ú"test_boxplot_stats_autorange_false¤   s    z5Test_boxplot_stats.test_boxplot_stats_autorange_falseN)r7   r8   r9   rV   r[   r_   ra   re   rh   rj   rl   rn   rr   rs   rv   r{   r   r   r   r   r:   5   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)Úsignalr   ÚCallbackRegistryÚ	callbacksr   r   r   r   rV   ´   s    z#Test_callback_registry.setup_methodc                 C   s$   |r| j  ||¡S | j  ||¡S d S rW   )r€   ÚconnectZ_connect_picklable)r   ÚsÚfuncÚpickler   r   r   r�   ¸   s    zTest_callback_registry.connectc                 C   s   | j  |¡S rW   )r€   Ú
disconnect)r   Zcidr   r   r   r…   ¾   s    z!Test_callback_registry.disconnectc                 C   s:   t | jj | jg ¡ƒ}t | jj | j¡ƒ}||ks6t‚|S rW   )Úlenr€   Ú_func_cid_mapÚgetr~   rZ   )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 rW   )r   ÚtestingÚbreak_cyclesr€   r‡   rZ   Z_pickled_cidsr`   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 rW   )r   rŠ   r‹   r€   r‡   rZ   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s†t‚~|   ¡  d S )Nr   )rŒ   r|   r�   r~   ÚdummyÚtypeÚintrZ   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 rW   ©
rŒ   r|   r�   r~   rŽ   r�   r�   rZ   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‰   rZ   )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 rW   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Údumpsr   r   rZ   r   r   r   r   Útest_pickling,  s    ÿz$Test_callback_registry.test_picklingN)r7   r8   r9   rV   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s¦t‚d	|j
ks´t‚d S )
Nr—   c                   S   s   d S rW   r   r   r   r   r   Ú<lambda>3  ó    zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>Ú"_get_running_interactive_frameworkc                   S   s   d S rW   r   r   r   r   r   r    6  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)r   r   r�   Úsetattrr   r   Ú	TypeErrorÚprocessZ
readouterrÚoutÚerrrZ   )ZcapsysÚmonkeypatchÚcbZouterrr   r   r   Ú/test_callbackregistry_default_exception_handler1  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©r7   r8   r9   r   r   r   r   ÚTestExceptionE  s   r­   c                   S   s   t ‚d S rW   )ÚRuntimeErrorr   r   r   r   Úraise_runtime_errorH  s    z+raising_cb_reg.<locals>.raise_runtime_errorc                   S   s   t ‚d S rW   ©r   r   r   r   r   Úraise_value_errorK  s    z)raising_cb_reg.<locals>.raise_value_errorc                    s   t | tƒrˆ ‚| ‚d S rW   )rX   r®   ©Úexcp©r­   r   r   ÚtransformerN  s    
z#raising_cb_reg.<locals>.transformer©Zexception_handlerr—   zcb, excp)	Ú	Exceptionr   r   r�   r   rž   rŸ   r®   r   )rƒ   r¯   r±   rµ   Zcb_oldZcb_filtZcb_filt_passr   r´   r   Úraising_cb_regD  s$    þÿýr¸   c              	   C   s6   |   tddd„ ¡ t |¡� | d¡ W 5 Q R X d S )Nr¢   c                   S   s   d S rW   r   r   r   r   r   r    h  r¡   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>r—   )r¤   r   r   r   r¦   )r©   rª   r³   r   r   r   Ú.test_callbackregistry_custom_exception_handlere  s      ÿr¹   c               	      sŒ   t jdgd�} g ‰ ‡ fdd„}|  d|¡ t t¡� |  d|¡ W 5 Q R X |  dd¡ t t¡� |  dd¡ W 5 Q R X ˆ dgksˆt‚d S )Nr—   )Zsignalsc                    s   ˆ   | ¡ d S rW   )Úappend)rz   ©rg   r   r   rª   p  r¡   z)test_callbackregistry_signals.<locals>.cbÚbarr   )r   r   r�   r   r   r   r¦   rZ   )Úcrrª   r   r»   r   Útest_callbackregistry_signalsm  s    r¾   c               
   C   sö   dd„ } t j| d�}dd„ }dd„ }| d|¡ | d	|¡ | ¡ � | d¡ | d	¡ W 5 Q R X |jdd
��4 | d¡ tjtdd�� | d	¡ W 5 Q R X W 5 Q R X tjtdd�� | d¡ W 5 Q R X tjtdd�� | d	¡ W 5 Q R X d S )Nc                 S   s   | ‚d S rW   r   r²   r   r   r   Úraise_handler}  s    z5test_callbackregistry_blocking.<locals>.raise_handlerr¶   c                   S   s   t dƒ‚d S )Nú1 should be blockedr°   r   r   r   r   Ú
test_func1€  s    z2test_callbackregistry_blocking.<locals>.test_func1c                   S   s   t dƒ‚d S )Nú2 should be blockedr°   r   r   r   r   Ú
test_func2‚  s    z2test_callbackregistry_blocking.<locals>.test_func2Ztest1Ztest2)r~   rÂ   ©ÚmatchrÀ   )r   r   r�   Zblockedr¦   r   r   r   )r¿   rª   rÁ   rÃ   r   r   r   Útest_callbackregistry_blockingz  s"    


rÆ   zline, result)úa : no_commentrÇ   )úa : "quoted str"rÈ   )za : "quoted str" # commentrÈ   )úa : "#000000"rÉ   )za : "#000000" # commentrÉ   )úa : ["#000000", "#FFFFFF"]rÊ   )z$a : ["#000000", "#FFFFFF"] # commentrÊ   )z"a : val  # a comment "with quotes"za : val)z# only comment "with quotes" xxr£   c                 C   s   t  | ¡|kst‚dS )z+Strip everything from the first unquoted #.N)r   Ú_strip_commentrZ   )ÚlineÚresultr   r   r   Útest_strip_comment›  s    rÎ   c                	   C   s(   t jtdd�� t d¡ W 5 Q R X d S )NzMissing closing quoterÄ   zgrid.color: "aa)r   r   r   r   rË   r   r   r   r   Útest_strip_comment_invalid«  s    rÏ   c                  C   s    ddddœ} 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sŠt‚|t |¡ksœt‚d S )Nr   r    r!   )r   r   r   r   r   r   )r   r   )r   r    )r   r!   )rM   r   Zsanitize_sequenceÚkeysrZ   Úvaluesrb   )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 5 Q R X W 5 Q R X d S rW   )r   r   r¥   r   Ú'suppress_matplotlib_deprecation_warningr   Ú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 rW   )r   rÖ   r   r×   rZ   )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\ZrÄ   rŽ   )
r   Úobjectr   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   r   Úpts_to_prestepÚasarrayÚfloatr   ©	rz   Úy1Úy2Z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   )r   rç   rx   rZ   ©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   r   Ú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î   )r   rñ   rx   rZ   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      à?r<   g      @r!   rå   r   r    )r   r   r   Ú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î   )r   rô   rx   rZ   rï   r   r   r   Útest_to_midstep_empty$  s    rö   Úargsé   r!   r(   c              	   C   s$   t  t¡� tj| Ž  W 5 Q R X d S rW   )r   r   r   r   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 ]}| | |¡s†t‚q†| 	| ¡ |dd … D ]}| | |¡r²t‚q²t
 |dd … |dd … ¡D ]\}}	| ||	¡sät‚qäd S )Nc                   @   s   e Zd ZdS )ztest_grouper.<locals>.DummyNr¬   r   r   r   r   ÚDummy4  s   rú   c                    s   g | ]
}ˆ ƒ ‘qS r   r   ©Ú.0Ú_©rú   r   r   Ú
<listcomp>6  s     z test_grouper.<locals>.<listcomp>r#   r   r   )Úranger   ÚGrouperÚjoinr`   rY   rZ   Zget_siblingsZjoinedÚremoveÚ	itertoolsÚproduct)
r   r   r   r   r   Úobjsr2   ÚotherÚAÚBr   rþ   r   Útest_grouper3  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ú   H  s   rú   c                    s   g | ]
}ˆ ƒ ‘qS r   r   rû   rþ   r   r   rÿ   J  s     z(test_grouper_private.<locals>.<listcomp>r#   r   r   )r   r   r  r  Ú_mappingr   rZ   )r  r2   ÚmappingÚoZbase_setr   rþ   r   Útest_grouper_privateG  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ÚnextrZ   r   Ú_safe_first_finite)rz   ÚitÚretr   r   r   Útest_flatiterX  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sˆt‚‡ fd	d„td
ƒD ƒ}t  |d¡} t | ¡dks¼t‚tj d
d¡}t  |d¡} t | ¡dksèt‚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�s†t‚t d¡t d¡t d¡g}t  |d¡} t	| t
ƒ�s¾t‚t| ƒdk�sÐt‚t	| d tjƒ�rò| d jdk�söt‚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�sšt‚G dd„ dtjƒ}tjdtd�}|dt|jd�}t  |d¡} t| ƒdk�sèt‚t	| d |ƒ�süt‚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>.DummyNr¬   r   r   r   r   rú   f  s   rú   rz   )r   r   c                    s   g | ]
}ˆ ƒ ‘qS r   r   rû   rþ   r   r   rÿ   l  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ÿ   u  s     z-test_reshape2d.<locals>.<listcomp>.<listcomp>r#   ©r   rû   rþ   r   r   rÿ   u  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 rW   )ÚsuperÚ__iter__r   r%   )r   rd   ©Ú	__class__r   r   r  Ÿ  s    z.test_reshape2d.<locals>.ArraySubclass.__iter__c                    s   t  tƒ  |¡¡S rW   )r   r%   r  Ú__getitem__)r   Úitemr  r   r   r  £  s    z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r7   r8   r9   r  r  Ú__classcell__r   r   r  r   ÚArraySubclass�  s   r  é
   rå   )r  )ræ   Úbufferr   r   r   Úddr   r   Úff)r   Ú_reshape_2Dr   rx   rZ   r   r   rJ   ZrandrX   rY   Zndarrayr%   r†   ré   rL   )Úxnewrz   r  rÓ   r   rþ   r   Útest_reshape2dd  sT    
&&&&&&&		r#  c                 C   sZ   t  d¡ dd¡}| j|dddgd�}t |d¡}t|j|ƒD ]\}}t j 	||¡ q>d S )	Né   r  r!   r   r   r   ©Úcolumnsrz   )
r   r   ÚreshapeÚ	DataFramer   r!  rq   ÚTrŠ   r   )ÚpdÚXrz   ÚXnewr"  r   r   r   Útest_reshape2d_pandas·  s
    r-  c                 C   sX   t  d¡ dd¡}| j|ddgd�}t |d¡}t|j|ƒD ]\}}t j 	||¡ q<d S ©Nr$  r  r!   rz   r4   )Zdims)
r   r   r'  Ú	DataArrayr   r!  rq   r)  rŠ   r   )Úxrr+  rz   r,  r"  r   r   r   Útest_reshape2d_xarrayÁ  s
    r1  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(  r   Úindex_ofrŠ   r   )r*  r+  rz   ÚIdxr,  ÚIdxRefr   r   r   Útest_index_of_pandasË  s    
r5  c                 C   s\   t  d¡ dd¡}| j|ddgd�}t |¡\}}t j ||¡ t  d¡}t j ||¡ d S r.  )r   r   r'  r/  r   r2  rŠ   r   )r0  r+  rz   r3  r,  r4  r   r   r   Útest_index_of_xarrayÕ  s    
r6  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sÐt‚|dg|  }t  |¡|ksðt‚t  dgd ¡g k�s
t‚t  g ¡g k�st‚d S )N)r!   r(   r#   TFr   )r"   é   r#   )r   Zcontiguous_regionsrZ   )r   r   r   r*   rÛ   r   r   r   r   r   Útest_contiguous_regionsß  s    
(r8  c                 C   s2   | j tdƒtddƒd�}t |¡}|dks.t‚d S )Nr#   r  é   )Úindexr   )ZSeriesr   r   r  rZ   )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†   rZ   Ú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�¡sÞt‚d S )Nr   r   rä   ©ÚrstrideÚcstride)rx   r   rq   r   Z_array_perimeterr)  rº   r   rè   Zarray_equalZ_array_patch_perimetersrZ   )rz   r@  rA  Ú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  rH  r   rH  r   Údivisors  s    z-test_array_patch_perimeters.<locals>.divisors))r#   r#   )r7  é   )é   é	   r   r?  )r   r   r'  r  r  )rF  rJ  rB  rC  rz   r@  rA  r   r   r   Útest_array_patch_perimeters  s    
ÿrN  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s‚t‚ˆjˆjks’t‚ˆjdks t‚ˆjdks®t‚ˆjdks¼t‚ˆjdksÊt‚ˆjˆj ksÚt‚ˆj	dksèt‚ˆj
dksöt‚ˆ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)rO  rP  Ú_pr   r   r   r   Ú__init__$  s    z#test_setattr_cm.<locals>.A.__init__c                 S   s   d S rW   r   r   r   r   r   Úmeth)  s    ztest_setattr_cm.<locals>.A.methc                 S   s   d S rW   r   )Úclsr   r   r   Úclassy,  s    z!test_setattr_cm.<locals>.A.classyc                   S   s   d S rW   r   r   r   r   r   Ústatic0  s    z!test_setattr_cm.<locals>.A.staticc                 S   s   | j S rW   ©rR  r   r   r   r   Úprop4  s    ztest_setattr_cm.<locals>.A.propc                 S   s
   || _ d S rW   rX  )r   Úvalr   r   r   rY  8  s    N)r7   r8   r9   rÞ   Ú	cls_levelrP  rS  rT  ÚclassmethodrV  ÚstaticmethodrW  ÚpropertyrY  Ú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sˆt‚| jˆ jks˜t‚d| jks¦t‚d| jks´t‚d| jksÂt‚d S )NrO  rP  ÚextrarQ  r[  rV  rW  )	rT  rZ   rO  rY  r[  rP  rš   ÚmonkeyÚ__dict__)Úobj©r  r   r  r   r   Úverify_pre_post_stateA  s    z.test_setattr_cm.<locals>.verify_pre_post_stateZsquirrelZmoosec                   S   s   d S rW   r   r   r   r   r   r    ]  r¡   z!test_setattr_cm.<locals>.<lambda>Úboor`  c                   S   s   d S rW   r   r   r   r   r   r    _  r¡   ZbobrV  rW  )	rY  rO  rT  rP  r`  ra  r[  rV  rW  )rT  ra  r   Z_setattr_cmrZ   rO  rP  r`  rY  r[  rV  rW  )r	  re  r   rd  r   Útest_setattr_cm  s<         ûrg  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s„t‚| d
dƒ| d
dƒ  kr¤dksªn t‚d S )Nr   r   Ú0r    r!   g�(í¾0‰¿z-0gH¯¼šò×z>r#   g…Ó´:T?z0.00123g…Ó´:T¿z-0.00123é   r  z
0.00123456)r   Z_format_approxrZ   )r   r   r   r   Útest_format_approxq  s    rj  c                  C   s@   dd„ t dƒD ƒ} d | d< t | ¡}|d k	r8|| d ks<t‚d S )Nc                 S   s   g | ]}t  ¡ t|d � ‘qS ))Údays)r   Útodayr   rG  r   r   r   rÿ   ~  s     z5test_safe_first_element_with_none.<locals>.<listcomp>r  r   r   )r   r   r  rZ   )Zdatetime_lstr/   r   r   r   Ú!test_safe_first_element_with_none}  s    
rm  zfmt, value, result)z%.2f mçš™™™™™É?ú0.20 m)z{:.2f} mrn  ro  )z{} mrn  z0.2 m)Úconstrn  rp  )z%d or {}rn  z0 or {})z{{{:,.0f}}}g     jAz	{200,000})z{:.2%}gUUUUUUå?z66.67%)z$%ggR¸…ëQ@z$2.54c                 C   s2   t  | |¡|kst‚t  | t |¡¡|ks.t‚dS )z)Apply *value* to the format string *fmt*.N)r   Z_auto_format_strrZ   r   Zfloat64)Úfmtrd   rÍ   r   r   r   Útest_auto_format_str„  s    rr  )Dr  r„   Úweakrefr   Zunittest.mockr   r   r   r   r   Únumpyr   Znumpy.testingr   r	   r
   r   Z
matplotlibr   r   Zmatplotlib.colorsÚcolorsr5   Zmatplotlib.cbookr   r   r:   r|   r«   r¸   r¹   r¾   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-  r1  r5  r6  r8  r;  r>  rN  rg  rj  rm  rr  r   r   r   r   Ú<module>   s®   "~~!
!÷
þý
ÿ
þþ
S



Rø
