
    (ph1P              
       r   S r SSKJr  SSKrSSKJs  Jr  SSKrSSK	J
r
  SSKJrJrJrJrJrJrJr  S rS/rSS/r/ SQr/ S	Qr/ S
Qr/ SQr/ SQr/ SQr/ SQr/ SQr\\\\\\\\\\/
r " S S5      r " S S5      r  " S S5      r! " S S5      r" " S S5      r# " S S5      r$ " S S5      r% " S S5      r&g) zTests for polynomial module.

    )reduceN)deepcopy)assert_almost_equalassert_raisesassert_equalassert_assert_warnsassert_array_equalassert_raises_regexc                 ,    [         R                  " U SS9$ )Ngư>)tol)polypolytrimxs    Y/var/www/html/venv/lib/python3.13/site-packages/numpy/polynomial/tests/test_polynomial.pytrimr      s    ==%%       )r      )r   r      )r   r   ir      )r      r   ir      )r   r      r   ir       )r   ir   8   r   ir   @   )	r   r   ir      r   i r      )
r   	   r   ir   i  r   ir      c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestConstantsr   c                 <    [        [        R                  SS/5        g )Nr   r   )r   r   
polydomainselfs    r   test_polydomainTestConstants.test_polydomain"   s    T__r1g.r   c                 :    [        [        R                  S/5        g )Nr   )r   r   polyzeror)   s    r   test_polyzeroTestConstants.test_polyzero%   s    T]]QC(r   c                 :    [        [        R                  S/5        g Nr   )r   r   polyoner)   s    r   test_polyoneTestConstants.test_polyone(   s    T\\A3'r   c                 <    [        [        R                  SS/5        g )Nr   r   )r   r   polyxr)   s    r   
test_polyxTestConstants.test_polyx+   s    TZZ!Q(r   c                 `    [         R                  " / SQ5      n[        U5      n[        X5        g Nr   r      )r   
Polynomialr   r   r*   r   ys      r   	test_copyTestConstants.test_copy.   s!    OOI&QKQr   c                     [         R                  " / SQ5      n[        R                  " [        R                  " U5      5      n[        X5        g r;   )r   r>   pickleloadsdumpsr   r?   s      r   test_pickleTestConstants.test_pickle3   s.    OOI&LLa)Qr    N)__name__
__module____qualname____firstlineno__r+   r/   r4   r8   rA   rG   __static_attributes__rI   r   r   r&   r&       s     /)()
r   r&   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestArithmeticr   c                 X   [        S5       H  n[        S5       H  nSU SU 3n[        R                  " [        X5      S-   5      nXA==   S-  ss'   XB==   S-  ss'   [        R
                  " S/U-  S/-   S/U-  S/-   5      n[        [        U5      [        U5      US9  M     M     g Nr   At i=, j=r   r   err_msg)rangenpzerosmaxr   polyaddr   r   r*   ijmsgtgtress         r   test_polyaddTestArithmetic.test_polyadd:       qA1XaSQC(hhs1y1}-!!llA3q5A3;A<T#YS	3?  r   c                 X   [        S5       H  n[        S5       H  nSU SU 3n[        R                  " [        X5      S-   5      nXA==   S-  ss'   XB==   S-  ss'   [        R
                  " S/U-  S/-   S/U-  S/-   5      n[        [        U5      [        U5      US9  M     M     g rR   )rW   rX   rY   rZ   r   polysubr   r   r\   s         r   test_polysubTestArithmetic.test_polysubD   rd   r   c                 "   [        [        R                  " S/5      S/5        [        [        R                  " S/5      SS/5        [        SS5       H:  nS/U-  S/-   nS/US-   -  S/-   n[        [        R                  " U5      U5        M<     g )Nr   r   r   )r   r   polymulxrW   )r*   r]   serr`   s       r   test_polymulxTestArithmetic.test_polymulxN   s|    T]]A3'!-T]]A3'!Q0q!A#a%1#+C#q1u+#Cs+S1 r   c                 8   [        S5       H  n[        S5       Hy  nSU SU 3n[        R                  " X-   S-   5      nXAU-   ==   S-  ss'   [        R                  " S/U-  S/-   S/U-  S/-   5      n[        [        U5      [        U5      US9  M{     M     g rR   )rW   rX   rY   r   polymulr   r   r\   s         r   test_polymulTestArithmetic.test_polymulV   s    qA1XaSQC(hhquqy)E
