
    G/Ph,                         d dl Zd dlmZmZmZmZmZmZm	Z	 d dl
Z
ej        d         ej        d         z   dz   Z G d d          ZdS )    N)assert_assert_equalassert_array_equalassert_almost_equalassert_array_almost_equalassert_raisesassert_allclose
AllIntegerAllFloatOc                       e Zd Zd Zd Zd Zej                            de	          de
ddfd            Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestPolynomialc                    t          j        g d          }t          t          |          d           t          t	          |          d           t          j        g d          }t          t          |          d           t          t	          |          d           t          j        g d          }t          t	          |          d           t          t	          t          j        g d	                    d
           d S )N      ?      zpoly1d([1., 2., 3.])z   2
1 x + 2 x + 3      @r      zpoly1d([3., 2., 1.])   2
3 x + 2 x + 1)y[f?       @y             g"GBtk~y       @      ?z=            3      2
(1.9 + 2j) x - 3j x - 5.123 x + (2 + 1j))z    2
-3 x - 2 x - 1)nppoly1dr   reprstr)selfpqrs       _/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/lib/tests/test_polynomial.pytest_poly1d_str_and_reprz'TestPolynomial.test_poly1d_str_and_repr   s   Ijjj!!T!WW4555SVV%	& 	& 	& Ijjj!!T!WW4555SVV%	& 	& 	& I>>>??SVV@	A 	A 	A 	S<<<0011&	' 	' 	' 	' 	'    c                 &   t          j        g d          }t          j        g d          }t           |d          d           t           |d          d           t           |d          d           t           |d          d           d S )	Nr   r   r   r      g      C@r   g     U@r   r   r   r   r    r!   s      r#   test_poly1d_resolutionz%TestPolynomial.test_poly1d_resolution%   s    Ijjj!!Ijjj!!QQqTT3QQqTT4   QQqTT3QQqTT4     r%   c           	         t          j        g d          }t          j        g d          }t          ||z  t          j        dg          t          j        ddg          f           t          |                                t          j        g d                     t          |                    d          t          j        g d                     t          j        g d          }t          j        g d	          }t          ||z  t          j        g d
                     t          ||z   t          j        g d                     t          ||z
  t          j        g d                     t          |dz  t          j        g d                     t           ||          t          j        g d                     t           ||          t          j        g d                     t          |                                t          j        ddg                     t          |                    d          t          j        dg                     t          t          j        t          j        g d          t          j        ddg                    t          j        ddg          t          j        dg          f           d S )N)r   r      )      @r   r         ?g      ?g      @)gUUUUUU?r   r-           r   r   r   )r          @g      ,@r0   r   )r-   r-   r-   )g       r/          @r,   )	r   r0   g      B@g      Z@g     j@g     s@g     @t@g      k@g     @T@)g      "@      (@g      0@r0   g      @)r   r2   g      @@g      D@g      A@r1   r   )r   r   r   r   g      r/   )r   r   r   integderivpolydivr)   s      r#   test_poly1d_mathzTestPolynomial.test_poly1d_math-   se   Ijjj!!Ijjj!!QqS29dV,,bid.D.DEFFFQWWYY	*;*;*; < <===QWWQZZ+<+<+<!=!=>>>Ijjj!!Ijjj!!QUBI&;&;&;<<===QUBIlll33444QUBImmm44555Q!VRY'W'W'WXXYYYQQqTT29%;%;%;<<===QQqTT29%=%=%=>>???QWWYY	2r( 3 3444QWWQZZB4111RZ	*** 5 5ry!Q7H7HIIiS	**BIrdOO<	> 	> 	> 	> 	>r%   	type_codereturnNc                 @   t          j        |          }t          j        g d|          }t          j        |          }t	          t          j        |          |           t	          t          j        |          j        |           t	          t          |          d           dddddd}|                                D ]Z\  }}||         }t	          ||           |t           j        k    rt          |t                    sJ Et	          |j        |           [d S )Nr   r   r   )dtyper   r   r   r   )r   r   r   r   r   )r   r;   arrayr   r   asarraylenitemsobject_
