a
    ëÝEbig  ã                	   @   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   s@   t  t¡�" tdt dd¡ƒ W d   ƒ n1 s20    Y  d S )Nza stringg      ð?g      @)ÚpytestÚraisesÚ
ValueErrorr
   ÚnpÚarange©Úself© r   ú[/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_cbook.pyÚtest_bad_first_arg   s    z,Test_delete_masked_points.test_bad_first_argc                 C   s^   g d¢}dddt jt jdg}t||ƒ\}}g d¢}t|t  |¡| ƒ t|t  |¡| ƒ d S )N)ÚaÚbÚcÚdÚeÚfé   é   é   é   )r   r   r   é   )r   Únanr
   r   Úarray)r   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   Ú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/   r5   r   r   r   r   r      s   r   c                   @   st   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTest_boxplot_statsc                 C   s¶   t j d¡ d| _d| _t jj| j| jfddd�| _tg d¢ƒ| _t	 
| j¡| _dd	d
ddt  g d¢¡dddddœ
| _dddœ| _ddt  ddg¡dœ| _dddœ| _dddœ| _d S )Ni©  é%   r%   ç      ø?g      ü?)ÚsizeÚmeanÚsigma)r=   ÚmedÚq1Úq3ÚiqrÚciloÚcihiÚwhisloÚwhishiÚfliersÚlabelgP¬Ý$·C@g@÷®ÓÃ¿g>zÔzDü*@gjtÀxJ*@g–Dm‡(«
@)çÓ¾¹#W@ç7ˆ9µqÂU@g¶®EÉ³E@g—q×ž¥C@g¥å]YŒÁõ?gó6 v´-@gIÿ÷Qæ;@g äinÞ“¥?)
rD   rC   rB   r=   r?   rG   r@   rA   rF   rE   gÑÁNá!@gûˆèý?)rD   rC   g =É³E@rI   rJ   )rF   rE   rG   gÖeLMÀÈ?)rE   rF   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   s@    ÿôþýþþzTest_boxplot_stats.setupc                 C   s   t | jtƒsJ ‚d S ©N)Ú
isinstancerR   Ú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 rY   )rR   rZ   Ú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 rY   )rR   ÚsetrO   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   )rR   rS   Ú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   )rP   rQ   rM   rT   rc   r   ©r   Úresultsr_   rd   re   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   )rP   rQ   rM   rU   rc   r   rg   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   rj   )rP   rQ   rM   rW   rc   r   rg   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    é_   rj   r   )rP   rQ   rM   rV   rc   r   rg   r   r   r   Ú!test_results_whiskers_percentiles‹   s    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sLJ ‚qLd S )N)ZTest1r   Zardvarkr%   ©ÚlabelsrH   )rP   rQ   rM   Úzip)r   rq   rh   Zlabr_   r   r   r   Útest_results_withlabels‘   s    z*Test_boxplot_stats.test_results_withlabelsc                 C   sF   ddg}t  t¡�  tj| j|d� W d   ƒ n1 s80    Y  d S )Nr   r   rp   )r   r   r   rP   rQ   rM   )r   rq   r   r   r   Útest_label_error›   s    z#Test_boxplot_stats.test_label_errorc                 C   sF   t jjdd�}t t¡� t |¡ W d   ƒ n1 s80    Y  d S )N)é"   ru   ru   )r<   )r   rK   Únormalr   r   r   rP   rQ   )r   rM   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sLJ ‚|d d
 dks`J ‚t|d d ddgƒ |d d	 dksŠJ ‚|d d
 dksžJ ‚t|d d g ƒ d S )NéŒ   )Úshapeiçÿÿÿé   F)Z	autorangeTr   rE   rF   rG   )r   ZzerosZhstackrP   rQ   r   )r   ÚxZbstats_falseZbstats_truer   r   r   Ú"test_boxplot_stats_autorange_false¥   s    z5Test_boxplot_stats.test_boxplot_stats_autorange_falseN)r6   r7   r8   rX   r\   r`   rb   rf   ri   rk   rm   ro   rs   rt   rw   r|   r   r   r   r   r9   6   s   2