a
llA3q5A3;A<T#YS	3?  r   c                 4   [        [        [        R                  S/S/5        [        R                  " S/S/5      u  p[	        X4S5        [        R                  " SS/S/5      u  p[	        X4S5        [        S5       H  n[        S5       H  nSU SU 3nS/U-  SS/-   nS/U-  SS/-   n[        R                  " Xg5      n[        R                  " X5      u  p[        R                  " [        R                  " X5      U5      n	[	        XUS	9  M     M     g )
Nr   r   r   )r   r   ))r   r   r   r   rS   rT   rU   )r   ZeroDivisionErrorr   polydivr   rW   r[   ro   )
r*   quoremr]   r^   r_   cicjr`   ra   s
             r   test_polydivTestArithmetic.test_polydiv_   s    'sQC@ <<aS)cZ(<<A,cZ- qA1XaSQC(SUaV^SUaV^ll2*<<0ll4<<#8#>Ss3  r   c           	      \   [        S5       H  n[        S5       H  nSU SU 3n[        R                  " US-   5      n[        [        R
                  U/U-  [        R                  " S/5      5      n[        R                  " XB5      n[        [        U5      [        U5      US9  M     M     g )Nr   rS   rT   r   rU   )
rW   rX   aranger   r   ro   arraypolypowr   r   )r*   r]   r^   r_   cr`   ra   s          r   test_polypowTestArithmetic.test_polypowt   s    qA1XaSQC(IIa!e$T\\A3q5"((A3-@ll1(T#YS	3?  r   rI   N)rJ   rK   rL   rM   rb   rg   rl   rp   ry   r   rN   rI   r   r   rP   rP   8   s$    @@2@4*@r   rP   c                      \ rS rSr\R
                  " / SQ5      r\R                  " S\\5      r\R                  " S\\\5      r	\R                  R                  S5      S-  S-
  r\R                  " \/ SQ5      rS rS	 rS
 rS rS rS rSrg)TestEvaluation~   )      ?g       @g      @i,j->ij
