3
Kd'                 @   s>   d dl Zd dlmZ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_almost_equalassert_array_almost_equalassert_raisesassert_allclosec               @   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#S )$TestPolynomialc             C   s   t jdddg}tt|d tt|d t jdddg}tt|d tt|d	 t jddddg}tt|d ttt jdddgd d S )Ng      ?      zpoly1d([1., 2., 3.])z   2
1 x + 2 x + 3g      @   zpoly1d([3., 2., 1.])z   2
3 x + 2 x + 1g[f?y               @y              @g"GBtk~@y              ?z=            3      2
(1.9 + 2j) x - 3j x - 5.123 x + (2 + 1j)z    2
-3 x - 2 x - 1y[f?       @y             g"GBtk~y       @      ?)nppoly1dr   reprstr)selfpqr r   S/var/www/html/virt/lib64/python3.6/site-packages/numpy/lib/tests/test_polynomial.pytest_poly1d_str_and_repr	   s    z'TestPolynomial.test_poly1d_str_and_reprc             C   s\   t jdddg}t jdddg}t|dd t|dd t|dd t|dd	 d S )
Ng      ?r
   r   g      @r   r      g      C@g     U@)r   r   r   )r   r   r   r   r   r   test_poly1d_resolution   s    z%TestPolynomial.test_poly1d_resolutionc             C   s  t jdddg}t jdddg}t|| t jdgt jddgf t|j t jdddd
g t|jdt jdddd
g t jddd	g}t jdddg}t|| t jdddddg t|| t jdddg t|| t jd d
dg t|d t jdddddddddg	 t||t jdddddg t||t jdddddg t|j t jddg t|jdt jdg tt jt jddd!gt jddgt jdd"gt jd
gf d S )#Ng      ?r
      g      @r   g      ?g      ?g      @r   g        g      @g       @g      ,@g       @g      B@g      Z@g     j@g     s@g     @t@g      k@g     @T@g      "@g      (@g      0@g      @g      @@g      D@g      A@r   gUUUUUU?gUUUUUU?g       r   g      )r   r   r   integderivpolydiv)r   r   r   r   r   r   test_poly1d_math'   s"    $&"zTestPolynomial.test_poly1d_mathc             C   s`   t jdddg}tt j|t jdddg tt|d t|d |d |d |d fd d S )	N      ?r
   r          @      @r   r   )r$   r#   r"   r   )r   r   r   Zasarrayarraylen)r   r   r   r   r   test_poly1d_misc<   s    zTestPolynomial.test_poly1d_miscc             C   sH   t jdddgdd}tt|d t jdddgdd}tt|d d S )	Ng      ?r
   r   y)variablez   2
1 y + 2 y + 3lambdaz!        2
1 lambda + 2 lambda + 3)r   r   r   r   )r   r   r   r   r   test_poly1d_variable_argB   s    z'TestPolynomial.test_poly1d_variable_argc          
   C   s  t tjdtjd tjdgddddg dddgdddgddd	gg}t tj|ddddg ttjtjddddg ttjtjdd"d#d$d%d&g ttjtjdd'd(d)d*d+g ttjtjdd,d-d.g ttjtjdd/dd0g ttjtjdd1g ttjtjdd2g ttjtjdd3g tjjd tjj	ddtjj	d  }ttjtjtj
|tj|f d S )4Nr   r
   r      r   r         r   H              Zd;O?        Cl@y              ?y               @g      ?y              @y              @y          ?*   d   r   r   iiir1   r2   y       Cly       Zd;Oy              ?r   y             y              y      ?       @y      ?       y      ?      @y      ?      y             y      ?       @y      ?       y      ?      @y      ?      y             y      ?       @y      ?       y             y              y             r   y         )r   r   polysqrtr   Z	isrealobjZiscomplexobjrandomseedZrandnconcatenate	conjugate)r   Aar   r   r   	test_polyL   s      zTestPolynomial.test_polyc             C   s   t tjdddgddg d S )Nr   r   )r   r   roots)r   r   r   r   
test_rootsd   s    zTestPolynomial.test_rootsc             C   sX   t jddddg}d|d< tt|d t jddg}d|d< d|d< tt|d d S )Nr   r   r
   r   r   z   2