isinstanceint)	r   r7   r;   arr    comparison_dctindexrefscalars	            r#   test_poly1d_misczTestPolynomial.test_poly1d_miscB   s   ##Xiiiu---IbMM 	RZ]]B'''RZ]](%000SVVQ  A!a88(..00 	2 	2JE3uXF%%%
""!&#......V\51111	2 	2r%   c                     t          j        g dd          }t          t          |          d           t          j        g dd          }t          t          |          d           d S )Nr   y)variablez   2
1 y + 2 y + 3lambdaz!        2
1 lambda + 2 lambda + 3r   r   r   r   )r   r!   s     r#   test_poly1d_variable_argz'TestPolynomial.test_poly1d_variable_argW   s|    Ijjj3///SVV%	& 	& 	& Ijjj8444SVV/	0 	0 	0 	0 	0r%   c                    t          t          j        dt          j        d           t          j        d          g          g d           g dg dg dg}t          t          j        |          g d           t	          t          j        t          j        g d                               t	          t          j        t          j        g d	                               t	          t          j        t          j        g d
                               t	          t          j        t          j        g d                               t	          t          j        t          j        g d                               t	          t          j        t          j        ddg                               t	          t          j        t          j        ddg                               t	          t          j        t          j        ddg                               t          j                            d           t          j        	                    d          dt          j        	                    d          z  z   }t	          t          j        t          j        t          j
        |t          j        |          f                                         d S )Nr   r   )r   r   r      r:   )r,   r'   rP   )      r   )r   iii)y        Zd;O?y        Cl@y       Cly       Zd;O)              ?y                    ?       @      ?       y      ?      @y      ?      )rS                rT   rU   y      ?      @y      ?      )rS   rV   rT   rU   )rS   rV                  @y              rS   rV   r   r   y         *   d   )r   r   polysqrtr   	isrealobjiscomplexobjrandomseedrandnconcatenate	conjugate)r   Aas      r#   	test_polyzTestPolynomial.test_polya   sP   !"'1rwqzzk271::*F"G"G"0..	2 	2 	2 YY			999-!"'!**.?.?.?@@@ 	RW%I%I%IJJKKLLLRW &= &= &= > > ? ? 	@ 	@ 	@RW%G%G%GHHIIJJJRW%:%:%:;;<<===RW%7%7%78899:::RWb#Y//00111RWaW--..///[(9 : :;;<<<
	rIOOC  2biooc&:&:#::RWR^QQ4H%I%IJJKKLLLLLr%   c                 R    t          t          j        g d          ddg           d S )N)r   r   r   r   )r   r   rootsr   s    r#   
test_rootszTestPolynomial.test_rootsy   s*    28III..A77777r%   c                     t          j        g d          }d|d<   t          t          |          d           t          j        ddg          }d|d<   d|d<   t          t          |          d           d S )N)r,   r   r   r   r   r   r   r   r   z 
0rM   r   r    s     r#   test_str_leading_zerosz%TestPolynomial.test_str_leading_zeros|   s    Illl##!SVV%	& 	& 	& Iq!f!!SVVV$$$$$r%   c                 8   t          j        g d          }t          j        ddd          }t          j        ||          }g d}t          j        ddd          dz  d	z  }t          t          t           j        dgdgdd
           t          j        |||z   dd
          \  }}g d}t          ||d           g dg dg dg}	t          |	|d           t          j        |||z   d|d
          \  }
}t          g d|
d           g dg dg dg}t          ||d           t          j        |||z   d|d          \  }}t          g d|d           g dg dg dg}t          ||d           |d d t           j	        f         }|d d t           j	        f         }t          |t          j        ||d                     t          j
        ||fd          }t          j
        ||fd          }t          |t          j        ||d                     t          j        ||t          j        |          d d t           j	        f         z   dd
          \  }}t          ||d d df         d           t          ||d d df         d           t          |	|d d d d df         d           t          |	|d d d d df         d           t           j                            d           t           j                            d          }t          j        t          j        |j        d                   |dd
          \  }}t!          |                                d d!"           t!          t          j        |                                          d d!"           t          j        t          j        |j        d                   |t          j        |j        d                   dd#          \  }}t!          |                                d d!"           t          t          j        |                                          d            t          j        |j        d         d$          }t          j        t          j        |j        d                   ||dd