i,j,k->ijkr=   r   r   r   c                    [        [        R                  " / S/5      R                  S5        [        R
                  " SS5      n[        S5       Vs/ s H  o!U-  PM	     nn[        S5       H1  nX2   n[        R                  " US/U-  S/-   5      n[        XT5        M3     XS-  S-
  -  n[        R                  " U/ SQ5      n[        XT5        [        S5       H  nS/U-  n[        R                  " U5      n[        [        R                  " US/5      R                  U5        [        [        R                  " USS/5      R                  U5        [        [        R                  " U/ SQ5      R                  U5        M     / S	Qn[        R                  R                  / S
QUS9n[        R                  " / SQU5      n[        UR                  U5         " S S[        R                  5      n	[        R                  " / S
Q5      R                  U	5      n
[        [!        [        R                  " / SQU
5      5      U	5        g s  snf )Nr   r   r   r   r   )r   r   r   r   r=   r   r   r   )FTFr<   )mask)   r   r=   c                       \ rS rSrSrg)&TestEvaluation.test_polyval.<locals>.C   rI   N)rJ   rK   rL   rM   rN   rI   r   r   Cr      s    r   r   r   r=   r   )r   r   polyvalsizerX   linspacerW   r   rY   shapemar}   r
   r   ndarrayviewtype)r*   r   r]   r@   r`   ra   dimsr   mxr   cxs              r   test_polyvalTestEvaluation.test_polyval   s   T\\"qc*//3 KKA 8$8aT8$qA$C,,q1#a%1#+.C)  Alll1m,C% qA3q5DAa!-33T:a!Q066=a3994@  $UU[[[.jjB'388T*	

 	 XXi %%a(T"**Y34a89 %s   Ic                 	   [        [        [        R                  S/S/SS9  [	        [        R                  " / S/5      R
                  S5        [        [        R                  " / S/5      R                  S:H  5        [	        [        R                  " / S/S-  /5      R
                  S5        [        [        R                  " / S/S-  /5      R                  S:H  5        [	        [        R                  " SS5      S5        [        [        R                  " S[        R                  " S5      5      R                  S	:H  5        [        R                  " S
S5      n[        S5       Vs/ s H  o!U-  PM	     nn[        SS5       H-  nX2   n[        R                  " US/U-  5      n[        XT5        M/     XS-
  -  US-   -  n[        R                  " U/ SQ5      n[        XT5        [        S5       H  nS/U-  n[        R                  " U5      n[	        [        R                  " US/5      R                  U5        [	        [        R                  " USS/5      R                  U5        [	        [        R                  " U/ SQ5      R                  U5        M     / SQn[        R                  " U5      n[        R                  " S
S5      n[        [        R                  " X5      [        R                  " X5      5        Sn	[        R                   " SS5      n[        R"                  R%                  SSU	S9n[        R                  " XSS9n[        R&                  " UR                  SS  5      n[        UR
                  5       H%  n
[        R                  " X   US S 2U
4   5      XJ'   M'     [	        XT5        [        R(                  " USU-  /5      n[        R                  " XSS9n[        R&                  " UR                  SS  UR                  -   5      n[        UR                  S   5       HI  n
[        UR                  S   5       H*  n[        R                  " X   US S 2U
4   5      XJUS S 24'   M,     MK     [	        XT5        g s  snf )Nr   F)tensorr   )r   r   )r   r   )r=   r=   )r=   r   )r   r   r   r=   r   r   )   r   ir   r   r   )r   T)r   
ValueErrorr   polyvalfromrootsr   r   r   r   rX   onesr   rW   r   rY   	polyrootsr   r|   randomrandintemptyvstack)r*   r   r]   r@   r`   ra   r   ptestrrshapeiijjs               r   test_polyvalfromroots$TestEvaluation.test_polyvalfromroots   s    	j$"7"7cA3u	. 	T**2s388!<%%b1#.44<= 	T**2ay9>>B%%bA37)4::fDE 	T**1a0!4%%a9??4GH KKA 8$8aT8$q!A$C''A3q51C)  QiQ##Az2C% qA3q5DA..q1#6<<dC..q1a&9??F..q)<BBDI  $NN5!KKADLL2 11!7	9
 IIb!IIb!&1##A7hhqwwqr{#/B++AE1QU8<CG "S IIq!A#h##A6hhqwwqr{QWW,-
#BAGGAJ'!%!6!6qua2h!GAI ( $ 	SU %s   $Rc           	         U R                   u  pnU R                  u  pEn[        [        S[        R
                  XS S U R                  5        XE-  n[        R
                  " XU R                  5      n[        X5        [        R                  " S5      n	[        R
                  " XU R                  5      n[        UR                  S:H  5        g Nincompatibler   r   r=   )r   r@   r   r   r   	polyval2dc2dr   rX   r   r   r   
r*   x1x2x3y1y2y3r`   ra   zs
             r   test_polyval2dTestEvaluation.test_polyval2d   s    VV
VV
 	J NNB2A	B ennRTXX.C% GGFOnnQ488,		V#$r   c           
         U R                   u  pnU R                  u  pEn[        [        S[        R
                  XUS S U R                  5        XE-  U-  n[        R
                  " XX0R                  5      n[        X5        [        R                  " S5      n	[        R
                  " XXR                  5      n[        UR                  S:H  5        g r   )r   r@   r   r   r   	polyval3dc3dr   rX   r   r   r   r   s
             r   test_polyval3dTestEvaluation.test_polyval3d   s    VV
VV
 	Jnnbb!fdhh	@ eBhnnRR2C% GGFOnnQ1hh/		V#$r   c                 d   U R                   u  pnU R                  u  pEn[        R                  " SXE5      n[        R
                  " XU R                  5      n[        X5        [        R                  " S5      n	[        R
                  " XU R                  5      n[        UR                  S:H  5        g )Nr   r   )r   r=   r   r=   )r   r@   rX   einsumr   
polygrid2dr   r   r   r   r   r   s
             r   test_polygrid2dTestEvaluation.test_polygrid2d  s~    VV
VV
 ii	2*oobdhh/C% GGFOooaDHH-		X%&r   c                 f   U R                   u  pnU R                  u  pEn[        R                  " SXEU5      n[        R
                  " XX0R                  5      n[        X5        [        R                  " S5      n	[        R
                  " XXR                  5      n[        UR                  S:H  5        g )Nr   r   )r   r=   r   r=   r   r=   )r   r@   rX   r   r   
polygrid3dr   r   r   r   r   r   s
             r   test_polygrid3dTestEvaluation.test_polygrid3d  s    VV
VV
 iibb1oobb((3C% GGFOooaAxx0		X%&r   rI   N)rJ   rK   rL   rM   rX   r}   c1dr   r   r   r   r   r   r   r@   r   r   r   r   r   r   rN   rI   r   r   r   r   ~   s    
((<
 C
))IsC
(C
))L#sC
0C 			 "Q&AQ%A"9H>@%$%$''r   r   c                        \ rS rSrS rS rSrg)TestIntegrali-  c                 	   [        [        [        R                  S/S5        [        [        [        R                  S/S5        [        [        [        R                  S/SSS/5        [        [        [        R                  S/S/S9  [        [        [        R                  S/S/S9  [        [        [        R                  S/SS9  [        [        5         [        R                  " SS/S5        S S S 5        [        S	S
5       H4  nS/US	-
  -  S/-   n[        R                  " S/XS9n[        USS/5        M6     [        S
5       HX  nUS-   nS/U-  S/-   nU/S/U-  -   SU-  /-   n[        R                  " USU/S9n[        [        U5      [        U5      5        MZ     [        S
5       HK  nUS-   nS/U-  S/-   n[        R                  " USU/SS9n[        [        R                  " SU5      U5        MM     [        S
5       HY  nUS-   nS/U-  S/-   nU/S/U-  -   S	U-  /-   n[        R                  " USU/S	S9n[        [        U5      [        U5      5        M[     [        S
5       H~  n[        S	S
5       Hk  nS/U-  S/-   nUS S  n[        U5       H  n[        R                  " USS9nM     [        R                  " XWS9n[        [        U5      [        U5      5        Mm     M     [        S
5       H  n[        S	S
5       H  nS/U-  S/-   nUS S  n[        U5       H  n[        R                  " USU/S9nM     [        R                  " XW[        [        U5      5      S9n[        [        U5      [        U5      5        M     M     [        S
5       H  n[        S	S
5       H  nS/U-  S/-   nUS S  n[        U5       H  n[        R                  " USU/SS9nM     [        R                  " XW[        [        U5      5      SS9n[        [        U5      [        U5      5        M     M     [        S
5       H  n[        S	S
5       H  nS/U-  S/-   nUS S  n[        U5       H  n[        R                  " USU/S	S9nM     [        R                  " XW[        [        U5      5      S	S9n[        [        U5      [        U5      5        M     M     g ! , (       d  f       GN= f)Nr         ?r   r   )lbnd)sclaxisr   r   r   )mk)r   r   r   )r   r   r   r   )r   	TypeErrorr   polyintr   r	   DeprecationWarningrW   r   r   r   list)r*   r]   r   ra   r   polr`   r^   s           r   test_polyintTestIntegral.test_polyint/  s7   isB7j$,,R8j$,,QA?j$,,1#>j$,,!=is<,-LL!Q$ . q!AQUqc!A,,sa-CaV,  qAa%C#a%1#+C#A+3'C,,saA3/CS	495  qAa%C#a%1#+C,,saA3R8CR 5q9	  qAa%C#a%1#+C#A+3'C,,saA3A6CS	495  qA1a[c!eqck!fqA,,sa0C "ll3,#DItCy9 !  qA1a[c!eqck!fqA,,saA37C "ll3tE!H~>#DItCy9 !  qA1a[c!eqck!fqA,,saA3R@C "ll3tE!H~BG#DItCy9 !  qA1a[c!eqck!fqA,,saA3A>C "ll3tE!H~1E#DItCy9 !  .-s   S
S+c           
         [         R                  R                  S5      n[         R                  " UR                   Vs/ s H  n[        R
                  " U5      PM     sn5      R                  n[        R
                  " USS9n[        XC5        [         R                  " U Vs/ s H  n[        R
                  " U5      PM     sn5      n[        R
                  " USS9n[        XC5        [         R                  " U Vs/ s H  n[        R
                  " USS9PM     sn5      n[        R
                  " USSS9n[        XC5        g s  snf s  snf s  snf )Nr=   r   r   r   r   r=   )r   )r   r   )rX   r   r   Tr   r   r   r*   r   r   r`   ra   s        r   test_polyint_axisTestIntegral.test_polyint_axis  s    iiv&ii#%%8%Qa%89;;ll3Q'C%ii#6#Qa#67ll3Q'C%iis;s!a1-s;<ll3!!,C% 9 7 <s    E# E>ErI   N)rJ   rK   rL   rM   r   r   rN   rI   r   r   r   r   -  s    N:`&r   r   c                        \ rS rSrS rS rSrg)TestDerivativei  c           
         [        [        [        R                  S/S5        [        [        [        R                  S/S5        [        S5       H@  nS/U-  S/-   n[        R                  " USS9n[        [        U5      [        U5      5        MB     [        S5       He  n[        SS5       HR  nS/U-  S/-   n[        R                  " [        R                  " X$S9US9n[        [        U5      [        U5      5        MT     Mg     [        S5       Hg  n[        SS5       HT  nS/U-  S/-   n[        R                  " [        R                  " X$SS9USS9n[        [        U5      [        U5      5        MV     Mi     g )	Nr   r   r   r   r   r   r   )r   r   )
r   r   r   polyderr   rW   r   r   r   r   )r*   r]   r`   ra   r^   s        r   test_polyderTestDerivative.test_polyder  s)   isB7j$,,R8 qA#a%1#+C,,sa(CcDI.  qA1a[c!eqckll4<<#9Q?#DItCy9 !  qA1a[c!eqckll4<<a#@A2N#DItCy9 ! r   c                    [         R                  R                  S5      n[         R                  " UR                   Vs/ s H  n[        R
                  " U5      PM     sn5      R                  n[        R
                  " USS9n[        XC5        [         R                  " U Vs/ s H  n[        R
                  " U5      PM     sn5      n[        R
                  " USS9n[        XC5        g s  snf s  snf )Nr   r   r   r   )rX   r   r   r   r   r   r   r   s        r   test_polyder_axis TestDerivative.test_polyder_axis  s    iiv&ii#%%8%Qa%89;;ll3Q'C%ii#6#Qa#67ll3Q'C% 9 7s    C+# C0rI   N)rJ   rK   rL   rM   r   r   rN   rI   r   r   r   r     s    :2
&r   r   c                   n    \ rS rSr\R
                  R                  S5      S-  S-
  rS rS rS r	S r
S	rg
)
TestVanderi  r   r   r   c                 .   [         R                  " S5      n[        R                  " US5      n[	        UR
                  S:H  5        [        S5       H2  nS/U-  S/-   n[        USU4   [        R                  " X5      5        M4     [         R                  " SS/SS/SS	//5      n[        R                  " US5      n[	        UR
                  S
:H  5        [        S5       H2  nS/U-  S/-   n[        USU4   [        R                  " X5      5        M4     g )Nr=   r   r   r   r   .r   r      )r=   r   r   )
rX   r|   r   
polyvanderr   r   rW   r   r   r}   )r*   r   vr]   coefs        r   test_polyvanderTestVander.test_polyvander  s    IIaLOOAq!6!"qA3q5A3;D#q&	4<<+@A 
 HHq!fq!fq!f-.OOAq!9$%qA3q5A3;D#q&	4<<+@A r   c                 ~   U R                   u  pn[        R                  R                  S5      n[        R                  " XSS/5      n[        R
                  " XU5      n[        R                  " XTR                  5      n[        Xv5        [        R                  " U/U/SS/5      n[        UR                  S:H  5        g )Nr   r   r   )r   r   r   )r   rX   r   r   polyvander2dr   dotflatr   r   r   r*   r   r   r   r   vanr`   ra   s           r   test_polyvander2dTestVander.test_polyvander2d  s    VV
IIV$A/nnRQ'ffS&&!C% rdQF3		Y&'r   c                    U R                   u  pn[        R                  R                  S5      n[        R                  " XU/ SQ5      n[        R
                  " XX45      n[        R                  " XTR                  5      n[        Xv5        [        R                  " U/U/U// SQ5      n[        UR                  S:H  5        g )Nr   r<   )r   r      )r   rX   r   r   polyvander3dr   r   r   r   r   r   r   s           r   test_polyvander3dTestVander.test_polyvander3d  s    VV
IIY'I6nnRR+ffS&&!C% rdRD)<		Z'(r   c                 p    [         R                  " S5      n[        [        [        R
                  US5        g )Nr=   r   )rX   r|   r   r   r   r   )r*   r   s     r   test_polyvandernegdeg TestVander.test_polyvandernegdeg  s!    IIaLj$//1b9r   rI   N)rJ   rK   rL   rM   rX   r   r   r   r  r  r
  rN   rI   r   r   r   r     s5    
		 "Q&AB"():r   r   c                   &    \ rS rSrS rS rS rSrg)TestCompanioni  c                     [        [        [        R                  / 5        [        [        [        R                  S/5        g r2   )r   r   r   polycompanionr)   s    r   test_raisesTestCompanion.test_raises  s(    j$"4"4b9j$"4"4qc:r   c                     [        SS5       H:  nS/U-  S/-   n[        [        R                  " U5      R                  X4:H  5        M<     g )Nr   r   r   )rW   r   r   r  r   )r*   r]   r   s      r   test_dimensionsTestCompanion.test_dimensions  sC    q!A3q5A3;DD&&t,22qf<= r   c                 R    [        [        R                  " SS/5      S   S:H  5        g )Nr   r   )r   r         )r   r   r  r)   s    r   test_linear_rootTestCompanion.test_linear_root  s#    ""Aq6*40C78r   rI   N)rJ   rK   rL   rM   r  r  r  rN   rI   r   r   r  r    s    ;>
9r   r  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestMisci  c           	         [         R                  " / 5      n[        [        U5      S/5        [	        SS5       H  n[
        R                  " [
        R                  " [
        R                  * SSU-  S-   5      SS S2   5      n[        U   n[         R                  " U5      SUS-
  -  -  n[        [        U5      [        U5      5        M     g )Nr   r   r   r   )
r   polyfromrootsr   r   rW   rX   cosr   piTlist)r*   ra   r]   rootsr`   s        r   test_polyfromrootsTestMisc.test_polyfromroots  s      $DIs+q!AFF2;;vq!A#':14a4@AE(C$$U+A!H4CS	495	 r   c                 r   [        [        R                  " S/5      / 5        [        [        R                  " SS/5      S/5        [        SS5       Hc  n[        R
                  " SSU5      n[        R                  " [        R                  " U5      5      n[        [        U5      [        U5      5        Me     g )Nr   r   r  r   r   )r   r   r   rW   rX   r   r  r   )r*   r]   r`   ra   s       r   test_polyrootsTestMisc.test_polyroots  s}    DNNA3/4DNNAq62SE:q!A++b!Q'C..!3!3C!89CS	495 r   c           	         S nS n[        [        [        R                  S/S/S5        [        [        [        R                  S//S/S5        [        [        [        R                  / S/S5        [        [        [        R                  S/S///S5        [        [        [        R                  SS/S/S5        [        [        [        R                  S/SS/S5        [        [        [        R                  S/S/SS//S9  [        [        [        R                  S/S/SSS/S9  [        [        [        R                  S/S/S/5        [        [        [        R                  S/S// SQ5        [        [        [        R                  S/S// 5        [
        R                  " SS5      nU" U5      n[        R                  " X4S	5      n[        [        U5      S
5        [        [        R                  " X55      U5        [        R                  " X4/ SQ5      n[        [        U5      S
5        [        [        R                  " X55      U5        [        R                  " X4S
5      n[        [        U5      S5        [        [        R                  " X65      U5        [        R                  " X4/ SQ5      n[        [        U5      S5        [        [        R                  " X65      U5        [        R                  " U[
        R                  " XD/5      R                  S	5      n[        U[
        R                  " XU/5      R                  5        [        R                  " U[
        R                  " XD/5      R                  / SQ5      n[        U[
        R                  " XU/5      R                  5        [
        R                  " U5      nUR                  5       n	SUSS S2'   SU	SS S2'   [        R                  " X9S	US9n
[        X5        [        R                  " X9/ SQUS9n
[        X5        [        R                  " U[
        R                  " X/5      R                  S	US9n[        U[
        R                  " XU/5      R                  5        [        R                  " U[
        R                  " X/5      R                  / SQUS9n[        U[
        R                  " XU/5      R                  5        / SQn[        [        R                  " X3S5      SS/5        [        [        R                  " X3SS/5      SS/5        [
        R                  " SS5      nU" U5      n[        R                  " X4S
5      n[        [        R                  " X<5      U5        [        R                  " X4/ SQ5      n[        [        R                  " X=5      U5        [        X5        g )Nc                     X S-
  -  U S-
  -  $ )Nr   r   rI   r   s    r   f TestMisc.test_polyfit.<locals>.f  s    !e9a!e$$r   c                     U S-  U S-  -   S-   $ )Nr   r   r   rI   r   s    r   f2!TestMisc.test_polyfit.<locals>.f2  s    a4!Q$;?"r   r   r   r   r   )w)r   r   r   r=   r   )r   r   r   r=   r   )r   r   r   r=   r   )r   y              ?r   y             )r   r   r   )r   r   r   polyfitr   rX   r   r   lenr   r   r}   r   
zeros_likecopy)r*   r(  r+  r   r@   coef3coef4coef2dr-  ywwcoef3wcoef2dcoef1coef2s                 r   test_polyfitTestMisc.test_polyfit  s   	%	# 	j$,,aS"=iuqc1=irA3:isqcUGQ?i1vsA>isQFA>isQCseDisQCq!fEj$,,aS2%@j$,,aS*EisQC< KK1aDQ1%SZ#DLL2A6Q<0SZ#DLL2A6Q1%SZ#DLL2A6Q?3SZ#DLL2A6a1&!1!3!3Q7FBHHe^$<$>$>?a1&!1!3!3\BFBHHe^$<$>$>?MM!VVX!$Q$14a4aQ!,F*a\Q7F*,,q"((B8"4"6"6Q?GRXXun%=%?%?@,,q"((B8"4"6"6JGRXXun%=%?%?@ DLLq1Aq6:DLL1v6A?KKAqEQ1%DLL2A6Q9-DLL2A6E)r   c                    / SQn[        [        [        R                  US5        [	        [        R                  " U5      US S 5        [	        [        R                  " US5      US S 5        [	        [        R                  " US5      S/5        g )N)r   r   r   r   r   r   r   r   r   )r   r   r   r   r   )r*   r   s     r   test_polytrimTestMisc.test_polytrimT  sh     	j$--r: 	T]]4($s)4T]]4+T#2Y7T]]4+aS1r   c                 J    [        [        R                  " SS5      SS/5        g )Nr=   r   r   r   polyliner)   s    r   test_polylineTestMisc.test_polyline_  s    T]]1a(1a&1r   c                 H    [        [        R                  " SS5      S/5        g )Nr=   r   r@  r)   s    r   test_polyline_zeroTestMisc.test_polyline_zerob  s    T]]1a(1#.r   rI   N)rJ   rK   rL   rM   r!  r$  r:  r=  rB  rE  rN   rI   r   r   r  r    s"    66D*L	22/r   r  )'__doc__	functoolsr   numpyrX   numpy.polynomial.polynomial
polynomialr   rD   r1  r   numpy.testingr   r   r   r   r	   r
   r   r   T0T1T2T3T4T5T6T7T8T9r  r&   rP   r   r   r   r   r  r  rI   r   r   <module>rW     s      * *  ; ; ;
& SV#)-	RRRRR0 0C@ C@Ll' l'^`& `&F%& %&P1: 1:h9 9h/ h/r   