U
    O8ÚcA   ã                   @   sB   d dl Z d dlZd dlmZmZmZmZmZm	Z	 G dd„ dƒZ
dS )é    N)Úassert_Úassert_equalÚassert_array_equalÚassert_array_almost_equalÚassert_raisesÚ_assert_valid_refcountc                   @   sä   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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/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7S )8ÚTestRegressionc                 C   s.   t t dg¡t ddg¡ t ddg¡ƒ d S )Né   r   éÿÿÿÿ)r   ÚnpÚpoly1d©Úself© r   úC/tmp/pip-unpacked-wheel-fd_gsd75/numpy/lib/tests/test_regression.pyÚtest_poly1d   s    ÿzTestRegression.test_poly1dc                 C   s>   t j d¡}| ¡ }t j|dd t j|dd t||ƒ d S )N)é   r   T)ZrowvarF)r   ÚrandomÚcopyZcovr   ©r   ÚxÚyr   r   r   Útest_cov_parameters   s
    z"TestRegression.test_cov_parametersc                 C   sD   t dƒD ]6}t ddddgddg¡ t dddddgddg¡ qd S )Néd   r	   é   r   é   r   )Úranger   Zdigitize)r   Úir   r   r   Útest_mem_digitize   s    z TestRegression.test_mem_digitizec                 C   s   t g t t g ¡¡ƒ d S ©N)r   r   ÚuniqueÚarrayr   r   r   r   Útest_unique_zero_sized   s    z%TestRegression.test_unique_zero_sizedc                 C   sV   t  dd„ ¡}|t  d¡t  d¡t  d¡ƒ |t  d¡t  d¡t  d¡t  d¡ƒ d S )Nc                  W   s   | S r   r   )Úargsr   r   r   Ú<lambda>$   ó    z3TestRegression.test_mem_vectorise.<locals>.<lambda>)r	   r   r	   )r   r	   r	   )r	   r	   r   ©r   r   )r   Ú	vectorizeÚzeros)r   Zvtr   r   r   Útest_mem_vectorise"   s
    ÿz!TestRegression.test_mem_vectorisec                 C   s0   t tjddd… dgƒ t tjdd… g ƒ d S )Nr   y              ð?)r   r   Zmgridr   r   r   r   Útest_mgrid_single_element)   s    z(TestRegression.test_mgrid_single_elementc                 C   s   dd„ }t  |¡}t|ƒ d S )Nc                 S   s   dS )Né{   r   )r   r   r   r   r   Úp0   s    z1TestRegression.test_refcount_vectorize.<locals>.p)r   r'   r   )r   r,   Úvr   r   r   Útest_refcount_vectorize.   s    