#          \  }}t!          |                                d d!"           t!          t          j        |                                          d d!"           t          j        t          j        |j        d                   ||dd#          \  }}t!          |                                d d!"           t          t          j        |                                          d%           d S )&N)r   r1   r   r   r   rQ   )r   r   r   r   r   r   r   rR   r   r   g      @T)degcov)ro   )gz6>W@gH?gCl?r,   )decimal)g?1w-!?)rq   gH}x@B>٬ )rr   rs   g~jt?)wro   )g@g*:HgY8m?)g@&SH}8?)ru   g:@hs)rv   rw   gz6>W[?unscaled)gгY?ŏ1wſ{?)ry   gv/?ŏ1w-!)rz   r{   gǺ?)axis{   )r,   i'  )sizeg      ?g{Gz?)atol)rt   rn   ro   r1   r.   )r   r<   linspacepolyvalaranger   
ValueErrorpolyfitr   newaxisra   r^   r_   normalzerosshaper	   stdr[   meanonesfull)r   cxrJ   errweightsmro   estval0m2cov2valm3cov3yyccr   rt   s                      r#   test_polyfitzTestPolynomial.test_polyfit   st   H\\\""K1a  Jq!&&&)Aq"%%q(,
 	j"*cA3A4	1 	1 	1 	1 AquaT2223%%%CA....+++++++++- 	D#q1111:a3W$???D555r1EEEE*********, 	Cq1111:a3W*EEED555r1EEEE*********, 	Cq1111 aaamaaamArz!Q22333^QF+++^QF+++B
1b! 4 4555ArBHSMM!!!RZ-$@@!NNN3C111a4!4444C111a4!4444D#aaaAg,::::D#aaaAg,:::: 		sI*--Jrx
33QA4HHH	c

Cd3333

++St<<<<Jrx
33Q"'!'!*:M:M#$*6 6 6	c

Cd3333BGCHHJJ//555GAGAJ''Jrx
33Q!MMM	c

Cd3333

++St<<<< Jrx
33Q!
SSS	c

Cd3333BGCHHJJ//66666r%   c                 D   ddl m} t          j         |d           |d           |d          g          }| |d          z  }t	          |d          |d          k               |                                }t	          |d          |d	          k               |                                }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   )rp   r   r   r   r   r4   r3   
issubdtypecoeffsr;   r@   rZ   r   )r   r   r    p2s       r#   test_objectszTestPolynomial.test_objects   s   ######Iwwu~~wwu~~wwu~~FGG,---1!5666777WWYY1'(((WWYY1!@AAABBB1'(((biorz::;;;GWWQZZ,--RWggajj''!**566ggajj1	3 	3 	3 	3 	3r%   c                 2   t          j        g d          }|                                }t          |j        g dk                                               |                                }t          |j        ddgk                                               d S )N)y              @rW   rS   )rS   rS   rS   r   y              @rW   )r   r   r3   r   r   allr4   r   r    r   s      r#   test_complexzTestPolynomial.test_complex   s    Illl##WWYYooo-2244555WWYYr2h&++--.....r%   c                     t          j        g d          }|                    dg d          }t          |j        g dk                                               d S )N)r   r   r   r   )	   rQ   rP   )k)g?gUUUUUU?gUUUUUU?g      @rQ   rP   )r   r   r3   r   r   r   r   s      r#   test_integ_coeffsz TestPolynomial.test_integ_coeffs   sl    Iiii  WWQ)))W$$YDDDDIIKK	M 	M 	M 	M 	Mr%   c                 v    	 t          j        t          j        d                     d S # t          $ r Y d S w xY w)N)r   r   )r   rZ   r   r   rh   s    r#   test_zero_dimszTestPolynomial.test_zero_dims   sI    	GBHV$$%%%%% 	 	 	DD	s   &* 
88c                     t          j        dd          }t          t          j        |          t          j        t          j        |                               dS )z.
        Regression test for gh-5096.
        r      N)r   r   r   rZ   diag)r   vs     r#   test_poly_int_overflowz%TestPolynomial.test_poly_int_overflow   sE     IaBGAJJ

