
    J/Ph@M                        d dl Z d dlmZ d dlZd dlmZ d dlmZ	 d dl
mZmZ d dlmZmZmZmZ d dlmZ d Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd ZddZ G d dee          Z  G d de           Z! G d dee          Z"dS )    N)product)
polynomial)	polyutils)jitnjit)TestCaseneeds_lapackEnableNRTStatsMixinMemoryLeakMixin)TypingErrorc                 *    t          j        |           S N)nproots)ps    [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_polynomial.pyroots_fnr      s    8A;;    c                 ,    t          j        | |          S r   )polypolyaddc1c2s     r   r   r          <2r   c                 ,    t          j        | |          S r   )r   polysubr   s     r   r   r      r   r   c                 ,    t          j        | |          S r   )r   polymulr   s     r   r   r      r   r   c                 *    t          j        |           S r   )putrimseq)seqs    r   r"   r"      s    :c??r   c                 .    t          j        |           }|S r   r!   	as_series)aress     r   polyasseries1r)   "   s    
,q//CJr   c                 0    t          j        | |          }|S r   r%   )r'   trimr(   s      r   polyasseries2r,   '   s    
,q$

CJr   c                 0    t          j        | |          }|S r   )r   polydiv)r   r   r(   s      r   r.   r.   ,   s    
,r2

CJr   c                 0    t          j        | |          }|S r   r   polyvalxcr(   s      r   polyval2r5   1       
,q!

CJr   c                 2    t          j        | |d          }|S )NTr0   r2   s      r   	polyval3Tr8   6   s    
,q!T
"
"CJr   c                 2    t          j        | |d          }|S )NFr0   r2   s      r   	polyval3Fr:   ;   s    
,q!U
#
#CJr      c                 0    t          j        | |          }|S r   )r   polyint)r4   mr(   s      r   r=   r=   @   r6   r   c                   f     e Zd ZdZej        ej        ej        ej        fZ	 fdZ
efdZd Z xZS )TestPolynomialBasezV
    Provides setUp and common data/error modes for testing polynomial functions.
    c                 |    t          j                     t          t          |                                            d S r   )gccollectsuperr@   setUp)self	__class__s    r   rE   zTestPolynomialBase.setUpM   s1    

 $''--/////r   c                     |                      |          5 } ||  d d d            n# 1 swxY w Y   |                     |t          |j                             d S r   )assertRaisesassertInstr	exception)rF   cfuncargsmsgerrraisess         r   assert_errorzTestPolynomialBase.assert_errorR   s    s## 	vE4LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	c3v/0011111s   (,,c                 8    d}|                      |||           d S )NzInput must be a 1d array.rR   )rF   rM   rN   rO   s       r   assert_1d_inputz"TestPolynomialBase.assert_1d_inputW   s%    )%s+++++r   )__name__
__module____qualname____doc__r   float64float32
complex128	complex64dtypesrE   
ValueErrorrR   rU   __classcell__)rG   s   @r   r@   r@   E   s         
 j"*bmR\BF0 0 0 0 0
 2< 2 2 2 2
, , , , , , ,r   r@   c                   *    e Zd Zd Zed             ZdS )
TestPoly1Dc                 >    |dz   }|                      |||           d S )Nz+() argument must not cause a domain change.rT   )rF   namerM   rN   rO   s        r   assert_no_domain_changez"TestPoly1D.assert_no_domain_change^   s+    BB%s+++++r   c           
      Z   	  t          d          t                    t          j        t          j                  j        		 fd}t          j        dg          t          j        g d          t          j        g d          t          j        g d          t          j        g d          t          j        g d	          t          j        g d
          f}t          |t          j        t          j	        gt           j                  z             D ]%\  }}|                    |          } ||           &t          j        dg          t          j        g d          t          j        g d          t          j        g d          t          j        g d          t          j        g d          t          j        g d          f}t          | j        dd                    D ]%\  }}|                    |          } ||           &                     t          j        d                              dd          f           t          j        g d          }                     d|f            |                    t          j                             d S )NT)nopythonc                 P   t          | fi |} | fi |}| j        j        v rt          j        | j                  j        }n}t          j                            ||d|z  d|z                                             5   | fi | d d d            d S # 1 swxY w Y   d S )N
   d   )rtolatol)	r   dtyper^   r   finfo