z&TestRegression.test_refcount_vectorizec                 C   s.   t jt jt jdgdd}tt jjt|dƒ d S )Nr	   F)Úrr/   )r   r   Únanr   ZlinalgZLinAlgErrorÚgetattr)r   r,   r   r   r   Útest_poly1d_nan_roots5   s    z$TestRegression.test_poly1d_nan_rootsc                 C   s   t  g dg¡ d S )Ng      ð?)r   Zpolymulr   r   r   r   Útest_mem_polymul:   s    zTestRegression.test_mem_polymulc                 C   s   t  g ¡}t  |d¡ d S )Nzasdasd	asdasd)r   r!   Úappend)r   r   r   r   r   Útest_mem_string_concat>   s    
z%TestRegression.test_mem_string_concatc                 C   sJ   t  dddg¡}t  dddddg¡}t  ||¡\}}t|| | |ƒ d S )Nr	   r   r   r   é   )r   r   Úpolydivr   )r   Úur-   Úqr/   r   r   r   Útest_poly_divC   s    zTestRegression.test_poly_divc                 C   s:   t  dddg¡}t  ddg¡}t||kƒ t||kƒ d S )Nr	   r   r   r   )r   r   r   r   r   r   r   Útest_poly_eqJ   s    zTestRegression.test_poly_eqc              Q   C   sv  dddddg}dddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVgQ}dWdXdYdZdZd[d\d]dWd[d]d^d\d^dWd[d\d_d\d_dYd\d\d\d`dZdWd]dZd^d[d^dYdYd\dadYdYdWdZdad\d\dZdXdWd[d[d\dYdWd_d\d[dZdYdYd_d[d[d\dXd[dZd^dYd[d\d\dZdadWd[d[d[d\dYdZdZd^dYgQ}t  ||db¡}t||ƒ d S )cNg1$¡½ûÍ±¾g½HPò´B?gÜ{p#½¿gáp“Iè#@g
K< l¨sÀéZ   é[   é\   é]   é^   é_   é`   éa   éb   éc   r   ée   éf   ég   éh   éi   éj   ék   él   ém   én   éo   ép   éq   ér   és   ét   éu   év   éw   éx   éy   éz   r+   é|   é}   é~   é   é‚   éƒ   é„   é…   é†   é‡   éˆ   é‰   éŠ   é‹   éŒ   é   é’   é“   é”   é•   é–   é—   é˜   é™   éš   é›   éœ   é   éž   éŸ   é    é¡   é¢   é£   é¤   é¥   é¦   é§   é¨   é©   éª   é«   é¬   é­   é®   é¯   é°   g      "@g      @g      @g      @g       @g      @g      &@g      @g      $@g      *@g      (@r   )r   Zpolyfitr   )r   Úrefr   r   Ztestedr   r   r   Útest_polyfit_buildQ   s$    ÿ                                                             ú                                                               úz!TestRegression.test_polyfit_buildc                 C   sh   d}t jdtd}t  ||¡\}}t|jtk|ƒ d}t jdtd}t  ||¡\}}t|jtk|ƒ d S ©NzWrong type, should be complexr   ©ÚdtypezWrong type, should be float)r   ÚonesÚcomplexr7   r   r   ÚintÚfloat)r   Úmsgr   r9   r/   r   r   r   Útest_polydiv_typef   s    z TestRegression.test_polydiv_typec                 C   s   t ttjt d¡dd d S )N)r	   é
   i   )Zbins)r   Ú