r9   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)ÚsignalrP   ÚCallbackRegistryÚ	callbacksr   r   r   r   rX   µ   s    zTest_callback_registry.setupc                 C   s$   | j  ||¡}|r | j j |¡ |S rY   )r�   ÚconnectÚ_pickled_cidsÚadd)r   ÚsÚfuncÚpickleÚcidr   r   r   r‚   ¹   s    zTest_callback_registry.connectc                 C   s   | j  |¡S rY   )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s6J ‚|S rY   )Ú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 rY   )r   ÚtestingÚbreak_cyclesr�   r‹   rƒ   ra   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 rY   )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s0J ‚|  ¡  |  | j|j|¡}||ksVJ ‚|  ¡  t| j	j
ƒdksrJ ‚t| j	j	ƒdks†J ‚~|   ¡  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s0J ‚|  ¡  |  |¡ |   ¡  d S rY   ©	r�   r}   r‚   r   r’   r“   r”   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s0J ‚|  ¡  |  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shJ ‚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   s   d S rY   r   r   r   r   r   r’   *  s    zTest_callback_registry.dummyc                 C   s"   t t t t ¡ ¡¡dƒsJ ‚d S )Nr�   )Úhasattrr‡   ÚloadsÚdumpsrP   r€   r   r   r   r   Útest_pickling-  s    ÿz$Test_callback_registry.test_picklingN)r6   r7   r8   rX   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 sV0    Y  |  ¡ }|j	|j
  kr€dks†n J ‚| t ddd„ ¡ | dd¡ |  ¡ }|j	dksºJ ‚d	|j
v sÈJ ‚d S )
Nr›   c                   S   s   d S rY   r   r   r   r   r   Ú<lambda>4  ó    zAtest_callbackregistry_default_exception_handler.<locals>.<lambda>Ú"_get_running_interactive_frameworkc                   S   s   d S rY   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)rP   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                   @   s   e Zd ZdS )z%raising_cb_reg.<locals>.TestExceptionN©r6   r7   r8   r   r   r   r   ÚTestExceptionF  s   r±   c                   S   s   t ‚d S rY   )ÚRuntimeErrorr   r   r   r   Úraise_runtime_errorI  s    z+raising_cb_reg.<locals>.raise_runtime_errorc                   S   s   t ‚d S rY   ©r   r   r   r   r   Úraise_value_errorL  s    z)raising_cb_reg.<locals>.raise_value_errorc                    s   t | tƒrˆ ‚| ‚d S rY   )rZ   r²   ©Úexcp©r±   r   r   ÚtransformerO  s    
z#raising_cb_reg.<locals>.transformer©Zexception_handlerr›   zcb, excp)	Ú	ExceptionrP   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   sJ   |   tddd„ ¡ t |¡� | d¡ W d   ƒ n1 s<0    Y  d S )Nr¦   c                   S   s   d S rY   r   r   r   r   r   r¤   i  r¥   z@test_callbackregistry_custom_exception_handler.<locals>.<lambda>r›   )r¨   rP   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 sn0    Y  |jdd
��R | d¡ tjtdd�� | d	¡ W d   ƒ n1 s¾0    Y  W d   ƒ n1 sÜ0    Y  tjtdd�� | d¡ W d   ƒ n1 �s0    Y  tjtdd�� | d	¡ W d   ƒ n1 �sP0    Y  d S )Nc                 S   s   | ‚d S rY   r   r¶   r   r   r   Úraise_handlerq  s    z5test_callbackregistry_blocking.<locals>.raise_handlerrº   c                   S   s   t dƒ‚d S )Nú1 should be blockedr´   r   r   r   r   Ú
test_func1t  s    z2test_callbackregistry_blocking.<locals>.test_func1c                   S   s   t dƒ‚d S )Nú2 should be blockedr´   r   r   r   r   Ú
test_func2v  s    z2test_callbackregistry_blocking.<locals>.test_func2Ztest1Ztest2)r   rÁ   ©Úmatchr¿   )rP   r€   r‚   Zblockedrª   r   r   r   )r¾   r®   rÀ   rÂ   r   r   r   Útest_callbackregistry_blockingn  s"    

(
F*rÅ   c                  C   sš   ddddœ} g d¢}g d¢}g d¢}|t t |  ¡ ¡ƒks>J ‚|t t |  ¡ ¡ƒksXJ ‚|t t |  ¡ ¡ƒksrJ ‚|t |¡ks„J ‚|t |¡ks–J ‚d S )Nr   r   r   ©r   r   r   ©r   r   r   ))r   r   )r   r   )r   r   )rN   rP   Zsanitize_sequenceÚkeysÚvaluesrc   )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   sh   t  t¡�J t ¡ �" tj| fi |¤Ž W d   ƒ n1 s<0    Y  W d   ƒ n1 sZ0    Y  d S rY   )r   r   r©   r	   Ú'suppress_matplotlib_deprecation_warningrP   Únormalize_kwargs)ÚinpÚkwargs_to_normr   r   r   Útest_normalize_kwargs_fail§  s    ÿrÒ   zinp, expected, kwargs_to_normc                 C   sF   t  ¡ �* |tj| fi |¤Žks$J ‚W d   ƒ n1 s80    Y  d S rY   )r	   rÎ   rP   rÏ   )rÐ   ÚexpectedrÑ   r   r   r   Útest_normalize_kwargs_pass®  s    
rÔ   c               	   C   st   t  td¡�T} td d�| _tjtdd�� t 	d¡ W d   ƒ n1 sH0    Y  W d   ƒ n1 sf0    Y  d S )NÚsys)Zreturn_valuez	\Adummy\ZrÃ   r’   )
r   ÚobjectrP   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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   rP   Úpts_to_prestepÚasarrayÚfloatr   ©	r{   Ú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J ‚d S ©N)r   r   )rP   rà   ry   ©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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   r   r   r   r   )r   r   rP   Úpts_to_poststeprá   râ   r   rã   r   r   r   Útest_to_poststepÖ  s    