3 x + 2 x + 1z 
0)r   r   r   r   )r   r   r   r   r   test_str_leading_zerosg   s    z%TestPolynomial.test_str_leading_zerosc             C   s  t jdddg}t jddd}t j||}dd2dd3dd4dg}t jddd5d d	 }ttt jdgdgdd
d t j||| dd
d\}}dddg}t||dd dd6dgd7dd8gdd9dgg}	t|	|dd t j||| d|d
d\}
}tdd:dg|
dd dd;dgd<dd=gdd>d!gg}t||dd t j||| d|d"d\}}tdd?dg|dd d#d@d%gdAd&dBgd%dCd(gg}t||dd |d d t j	f }|d d t j	f }t|t j||d t j
||fdd)}t j
||fdd)}t|t j||d t j||t j|d d t j	f  dd
d\}}t||d d df dd t||d d df dd t|	|d d d d df dd t|	|d d d d df dd t jjd* t jjdDd,}t jt j|jd |dd
d\}}t|j d-d.d/ tt j|j d-d.d/ t jt j|jd |t j|jd dd"d0\}}t|j d-d.d/ tt j|j d- t j|jd dE}t jt j|jd ||dd
d0\}}t|j d-d.d/ tt j|j d-d.d/ t jt j|jd ||dd"d0\}}t|j d-d.d/ tt j|j d1 d S )FNg      @g       @g      ?r   r
   r-   r   r.   g      @T)degcov)rB   gz6>W@gH?gCl?r   )decimalg?g@g1w-!?gH}x@gB>٬ @g~jt?)wrB   g@g*:H?gY8m?g@g&S@gH}8?g:@ghs?gz6>W[?ZunscaledgгY?gŏ1w?g{?gv/?gŏ1w-!?gǺ?)Zaxis{   '  )sizeg      ?g{Gz?)Zatol)rD   rA   rB   g      ?r   r   r   r   gggB>٬ gB>٬ g*:Hg&Sg&Sghsghsg*:Hgŏ1wſgŏ1wſgŏ1w-!gŏ1w-!)r   rF   g       @)r   r%   ZlinspaceZpolyvalaranger   
ValueErrorZpolyfitr   Znewaxisr9   r7   r8   normalzerosshaper   Zstdr6   meanZonesfull)r   cxr(   errweightsmrB   ZestZval0m2Zcov2valZm3Zcov3yyccrM   rD   r   r   r   test_polyfits   sj    
.  ""$$zTestPolynomial.test_polyfitc             C   s   ddl m} tj|d|d|dg}||d }t|d |dk |j }t|d |d	k |j }t|d
 |dk t|d |dk ttj|jj	tj
 tj|d|dg}ttj|d|dgd|d|dg d S )Nr   )Decimalz4.0z3.0z2.0z1.333333333333333r   z3.9999999999999990z8.0r   z1.333333333333333333333333333r
   z1.5r   )rC   rY   r   r   r   r   r   Z
issubdtypecoeffsdtypeZobject_r5   r   )r   rY   r   p2r   r   r   test_objects   s    zTestPolynomial.test_objectsc             C   sT   t jdddg}|j }t|jddddgkj  |j }t|jddgkj  d S )Ny              @y               @y              ?r   y              @)r   r   r   r   rZ   allr   )r   r   r\   r   r   r   test_complex   s
    zTestPolynomial.test_complexc             C   sF   t jdddg}|jddddgd}t|jddddddgkj  d S )Nr   r
   r   	   r-   r,   )kg      @g      @g      @g       @g      ?g      ?g?gUUUUUU?gUUUUUU?g      ?gUUUUUU?g      "@g      @)r   r   r   r   rZ   r^   )r   r   r\   r   r   r   test_integ_coeffs   s    z TestPolynomial.test_integ_coeffsc             C   s.   yt jt jd W n tk
r(   Y nX d S )Nr   )r   r   )r   r5   rK   rI   )r   r   r   r   test_zero_dims   s    zTestPolynomial.test_zero_dimsc             C   s,   t jdd}tt j|t jt j| dS )z.
        Regression test for gh-5096.
        r      N)r   rH   r   r5   Zdiag)r   vr   r   r   test_poly_int_overflow   s    z%TestPolynomial.test_poly_int_overflowc             C   sj   t jdddg}t jdddg}t|d kd t|d kd t||kd t||kd t||kd d S )Nr   r
   r   r   FT)r   r   r   )r   r   r\   r   r   r   test_poly_eq   s    zTestPolynomial.test_poly_eqc             C   sj   t jddddg}t jddd	dg}t j||\}}t|jjt j t|jjt j t|| | | d S )
Nr
   r,   r   y              ?y               @y             y      ?       @y       @      ?y             )r   r   r    r   rZ   r[   Z
complex128)r   br<   r   r   r   r   r   test_polydiv   s    zTestPolynomial.test_polydivc             C   sn   t jdddg}| jd7  _t|jdddg |jd  d7  < t|jdddg ttt|dt jd dS )	z# Coefficients should be modifiable r   r
   r   r   
      rZ   N)r   r   rZ   r   r   AttributeErrorsetattrr%   )r   r   r   r   r   test_poly_coeffs_mutable   s    z'TestPolynomial.test_poly_coeffs_mutableN)__name__
__module____qualname__r   r   r!   r'   r+   r=   r?   r@   rX   r]   r_   rb   rc   rf   rg   ri   rn   r   r   r   r   r	      s"   
J	r	   )Znumpyr   Znumpy.testingr   r   r   r   r   r   r   r	   r   r   r   r   <module>   s   $