(;(;<<<<<r%   c                 0   t          j        g d          }t          j        |                    t           j                            }t          |j        j        t           j                   t          j        |                    t           j                            }t          |j        j        t           j                   t          j        |                    t           j	                            }t          |j        j        t           j	                   dS )z/
        Regression test for gh-16354.
        )r   r   r   N)
r   r<   r   astypeint64r   r   r;   float32	complex64)r   zr    s      r#   test_zero_poly_dtypez#TestPolynomial.test_zero_poly_dtype   s     HYYYIahhrx(())QX^RX...Iahhrz**++QX^RZ000Iahhr|,,--QX^R\22222r%   c                 &   t          j        g d          }t          j        g d          }t          |d k    d           t          |d k    d           t          ||k    d           t          ||k    d           t          ||k    d           d S )Nr:   )r   r   r,   FTr(   r   s      r#   test_poly_eqzTestPolynomial.test_poly_eq	  s    Iiii  Yyyy!!Q$Y&&&Q$Y%%%Q!VT"""Q"We$$$Q"Wd#####r%   c                    t          j        g d          }t          j        g d          }t          j        ||          \  }}t          |j        j        t           j                   t          |j        j        t           j                   t          ||z  |z   |           g d}t          j        g d          }t          j        ||          \  }}t          |t           j                  sJ t          |t           j                  sJ t          j        ||          \  }	}
t          |	t           j                  sJ t          |
t           j                  sJ d S )N)r   rP   rP   r   )rV   rT   y             r   r:   )r   r   r5   r   r   r;   
complex128rA   )r   brd   r!   r"   r   dstur   s              r#   test_polydivzTestPolynomial.test_polydiv  s0   Illl##I///00z!Q1QX^R]333QX^R]333QqS1Wa   IIIiii  z!Q1!RY'''''!RY'''''z!Q1!RY'''''!RY'''''''r%   c           	      6   t          j        g d          }|xj        dz  c_        t          |j        g d           |j        dxx         dz  cc<   t          |j        g d           t	          t
          t          |dt          j        d                     dS )	z# Coefficients should be modifiable r:   r   )r   r   r,   r   
   )r   r      r   N)r   r   r   r   r   AttributeErrorsetattrr<   rk   s     r#   test_poly_coeffs_mutablez'TestPolynomial.test_poly_coeffs_mutable#  s    Iiii  	AQXyyy)))	rQXzzz*** 	ngq(BHQKKHHHHHr%   )__name__
__module____qualname__r$   r*   r6   pytestmarkparametrize
TYPE_CODESr   rH   rN   re   ri   rl   r   r   r   r   r   r   r   r   r   r    r%   r#   r   r      sc       ' ' ',! ! !> > >* [[*552# 2$ 2 2 2 652(0 0 0M M M08 8 8
% 
% 
%H7 H7 H7T3 3 3/ / /M M M  = = =3 3 3$ $ $( ( ("I I I I Ir%   r   )numpyr   numpy.testingr   r   r   r   r   r   r	   r   	typecodesr   r   r   r%   r#   <module>r      s                        
  \,'",z*BBSH
aI aI aI aI aI aI aI aI aI aIr%   