rì   c                  C   s   t  g g ¡} | jdksJ ‚d S rè   )rP   rë   ry   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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   rÝ   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   rP   Úpts_to_midsteprá   râ   r   rã   r   r   r   Útest_to_midstepï  s    





rñ   c                  C   s   t  g g ¡} | jdksJ ‚d S rè   )rP   rð   ry   ré   r   r   r   Útest_to_midstep_empty  s    rò   Úargsé   r   r%   c                 C   s8   t  t¡� tj| Ž  W d   ƒ n1 s*0    Y  d S rY   )r   r   r   rP   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`J ‚t| | ¡ƒt|ƒkszJ ‚|dd … D ]}| | |¡s†J ‚q†| | ¡ |dd … D ]}| | |¡r²J ‚q²t	 
|dd … |dd … ¡D ]\}}	| ||	¡säJ ‚qäd 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>  r¥   z test_grouper.<locals>.<listcomp>r    r   r   )ÚrangerP   ÚGrouperÚjoinra   r[   Zget_siblingsZjoinedÚremoveÚ	itertoolsÚproduct)
r   r   r   r   r   Úobjsr1   Ú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 srJ ‚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û   )  r¥   z(test_grouper_private.<locals>.<listcomp>r    r   r   )rü   rP   rý   rþ   Ú_mappingr   )r  r1   Ú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s0J ‚t |¡}|dksFJ ‚dt|ƒksVJ ‚dt|ƒksfJ ‚d S )Nr    r   r   )r   r   ZflatÚnextrP   Úsafe_first_element)r{   Ú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s`J ‚t d¡}t  |d¡} t | ¡dksˆJ ‚‡ fd	d„td
ƒD ƒ}t  |d¡} t | ¡dks¼J ‚tj d
d¡}t  |d¡} t | ¡dksèJ ‚dgdgd
gg}t  |d¡} t| t	ƒ�sJ ‚t| d tj
ƒ�r6| d jdk�s:J ‚t| d tj
ƒ�r\| d jdk�s`J ‚t| d tj
ƒ�r‚| d jdk�s†J ‚g d¢d
dgdgg}t  |d¡} t| t	ƒ�s¶J ‚t| d tj
ƒ�rØ| d jdk�sÜJ ‚t| d tj
ƒ�rþ| d jdk�sJ ‚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�svJ ‚t| d |ƒ�sŠJ ‚g d¢}t  |d¡} t| d ƒt|ƒk�s¸J ‚t| d tj
ƒ�sÎJ ‚d S )Nc                   @   s   e Zd ZdS )ztest_reshape2d.<locals>.DummyNr°   r   r   r   r   rö   E  s   rö   r{   )r   r   c                    s   g | ]
}ˆ ƒ ‘qS 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                    s   g | ]
}ˆ ƒ ‘qS r   r   r÷   rú   r   r   rû   T  r¥   z-test_reshape2d.<locals>.<listcomp>.<listcomp>r    ©rü   r÷   rú   r   r   rû   T  r¥   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 rY   )ÚsuperÚ__iter__r   r"   )r   re   ©Ú	__class__r   r   r  w  s    z.test_reshape2d.<locals>.ArraySubclass.__iter__c                    s   t  tƒ  |¡¡S rY   )r   r"   r  Ú__getitem__)r   Úitemr  r   r   r  {  s    z1test_reshape2d.<locals>.ArraySubclass.__getitem__)r6   r7   r8   r  r  Ú__classcell__r   r   r  r   ÚArraySubclassu  s   r  é
   rÝ   )r  )rÞ   Úbuffer)	r   r   r   r   Úddr   r   Úffr   )rP   Ú_reshape_2Dr   ry   rü   r   rK   ZrandrZ   r[   Zndarrayrâ   rM   rŠ   )Úxnewr{   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 	||¡ q�d S )Né   r  r   rÆ   )Úcolumnsr{   )
r   r   ÚreshapeZ	DataFramerP   r  rr   ÚTrŽ   r   )ÚpdÚXr{   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sVJ ‚d\}}|dg|  }t  |¡|ks~J ‚dg| |d | …  }|||  f||  | ||  | | fg}t  |¡|ksÐJ ‚|dg|  }t  |¡|ksðJ ‚t  dgd ¡g k�s
J ‚t  g ¡g k�sJ ‚d S )N)r   r%   r    TFr   )r   é   r    )rP   Zcontiguous_regions)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.J ‚d S )Nr    r  é   )Úindexr   )ZSeriesrü   rP   r  )r$  r…   r.   r   r   r   Ú%test_safe_first_element_pandas_series·  s    
r+  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    
r.  c                  C   sl   dd„ } dd„ }dD ]R\}}t  || ¡ ||¡}t ||d ƒ||d ƒ¡D ]\}}| |||d� qNqd S )Nc              	   S   sæ   | j \}}g td|d |ƒ¢|d ‘}g td|d |ƒ¢|d ‘}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âJ ‚d S )Nr   r   rÛ   ©ÚrstrideÚcstride)ry   rü   rr   rP   Z_array_perimeterr#  Úappendr   rá   Zarray_equalZ_array_patch_perimeters)r{   r0  r1  Ú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û   ×  r¥   zAtest_array_patch_perimeters.<locals>.divisors.<locals>.<listcomp>r   r  r8  r   r8  r   ÚdivisorsÖ  s    z-test_array_patch_perimeters.<locals>.divisors))r    r    )r'  é   )é   é	   r   r/  )r   r   r"  r   r  )r7  r:  r3  r4  r{   r0  r1  r   r   r   Útest_array_patch_perimetersÄ  s    
ÿr>  c                     s2  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 u s‚J ‚ˆjˆju s’J ‚ˆjdks J ‚ˆjdks®J ‚ˆjdks¼J ‚ˆjdksÊJ ‚ˆjˆj ksÚJ ‚ˆjdksèJ ‚ˆj	dksöJ ‚ˆj
dk�sJ ‚W d   ƒ n1 �s0    Y  |ˆƒ d S )Nc                   @   sZ   e Zd Zeƒ Zeƒ Zdd„ Zdd„ Zedd„ ƒZ	e
dd„ ƒZed	d
„ ƒZejdd
„ ƒZdS )ztest_setattr_cm.<locals>.Ac                 S   s   d| _ d| _d| _d S )NÚaardvarkÚoverrideÚp)r?  r@  Ú_pr   r   r   r   Ú__init__å  s    z#test_setattr_cm.<locals>.A.__init__c                 S   s   d S rY   r   r   r   r   r   Úmethê  s    ztest_setattr_cm.<locals>.A.methc                 S   s   d S rY   r   )Úclsr   r   r   Úclassyí  s    z!test_setattr_cm.<locals>.A.classyc                   S   s   d S rY   r   r   r   r   r   Ústaticñ  s    z!test_setattr_cm.<locals>.A.staticc                 S   s   | j S rY   ©rB  r   r   r   r   Úpropõ  s    ztest_setattr_cm.<locals>.A.propc                 S   s
   || _ d S rY   rH  )r   Úvalr   r   r   rI  ù  s    N)r6   r7   r8   rÖ   Ú	cls_levelr@  rC  rD  ÚclassmethodrF  ÚstaticmethodrG  ÚpropertyrI  Ú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 usJ ‚| j| ju s J ‚ˆjdks.J ‚| j| ju s>J ‚| jˆ ju sNJ ‚| jdks\J ‚t| dƒrjJ ‚| jdksxJ ‚| jˆj ksˆJ ‚| jˆ ju s˜J ‚d| jvs¦J ‚d| jvs´J ‚d| jvsÂJ ‚d S )Nr?  r@  ÚextrarA  rK  rF  rG  )rD  r?  rI  rK  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 rY   r   r   r   r   r   r¤     r¥   z!test_setattr_cm.<locals>.<lambda>ÚboorP  c                   S   s   d S rY   r   r   r   r   r   r¤      r¥   ZbobrF  rG  )	rI  r?  rD  r@  rP  rQ  rK  rF  rG  )rD  rQ  rP   Z_setattr_cmr?  r@  rP  rI  rK  rF  rG  )r  rU  r   rT  r   Útest_setattr_cmà  s2    û0rW  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sNJ ‚| dd	ƒdks`J ‚| d
d	ƒdksrJ ‚| dd	ƒdks„J ‚| d
dƒ| d
dƒ  kr¤dksªn J ‚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)rP   Z_format_approx)r   r   r   r   Útest_format_approx2  s    rZ  ):r   r‡   Úweakrefr   Zunittest.mockr   r   r   Únumpyr   Znumpy.testingr   r   r   r   Z
matplotlibr	   Zmatplotlib.cbookrP   Zmatplotlib.colorsÚcolorsr4   r
   r   r9   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&  r(  r+  r.  r>  rW  rZ  r   r   r   r   Ú<module>   sv   "~~!
!þý
ÿ
þþ
LR