ValueErrorr   Zhistogramddr   r   r   r   r   Útest_histogramdd_too_many_binsq   s    z-TestRegression.test_histogramdd_too_many_binsc                 C   sT   d}t jdtd}tt  |¡jtk|ƒ d}t jdtd}tt  |¡jtk|ƒ d S r   )r   r   r‘   r   Zpolyintr   r’   r“   )r   r”   r   r   r   r   Útest_polyint_typeu   s    z TestRegression.test_polyint_typec                 C   s   t t t g g¡¡ƒ d S r   )Úlistr   Zndenumerater!   r   r   r   r   Útest_ndenumerate_crash~   s    z%TestRegression.test_ndenumerate_crashc                 C   s    t t tjg¡t d g¡ƒ d S r   )r   r   r!   r0   Zasfarrayr   r   r   r   Útest_asfarray_noneƒ   s    z!TestRegression.test_asfarray_nonec                    sV   t  t j¡jd }td| d d ƒ‰ ‡ fdd„}‡ fdd„}tt|ƒ tt|ƒ d S )	Né   r   gš™™™™™É?r	   c               	      s@   d} t  | fd ¡}t jjd| ˆ d}d|t  |||||¡< d S ©Nr   r6   r   )Úsize©r   r   r   ÚrandintZix_©ÚnÚar   ©Zthesizer   r   ÚdpŒ   s    z4TestRegression.test_large_fancy_indexing.<locals>.dpc                     s@   d} t  | fd ¡}t jjd| ˆ d}|t  |||||¡  d S rž   r    r¢   r¥   r   r   Údp2’   s    z5TestRegression.test_large_fancy_indexing.<locals>.dp2)r   r   ZintpÚitemsizer’   r   r—   )r   Únbitsr¦   r§   r   r¥   r   Útest_large_fancy_indexing‡   s    
z(TestRegression.test_large_fancy_indexingc                 C   s6   t  ddg¡}t  d|¡}tt j||f j|kƒ d S )N)r¤   Zf4)ÚbÚi4)r	   )r   r   r(   r   Zr_)r   Údtr   r   r   r   Útest_void_coercion›   s    z!TestRegression.test_void_coercionc                 C   sv   dd l }dd l}|j}t|jdƒ|_z:zt dt d¡i¡ W n t	k
rZ   t
dƒ‚Y nX W 5 |j ¡  ||_X d S )Nr   ÚwZfoor	   zticket #1243)ÚosÚsysÚstdoutÚopenÚdevnullÚcloser   Zwhor!   Ú	ExceptionÚAssertionError)r   r°   r±   Z	oldstdoutr   r   r   Útest_who_with_0dim_array    s    
z'TestRegression.test_who_with_0dim_arrayc                 C   s2   t  ¡ g}|D ]}tt|tƒƒ t|dkƒ qd S )NÚ )r   Zget_includer   Ú
isinstanceÚstr)r   Úinclude_dirsÚpathr   r   r   Útest_include_dirs°   s    
z TestRegression.test_include_dirsc                 C   sx   t tt t dg¡d¡tjƒƒ t tt dgd¡tjƒƒ t tt t dg¡d¡tjƒƒ t tt dgd¡tjƒƒ d S )Nr	   r   )r   rº   r   Zpolyderr   Zndarrayr   r   r   r   Útest_polyder_return_type¹   s      z'TestRegression.test_polyder_return_typec                 C   s€   ddl m} tjdddgtjd}ddd	g}t d¡ tj¡}tjtjtjg}z|||||ƒ W n tk
rz   t	ƒ ‚Y nX d S )
Nr   )Úappend_fieldsr	   r   r   rŽ   r¤   r«   Úc)
Znumpy.lib.recfunctionsrÀ   r   r!   Zint32ZeyeZastypeZfloat64r¶   r·   )r   rÀ   ÚbaseÚnamesÚdataZdlistr   r   r   Útest_append_fields_dtype_listÀ   s    
z,TestRegression.test_append_fields_dtype_listc                 C   sÖ   ddl m} ddg}tj|dƒ|d}t|tjdg|dƒ dd	d
gfg}tj|dƒ|d}t|tjdg|dƒ dg}tj|dƒ|d}t|tjdg|dƒ dg}tj|dƒ|d}dg}t|tj||dƒ d S )Nr   )ÚStringIO)r¤   Úu1r   )r«   rÇ   r   z0 1 2 3rŽ   ©©r   r	   ©r   r   r¤   )r¤   rÇ   )r	   r   )r«   rÇ   )))r   r	   r   r   )r¤   rÇ   r&   )rÈ   )r¤   rÇ   )r   r   r   z0 1 2 3 4 5 6 7 8 9 10 11)))rÉ   rÊ   )r   r6   ))é   é   )r   é	   )r–   é   )ÚiorÆ   r   Zloadtxtr   r!   )r   rÆ   r­   r   rÄ   r   r   r   Útest_loadtxt_fields_subarraysÍ   s    z,TestRegression.test_loadtxt_fields_subarraysc                 C   s<   t jdtd}zt  |¡ W n tk
r6   tƒ ‚Y nX d S )Nr   rŽ   )r   r(   ÚboolZnansumr¶   r·   )r   r¤   r   r   r   Útest_nansum_with_booleanâ   s
    z'TestRegression.test_nansum_with_booleanc                 C   s^   G dd„ dƒ}t tjdƒ}z4ztj|ƒ |d W n tk
rJ   tƒ ‚Y nX W 5 | ¡  X d S )Nc                   @   s   e Zd ZdZdS )z)TestRegression.test_py3_compat.<locals>.Cz3Old-style class in python2, normal class in python3N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   ÚCí   s   r×   r¯   )Úoutput)r³   r°   r´   rµ   r   ÚinfoÚAttributeErrorr·   )r   r×   Úoutr   r   r   Útest_py3_compatê   s    zTestRegression.test_py3_compatN)rÓ   rÔ   rÕ   r   r   r   r"   r)   r*   r.   r2   r3   r5   r:   r;   rŒ   r•   r˜   r™   r›   rœ   rª   r®   r¸   r¾   r¿   rÅ   rÐ   rÒ   rÜ   r   r   r   r   r   
   s6   		r   )r°   Znumpyr   Znumpy.testingr   r   r   r   r   r   r   r   r   r   r   Ú<module>   s    