
    Bwg,                         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y)    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                  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y)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
       y )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       V/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/lib/tests/test_polynomial.pytest_poly1d_str_and_reprz'TestPolynomial.test_poly1d_str_and_repr   s    IIj!T!W45SV%	& IIj!T!W45SV%	& II>?SV@	A 	S<01&	'    c                     t        j                  g d      }t        j                  g d      }t         |d      d       t         |d      d       t         |d      d       t         |d      d       y )	Nr   r   r   r      g      C@r   g     U@r   r   r   r   r    r!   s      r#   test_poly1d_resolutionz%TestPolynomial.test_poly1d_resolution%   sV    IIj!IIj!QqT3QqT4 QqT3QqT4 r%   c           	      P   t        j                  g d      }t        j                  g d      }t        ||z  t        j                  dg      t        j                  ddg      f       t        |j                         t        j                  g d             t        |j                  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        |j	                         t        j                  ddg             t        |j	                  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       y )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-   s   IIj!IIj!QqS299dV,biid.DEFQWWY		*; <=QWWQZ+<!=>IIj!IIj!QUBII&;<=QUBIIl34QUBIIm45Q!VRYY'WXYQqT299%;<=QqT299%=>?QWWY		2r( 34QWWQZB41RZZ		* 5ryy!Q7HIiiS	*BIIrdO<	>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}|j                         D ]R  \  }}||   }t	        ||       |t         j                  k(  rt        |t              r;J t	        |j                  |       T y )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    #XXiu-IIbM 	RZZ]B'RZZ]((%0SVQ  A!a8(..0 	2JE3uXF%

"!&#...V\\51	2r%   c                     t        j                  g dd      }t        t        |      d       t        j                  g dd      }t        t        |      d       y )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   sJ    IIj3/SV%	& IIj84SV/	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                  j                  d       t        j                  j                  d      dt        j                  j                  d      z  z   }t	        t        j
                  t        j                  t        j                  |t        j                  |      f                         y )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   s   !"''1rwwqzk2771:*F"G"0	2 	9-!"''!*.?@ 	RWW%IJKLRWW &= > ? 	@RWW%GHIJRWW%:;<=RWW%789:RWWb#Y/01RWWaW-./[(9 :;<
		rIIOOC 2biiooc&:#::RWWR^^QQ4H%IJKLr%   c                 J    t        t        j                  g d      ddg       y )N)r   r   r   r   )r   r   rootsr   s    r#   
test_rootszTestPolynomial.test_rootsy   s    288I.A7r%   c                     t        j                  g d      }d|d<   t        t        |      d       t        j                  ddg      }d|d<   d|d<   t        t        |      d       y )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`    IIl#!SV%	& IIq!f!!SVV$r%   c                 
   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                  j                  d       t         j                  j                  d      }t        j                  t        j                  |j                  d         |dd
      \  }}t!        |j#                         d d!"       t!        t        j$                  |j'                               d d!"       t        j                  t        j                  |j                  d         |t        j(                  |j                  d         dd#      \  }}t!        |j#                         d d!"       t        t        j$                  |j'                               d        t        j*                  |j                  d   d$      }t        j                  t        j                  |j                  d         ||dd
#      \  }}t!        |j#                         d d!"       t!        t        j$                  |j'                               d d!"       t        j                  t        j                  |j                  d         ||dd#      \  }}t!        |j#                         d d!"       t        t        j$                  |j'                               d%       y )&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   s   HH\"KK1a JJq!&))Aq"%q(,
 	j"**cA3A4	1 AquaT23%CA.+++- 	D#q1::a3W$?D5r1E***, 	Cq1::a3W*ED5r1E***, 	Cq1 amamArzz!Q23^^QF+^^QF+B

1b! 45ArBHHSM!RZZ-$@@!N3C1a4!4C1a4!4D#aAg,:D#aAg,: 			sII*-JJrxx
3QA4H	c
Cd3
+St<JJrxx
3Q"''!''!*:M#$*6	c
Cd3BGGCHHJ/5GGAGGAJ'JJrxx
3Q!M	c
Cd3
+St< JJrxx
3Q!
S	c
Cd3BGGCHHJ/6r%   c                    ddl m} t        j                   |d       |d       |d      g      }| |d      z  }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       y )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   #IIwu~wu~wu~FG,--1!5667WWY1'(WWY1!@AAB1'(biioorzz:;GGWQZ,-RWWgaj'!*56gaj1	3r%   c                    t        j                  g d      }|j                         }t        |j                  g dk(  j                                |j                         }t        |j                  ddgk(  j                                y )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^    IIl#WWYo-2245WWYr2h&++-.r%   c                     t        j                  g d      }|j                  dg d      }t        |j                  g dk(  j                                y )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   sA    IIi WWQ)W$YYDDIIK	Mr%   c                 t    	 t        j                  t        j                  d             y # t        $ r Y y w xY w)N)r   r   )r   rZ   r   r   rh   s    r#   test_zero_dimszTestPolynomial.test_zero_dims   s.    	GGBHHV$% 		s   (+ 	77c                     t        j                  dd      }t        t        j                  |      t        j                  t        j                  |                   y)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   s7     IIaBGGAJ
(;<r%   c                 r   t        j                  g d      }t        j                  |j                  t         j                              }t        |j                  j                  t         j                         t        j                  |j                  t         j                              }t        |j                  j                  t         j                         t        j                  |j                  t         j                              }t        |j                  j                  t         j                         y)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     HHYIIahhrxx()QXX^^RXX.IIahhrzz*+QXX^^RZZ0IIahhr||,-QXX^^R\\2r%   c                     t        j                  g d      }t        j                  g d      }t        |d k(  d       t        |d k7  d       t        ||k(  d       t        ||k(  d       t        ||k7  d       y )Nr:   )r   r   r,   FTr(   r   s      r#   test_poly_eqzTestPolynomial.test_poly_eq	  sd    IIi YYy!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 y )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  s    IIl#II/0zz!Q1QXX^^R]]3QXX^^R]]3QqS1Wa IIi zz!Q1!RYY'''!RYY'''zz!Q1!RYY'''!RYY'''r%   c           	      >   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             y)	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#  se    IIi 	AQXXy)	rQXXz* 	ngq(BHHQK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      s    ',!>* [[[*52# 2$ 2 62(0M08
%H7T3/M=3$("Ir%   r   )numpyr   numpy.testingr   r   r   r   r   r   r	   r   	typecodesr   r   r   r%   r#   <module>r      sM      
  \\,'",,z*BBSH
aI aIr%   