resolutiontestingassert_allcloseassertNoNRTLeak)r'   kwargsexpectedgotro   rM   default_resolutionrF   s        r   checkz$TestPoly1D.test_roots.<locals>.checki   s!   ,,V,,H%$$V$$C w$+%%Xag..9

 0
J&&*_:%	 '    %%'' # #a""6"""# # # # # # # # # # # # # # # # # #s   
BB"Br;   )r;         )r   r   r   )r;         rz   )r   r   r   r;   rx   ry   )r;   r;   r   r   r   )r   r   r;   r   r   r         ?      ?)r;   y      @      ?ry   )r   y                r   )r;   y      @      ?r{   rz   )r   r   r   r|   rx   ry   )r|   r;   r   r   r   )r   r   r|   r   r   r   ry   g      @)g      @       @              ?eigvals)r   r   r   rn   rZ   ro   arrayr   int32int64listr^   astyperU   arangereshapere   r\   )
rF   rw   	r_vectorsvrm   r'   	c_vectorsr3   rM   rv   s
   `       @@r   
test_rootszTestPoly1D.test_rootsb   s    #T"""8,,Xbj11<	# 	# 	# 	# 	# 	# 	#: HaSMMHYYYHYYYH]]]##H'''((H___%%H'''((
	 	BHbh#7$t{:K:K#KLL	 	HAuAE!HHHH HfXH^^^$$H^^^$$H'''((H,,,--H)))**H,,,--
	  	4;qrr?;; 	 	HAuAE!HHHH 	URYr]]%:%:1a%@%@$BCCC H%%%&&$$Yt<<<ahhr}%%&&&&&r   N)rV   rW   rX   re   r	   r    r   r   rb   rb   \   sC        , , , H' H' \H' H' H'r   rb   c                       e Zd Zd Zd Zd Zd Zd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 ZdS )TestPolynomialc                     t           }t          t                     }d } |            D ]*}|                      ||           ||                     +d S )Nc               3   j   K   t          d          D ] } t          j        dgdg| z  z             V  !d S )N   r;   r   ranger   r   )is    r   inputsz1TestPolynomial.test_trimseq_basic.<locals>.inputs   sJ      1XX . .hsaS1W}------. .r   )r"   r   assertPreciseEqual)rF   pyfuncrM   r   coefss        r   test_trimseq_basicz!TestPolynomial.test_trimseq_basic   so    W	. 	. 	. VXX 	A 	AE##FF5MM55<<@@@@	A 	Ar   c                     t          t                    }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        d          
                    dd                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )	Nabcz%The argument "seq" must be array-likeri   r   ry   Coefficient array is not 1-dr;   ry   rx   r   z6Unsupported type UniTuple(int64, 4) for argument "seq")r   r"   disable_leak_checkrI   r   rJ   rK   rL   r   r   r   )rF   rM   rQ   es       r   test_trimseq_exceptionz%TestPolynomial.test_trimseq_exception   s   W!!!{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	=&*++	- 	- 	- {++ 	/qE")B--''1--...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/4!+&&	( 	( 	( {++ 	 qE,	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 N!+&&	( 	( 	( 	( 	(s6   AA"A(2C&&C*-C*3EEEc                    t           }t          t                     }t          }t          t                    }d } |            D ]~}|                      ||           ||                     |                      ||d           ||d                     |                      ||d           ||d                     d S )Nc               3      K   t          j        d          V  t          j        d                              d          V  dt          j        d          t          j        dt           j                  fV  g dg d	fV  d
V  dV  dddgfV  g dfV  dV  t          j        g d          fV  t          j        g d          t          j        g d          gV  t          j        g d	          gV  d S )N   rz   )ry   rx   r;   rx   ry   rm   )r;   ry   rx   r   r   r;   ry   rx   )r   r   MbP?r   gh㈵>r   r   )r;   ry   rx   r   r   rz      )r   )              ?ry                 @y              @r   y              @r   g?r~   r   )r   )r   r   r   r[   r   r   r   r   r   z6TestPolynomial.test_pu_as_series_basic.<locals>.inputs   s9     )A,,)A,,&&u-----billBIarz$B$B$BCCCC"??III....FFFFJJJJsBi.   <<""""""""8LLL)),,,,8LLL))28LLL+A+ABBBB8GGG$$''''''r   FT)r)   r   r,   r   )rF   pyfunc1cfunc1pyfunc2cfunc2r   inputs          r   test_pu_as_series_basicz&TestPolynomial.test_pu_as_series_basic   s    m$$m$$	( 	( 	( VXX 	O 	OE##GGENNFF5MMBBB##GGE5$9$966%;O;OPPP##GGE4$8$8&&:M:MNNNN	O 	Or   c           	      r   t          t                    }t          t                    }|                                  |                     t
                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t
                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t
                    5 } |t          j
        d          d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t
                    5 } |g dt          j
        d                              dd          f           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t
                    5 } |t          j
        d	                              d
                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t
                    5 } |t          j        g dg dg          g           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j        g gt          j                             d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |g dt          j        g t          j                  t          j        g d          f           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nr   z'The argument "alist" must be array-likeTr   z#The argument "trim" must be booleanr      r      ry   ry   ry   r   zCoefficient array is empty)r;   ry   r;   )r   r)   r,   r   rI   r   rJ   rK   rL   r   r   r   r   r_   rZ   )rF   r   r   rQ   s       r   test_pu_as_series_exceptionz*TestPolynomial.test_pu_as_series_exception   s   m$$m$$!!!{++ 	vF5MMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	?&*++	- 	- 	- {++ 	 vF5$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ?&*++	- 	- 	- {++ 	(vF29Q<<'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(;&*++	- 	- 	- {++ 	<vFIIIry}}44Qq99:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<4&*++	- 	- 	- {++ 	4vF29Q<<''	22333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	44&*++	- 	- 	- {++ 	4vFBHgggggg.//2333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	44&*++	- 	- 	- z** 	5fF28RD
333444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	52&*++	- 	- 	- z** 	(fFIIIrx"*===HWWW%%' ( ( (	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	2&*++	- 	- 	- 	- 	-s   A//A36A3<CCC"EEE6GG #G )1I&&I*-I*3%K$$K(+K(1+M((M,/M,5APPPFc                     t          |          }d } |            D ]1\  }}|                      |||           |||          |           2d S )Nc               3   F  K   t          d          D ]R} t          d          D ]@}t          j        dg| z  dgz             }t          j        dg|z  dgz             }||fV  ASg dg dfV  g ddfV  dg dfV  g ddfV  dV  t          j        g d          t          j        g d          fV  t          j        g d          t          j        g d          fV  t          j        g d          t          j        g d          fV  d	V  d
V  dV  d S )Nr   r   r;   r   rx   )rx   r   )r   r}         @)r   y               @r   )r   r   )r   r   ))r;   r   rx   r   r   )r   jp1p2s       r   r   z5TestPolynomial._test_polyarithm_basic.<locals>.inputs  s     1XX ! !q ! !A1#'QC-00B1#'QC-00Bb&LLLL!
 ))YYY&&&&))Y&&&&YYY&&&&))Q,(999%%rx'@'@@@@@(<<<(("(???*C*CCCCC(999%%rx'='=====    ))))))r   ignore_sign_on_zero)r   r   )rF   r   r   rM   r   r   r   s          r   _test_polyarithm_basicz%TestPolynomial._test_polyarithm_basic  s    V	* 	* 	** fhh 	M 	MFB##FF2bMM55B<<8K $ M M M M	M 	Mr   c                    t          |          }|                                  |                     t                    5 } |dt	          j        g d                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t	          j        g d          d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t	          j	        d          
                    dd          t	          j        g d                     d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t	          j        g d          t	          j	        d          
                    dd                     d d d            n# 1 swxY w Y   |                     dt          |j                             d S )	Nr   r   z$The argument "c1" must be array-likez$The argument "c2" must be array-likeri   r   ry   r   )r   r   rI   r   r   r   rJ   rK   rL   r   r   )rF   r   rM   rQ   r   s        r   _test_polyarithm_exceptionz)TestPolynomial._test_polyarithm_exception8  s1   V!!!{++ 	,vE%'''**+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,<&*++	- 	- 	- {++ 	,vE"(777##U+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,<&*++	- 	- 	- {++ 	DqE")B--''1--rx			/B/BCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D4!+&&	( 	( 	( {++ 	DqE"(999%%ry}}'<'<Q'B'BCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D4!+&&	( 	( 	( 	( 	(sI   !A++A/2A/8!C%%C),C)2AFF	F	AH%%H),H)c                 :    |                      t                     d S r   )r   r   rF   s    r   test_polyadd_basicz!TestPolynomial.test_polyadd_basicR      ##G,,,,,r   c                 :    |                      t                     d S r   )r   r   r   s    r   test_polyadd_exceptionz%TestPolynomial.test_polyadd_exceptionU      ''00000r   c                 >    |                      t          d           d S )NTr   )r   r   r   s    r   test_polysub_basicz!TestPolynomial.test_polysub_basicX  s!    ##G#FFFFFr   c                 :    |                      t                     d S r   )r   r   r   s    r   test_polysub_exceptionz%TestPolynomial.test_polysub_exception[  r   r   c                 :    |                      t                     d S r   )r   r   r   s    r   test_polymul_basicz!TestPolynomial.test_polymul_basic^  r   r   c                 :    |                      t                     d S r   )r   r   r   s    r   test_polymul_exceptionz%TestPolynomial.test_polymul_exceptiona  r   r   c                     t           }t          t                     }|                     t                      d } |            D ]/\  }}|                      |||           |||                     0d S )Nc               3   2  K   dgdgfV  ddgdgfV  t          d          D ]E} t          d          D ]3}dg| z  ddgz   }dg|z  ddgz   }t          j        ||          }||fV  4Ft          j        g d          t          j        g d          fV  d S )Nry   r   r   r;   )r;   r   r   r   r   r   )r;   r   r   r   )r   r   r   r   r   )r   r   cicjtgts        r   r   z6TestPolynomial.test_poly_polydiv_basic.<locals>.inputsi  s       #s(NNNa&1#+1XX " "q " "AqAq6)BqAq6)B,r2..Cr'MMMM	"
 (+++,,bhzzz.B.BBBBBBBr   )r.   r   r   r   )rF   r   rM   r   r   r   s         r   test_poly_polydiv_basicz&TestPolynomial.test_poly_polydiv_basicd  s    W##G,,,	C 	C 	C fhh 	C 	CFB##FF2rNNEE"bMMBBBB	C 	Cr   c                     |                      t                     t          t                    }|                     t                    5 } |dgdg           d d d            d S # 1 swxY w Y   d S )Nr;   r   )r   r.   r   rI   ZeroDivisionError)rF   rM   _s      r   test_poly_polydiv_exceptionz*TestPolynomial.test_poly_polydiv_exceptionz  s    ''000W 011 	QE1#sOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	A%%A),A)c                    t           }t          t                     }t          }t          t                    }t          }t          t                    }d } |            D ]\  }}	|                      |||	           |||	                     |                      |||	           |||	                     |                      |||	           |||	                     d S )Nc               3     K   t          j        g t           j                  dgfV  dg dfV  t          j        d                              dd          g dfV  t          d          D ]#} t          j        dd          dg| z  dgz   fV  $t          j        dd          g d	fV  t          d
          D ]3} dg| z  }t          j        |          }|dgfV  |ddgfV  |g dfV  4t          j        ddg          t          j        d                              dd          fV  ddgt          j        d                              dd          fV  d S )Nr   r;   r   r   ry   r   r   r   )r   r   r   r;   rx   )r;   r   r   )r   r   rZ   r   r   r   linspacezeros)r   dimsr3   s      r   r   z6TestPolynomial.test_poly_polyval_basic.<locals>.inputs  s      (2RZ0001#5555WWW*)A,,&&q++WWW44441XX 8 8k"a((1#'QC-77777+b!$$mmm33331XX # #sQwHTNN!f!Qil""""(Aq6""BIaLL$8$81$=$=====a&")A,,..q33333333r   )r5   r   r8   r:   r   )
rF   r   r   pyfunc3Tcfunc3Tpyfunc3Fcfunc3Fr   r3   r4   s
             r   test_poly_polyval_basicz&TestPolynomial.test_poly_polyval_basic  s    hy//y//	4 	4 	4* FHH 	C 	CDAq##GGAqMM66!Q<<@@@##HHQNNGGAqMMBBB##HHQNNGGAqMMBBBB		C 	Cr   c                 \   t          t                    }t          t                    }t          t                    }|                                  |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j	                             t           d             }|                     t                    5 } |ddd           d d d            n# 1 swxY w Y   |                     dt          |j	                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j	                             d S )Nrx   r   #The argument "c" must be array-likez#The argument "x" must be array-likedefc                 2    t          j        | ||          }|S r   r0   )r3   r4   tensorr(   s       r   polyval3z<TestPolynomial.test_poly_polyval_exception.<locals>.polyval3  s    ,q!V,,CJr   z%The argument "tensor" must be boolean)
r   r5   r8   r:   r   rI   r   rJ   rK   rL   )rF   r   r   r   rQ   r   s         r   test_poly_polyval_exceptionz*TestPolynomial.test_poly_polyval_exception  s   hy//y//!!!{++ 	vF1e	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- {++ 	vF5!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- {++ 	!vF5%   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!;&*++	- 	- 	- {++ 	vGAu	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- {++ 	vGE1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- 
	 	 
	 {++ 	"vHQ5!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"=&*++	- 	- 	- {++ 	"vGE5!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	";&*++	- 	- 	- 	- 	-s~   +BBBC**C.1C.7EEEF66F:=F:HH #H 9JJJ K99K= K=c           	      ~   t           }t          t                     }|                      |g d           |g d                     t          dd          D ]0}|                      |dg|           |dg|                     1t          d          D ]8}dg|z  dgz   }|                      ||d           ||d                     9t          d          D ]K}t          dd          D ]8}dg|z  dgz   }|                      |||           |||                     9Lt	          j        ddgddgg          }|                      ||           ||                     t	          j        d                              d          }|                      ||           ||                     d S )	Nr   ry   r   r   )r>   r;   r   r   )r=   r   r   r   r   r   r   r   )rF   r   rM   r   polr   r   c3s           r   test_poly_polyint_basicz&TestPolynomial.test_poly_polyint_basic  s   Wwwwwww@@@ q! 	G 	GA##FFA3!$4$4$4eeQC1oooFFFF q 	H 	HA#'QC-C##FF3!$4$4$4ffSA6F6F6FGGGG q 	K 	KA1a[[ K KcAgm''sa(8(8(8%%q///JJJJK
 X!uqen%%r

EE"II666Yq\\!!'**r

EE"II66666r   c                    t          t                    }|                                  |                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |t          j	        g d          d           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |g dd           d d d            n# 1 swxY w Y   |                     dt          |j                             |                     t                    5 } |dd           d d d            n# 1 swxY w Y   |                     dt          |j                             d S )Nr   r   r   z#The argument "m" must be an integer)r'   br4   r;   zInput dtype must be scalar.)
r   r=   r   rI   r   rJ   rK   rL   r   r   )rF   rM   rQ   s      r   test_poly_polyint_exceptionz*TestPolynomial.test_poly_polyint_exception  s   W!!!{++ 	vE%LLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	;&*++	- 	- 	- {++ 	,vE"(777##U+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,;&*++	- 	- 	- {++ 	&vE///1%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&3&*++	- 	- 	- {++ 	&vE/1%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&3&*++	- 	- 	- 	- 	-sH   AA"A(!CCC"D==EE
F##F'*F'c                    d }t          |          }d }t          |          }t          j        ddg          t          j        ddg          f}t          j        ddg          t          j        ddg          f}t          j        ddg          t          j        ddg          f}|D ]}|D ]}	|D ]	}
 |||	|
          } |||	|
          } ||          } ||          }|                     ||           |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   |                     |j        |j                   d S )Nc                 2    t          j        | ||          }|S r   r   
Polynomialr4   domwinr   s       r   pyfunc3z;TestPolynomial.test_Polynomial_constructor.<locals>.pyfunc3      3,,AHr   c                 .    t          j        |           }|S r   r   )r4   r   s     r   r   z;TestPolynomial.test_Polynomial_constructor.<locals>.pyfunc1  s    ""AHr   r   r;   r~   r   )r   r   r   r   coefdomainwindow)rF   r   cfunc3r   r   list1list2list3r4   r   r   r   r   q1q2s                  r   test_Polynomial_constructorz*TestPolynomial.test_Polynomial_constructor  s   	 	 	 g	 	 	 g1a&!!28RH#5#561a&!!28RH#5#561a&!!28RH#5#56 	B 	BA B B  B BC C--B3,,B BB++B333++BGRW===++BIryAAA++BIryAAA++BGRW===++BIryAAA++BIryAAAABB	B 	Br   c                 b   d }t          |          }|                                  t          j        ddg          }t          j        g d          }t          j        d                              d          }|                     t                    5 } ||||           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 } ||||           d d d            n# 1 swxY w Y   |                     dt          |j
                             |                     t                    5 } ||||           d d d            n# 1 swxY w Y   |                     d	t          |j
                             d S )
Nc                 2    t          j        | ||          }|S r   r   r   s       r   r   z8TestPolynomial.test_Polynomial_exeption.<locals>.pyfunc3)  r   r   r;   ry   r   r   )ry   ry   z$Domain has wrong number of elements.z$Window has wrong number of elements.r   )r   r   r   r   r   r   rI   r_   rJ   rK   rL   r   )rF   r   r   input2input3input2DrQ   s          r   test_Polynomial_exeptionz'TestPolynomial.test_Polynomial_exeption(  sb   	 	 	 g!!!1a&!!)))$$)A,,&&v..z** 	+fF666***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+<&*++	- 	- 	- z** 	+fF666***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+<&*++	- 	- 	- {++ 	,vF7FF+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,4&*++	- 	- 	- 	- 	-s6   B..B25B2;DDD"E<<F F N)F)rV   rW   rX   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      s^       	A 	A 	A( ( ((O O O2-- -- --^M M M M:( ( (4- - -1 1 1G G G1 1 1- - -1 1 1C C C,  !C !C !CF,- ,- ,-\7 7 76- - -:B B B:- - - - -r   r   )r;   )#rB   	itertoolsr   numpyr   numpy.polynomialr   r   r   r!   numbar   r   numba.tests.supportr   r	   r
   r   numba.core.errorsr   r   r   r   r   r"   r)   r,   r.   r5   r8   r:   r=   r@   rb   r   r   r   r   <module>r     s   				           / / / / / / , , , , , ,        G G G G G G G G G G G G ) ) ) ) ) )            
  
  
  
  
  
   
, , , , ,,h , , ,.O' O' O' O' O'# O' O' O'dS- S- S- S- S-_h S- S- S- S- S-r   