
    H/PhV              
          d Z ddlmZ ddlmZ ddlZddlmc mZ	 ddl
mc mZ ddlZddlmZ ddlmZmZmZmZmZmZmZ d ZdgZddgZg d	Zg d
Zg dZg dZg dZg dZ g dZ!g dZ"eeeeeeee e!e"g
Z# G d d          Z$ G d d          Z% G d d          Z& G d d          Z' G d d          Z( G d d          Z) G d d          Z* G d d           Z+ G d! d"          Z,dS )#zTests for polynomial module.

    )reduce)FractionN)deepcopy)assert_almost_equalassert_raisesassert_equalassert_assert_array_equalassert_raises_regexassert_warnsc                 .    t          j        | d          S )Ngư>)tol)polypolytrimxs    f/var/www/html/test/jupyter/venv/lib/python3.11/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                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestConstantsc                 >    t          t          j        ddg           d S )Nr   r   )r   r   
polydomainselfs    r   test_polydomainzTestConstants.test_polydomain#   s    T_r1g.....r   c                 <    t          t          j        dg           d S )Nr   )r   r   polyzeror*   s    r   test_polyzerozTestConstants.test_polyzero&   s    T]QC(((((r   c                 <    t          t          j        dg           d S Nr   )r   r   polyoner*   s    r   test_polyonezTestConstants.test_polyone)   s    T\A3'''''r   c                 >    t          t          j        ddg           d S )Nr   r   )r   r   polyxr*   s    r   
test_polyxzTestConstants.test_polyx,   s    TZ!Q(((((r   c                 p    t          j        g d          }t          |          }t          ||           d S Nr   r      )r   
Polynomialr   r   r+   r   ys      r   	test_copyzTestConstants.test_copy/   s6    OIII&&QKKQr   c                     t          j        g d          }t          j        t          j        |                    }t          ||           d S r8   )r   r;   pickleloadsdumpsr   r<   s      r   test_picklezTestConstants.test_pickle4   sB    OIII&&La))Qr   N)	__name__
__module____qualname__r,   r/   r3   r6   r>   rC    r   r   r'   r'   !   sn        / / /) ) )( ( () ) )  
    r   r'   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestArithmeticc                    t          d          D ]}t          d          D ]}d| d| }t          j        t          ||          dz             }||xx         dz  cc<   ||xx         dz  cc<   t	          j        dg|z  dgz   dg|z  dgz             }t          t          |          t          |          |           d S Nr   At i=, j=r   r   err_msg)rangenpzerosmaxr   polyaddr   r   r+   ijmsgtgtress         r   test_polyaddzTestArithmetic.test_polyadd;       q 	@ 	@A1XX @ @(a((Q((hs1ayy1}--A!A!lA3q5A3;A<<T#YYS		3?????@	@ 	@r   c                    t          d          D ]}t          d          D ]}d| d| }t          j        t          ||          dz             }||xx         dz  cc<   ||xx         dz  cc<   t	          j        dg|z  dgz   dg|z  dgz             }t          t          |          t          |          |           d S rK   )rP   rQ   rR   rS   r   polysubr   r   rU   s         r   test_polysubzTestArithmetic.test_polysubE   r\   r   c                 0   t          t          j        dg          dg           t          t          j        dg          ddg           t          dd          D ];}dg|z  dgz   }dg|dz   z  dgz   }t          t          j        |          |           <d S )Nr   r   r   )r   r   polymulxrP   )r+   rV   serrY   s       r   test_polymulxzTestArithmetic.test_polymulxO   s    T]A3''!---T]A3''!Q000q! 	2 	2A#a%1#+C#q1u+#Cs++S1111	2 	2r   c                 Z   t          d          D ]}t          d          D ]}d| d| }t          j        ||z   dz             }|||z   xx         dz  cc<   t          j        dg|z  dgz   dg|z  dgz             }t          t          |          t          |          |           d S rK   )rP   rQ   rR   r   polymulr   r   rU   s         r   test_polymulzTestArithmetic.test_polymulW   s    q 	@ 	@A1XX @ @(a((Q((hq1uqy))AE


a


lA3q5A3;A<<T#YYS		3?????@	@ 	@r   c                 P   t          t          t          j        dgdg           t          j        dgdg          \  }}t	          ||fd           t          j        ddgdg          \  }}t	          ||fd           t          d          D ]}t          d          D ]}d| d| }dg|z  ddgz   }dg|z  ddgz   }t          j        ||          }t          j        ||          \  }}t          j        t          j        ||          |          }	t	          |	||	           d S )
Nr   r   r   )r   r   ))r   r   r   r   rL   rM   rN   )r   ZeroDivisionErrorr   polydivr   rP   rT   re   )
r+   quoremrV   rW   rX   cicjrY   rZ   s
             r   test_polydivzTestArithmetic.test_polydiv`   sL   'sQC@@@ <aS))Sc3Z(((<A,,Sc3Z--- q 	4 	4A1XX 4 4(a((Q((SUaV^SUaV^l2r**<R00Sl4<R#8#8#>>S#s333334	4 	4r   c           	      r   t          d          D ]}t          d          D ]}d| d| }t          j        |dz             }t          t          j        |g|z  t          j        dg                    }t	          j        ||          }t          t          |          t          |          |           d S )Nr   rL   rM   r   rN   )
rP   rQ   aranger   r   re   arraypolypowr   r   )r+   rV   rW   rX   crY   rZ   s          r   test_polypowzTestArithmetic.test_polypowu   s    q 	@ 	@A1XX @ @(a((Q((Ia!e$$T\A3q5"(A3--@@l1a((T#YYS		3?????@	@ 	@r   N)	rD   rE   rF   r[   r_   rc   rf   rn   rt   rG   r   r   rI   rI   9   s|        @ @ @@ @ @2 2 2@ @ @4 4 4*@ @ @ @ @r   rI   c                       e Zd Zd ZdS )TestFractionc                 B   t          dd          }t          dd          }t          dd          }t          j        ||g||g||g          }d|z  |dz  z   }t          |j        t          j        t          dd          t          dd          t          d	d          gt          
                     t          |j        ||g           t          |j        j	        t
          j
                                                   t          t           ||          t                                t           ||          t          dd                     t          j        t          dd          g||g||g          }t          |                                |           d S )Nr   r:   r   r   domainwindowr   r$      r   dtype
   )r   r   r;   r   coefrQ   rq   objectry   r}   dtypesObjectDTyper	   
isinstancederiv)r+   fonezeropr   p_derivs          r   test_FractionzTestFraction.test_Fraction   sx   QNNq!nn1~~OQFD#;c{KKKEAFNQVRXxAQ'/1~~'7>DF F F 	G 	G 	GQXc{+++QV\29#8#8#:#:;;;
11Q44**+++QQqTT8B??+++/8Aq>>"2D#;*.6 6 6QWWYY(((((r   N)rD   rE   rF   r   rG   r   r   rv   rv   ~   s#        ) ) ) ) )r   rv   c                      e Zd Z ej        g d          Z ej        dee          Z ej        deee          Zej	        	                    d          dz  dz
  Z
 ej        e
g d          Zd Zd Zd	 Zd
 Zd Zd ZdS )TestEvaluation)      ?       @g      @i,j->ij
i,j,k->ijkr:   r   r   r   c                   
 t          t          j        g dg          j        d           t	          j        dd          

fdt          d          D             }t          d          D ]7}||         }t          j        
dg|z  dgz             }t          ||           8

dz  dz
  z  }t          j        
g d          }t          ||           t          d          D ]}dg|z  }t	          j        |          
t          t          j        
dg          j	        |           t          t          j        
ddg          j	        |           t          t          j        
g d	          j	        |           g d
}t          j
                            g d|          }t	          j        g d|          }t          |j        |            G d dt          j                  }t	          j        g d                              |          }	t          t!          t	          j        g d|	                    |           d S )Nr   r   r   c                     g | ]}|z  S rG   rG   .0rV   r   s     r   
<listcomp>z/TestEvaluation.test_polyval.<locals>.<listcomp>       $$$aQT$$$r   r   r   )r   r   r   r   r:   r   r   r   )FTFr9   )mask)   r   r:   c                       e Zd ZdS )&TestEvaluation.test_polyval.<locals>.CN)rD   rE   rF   rG   r   r   Cr      s        Dr   r   r   r:   r   )r   r   polyvalsizerQ   linspacerP   r   rR   shapemarq   r
   r   ndarrayviewtype)r+   r=   rV   rY   rZ   dimsr   mxr   cxr   s             @r   test_polyvalzTestEvaluation.test_polyval   sA   T\"qc**/333 KA$$$$588$$$q 	* 	*AA$C,q1#a%1#+..CS))))All1mmm,,C%%% q 	A 	AA3q5DAa!--3T:::a!Q006===a3394@@@@ $##U[[[..jB''38T***	 	 	 	 	
 	 	 	 Xiii  %%a((T"*YYY3344a88888r   c                  	   t          t          t          j        dgdgd           t	          t          j        g dg          j        d           t          t          j        g dg          j        dk               t	          t          j        g dgdz  g          j        d           t          t          j        g dgdz  g          j        dk               t	          t          j        dd          d           t          t          j        dt          j	        d                    j        d	k               t          j
        d
d          fdt          d          D             }t          dd          D ]3}||         }t          j        dg|z            }t          ||           4dz
  z  dz   z  }t          j        g d          }t          ||           t          d          D ]}dg|z  }t          j        |          t	          t          j        dg          j        |           t	          t          j        ddg          j        |           t	          t          j        g d          j        |           g d}t          j        |          }t          j
        d
d          t          t          j        |          t          j        |                     d}t          j        dd          t          j                            dd|          }t          j        |d          }t          j        |j        dd                    }t          |j                  D ]*}	t          j        |	         |d d |	f                   ||	<   +t	          ||           t          j        dz  g          t          j        |d          }t          j        |j        dd          j        z             }t          |j        d                   D ]L}	t          j        d                   D ]/}
t          j        |
         |d d |	f                   ||	|
d d f<   0Mt	          ||           d S )Nr   F)tensorr   )r   r   )r   r   )r:   r:   )r:   r   c                     g | ]}|z  S rG   rG   r   s     r   r   z8TestEvaluation.test_polyvalfromroots.<locals>.<listcomp>   r   r   )r   r   r   r:   r   r   )   r   ir   r   r   )r   T)r   
ValueErrorr   polyvalfromrootsr   r   r	   r   rQ   onesr   rP   r   rR   	polyrootsr   rp   randomrandintemptyvstack)r+   r=   rV   rY   rZ   r   ptestrrshapeiijjr   s              @r   test_polyvalfromrootsz$TestEvaluation.test_polyvalfromroots   sY    	j$"7cA3u	. 	. 	. 	. 	T*2s338!<<<%b1#..4<=== 	T*2ay99>BBB%bA37)44:fDEEE 	T*1a00!444%a99?4GHHH KA$$$$588$$$q! 	* 	*AA$C'A3q511CS))))QiQ#Azzz22C%%% q 	J 	JA3q5DA.q1#66<dCCC.q1a&99?FFF.q)))<<BDIIII $##N5!!KADLE22 1!Q77	9 	9 	9
 Ib!Ib!&11#Aq777hqwqrr{##// 	= 	=B+AbE1QQQU8<<CGGS# Iq!A#h#Aq666hqwqrr{QW,--
## 	H 	HBAGAJ'' H H!%!6qua2h!G!GBAAAIHS#r   c           	         | j         \  }}}| j        \  }}}t          t          dt          j        ||d d         | j                   ||z  }t	          j        ||| j                  }t          ||           t          j	        d          }	t	          j        |	|	| j                  }t          |j        dk               d S Nincompatibler   r   r:   )r   r=   r   r   r   	polyval2dc2dr   rQ   r   r	   r   
r+   x1x2x3y1y2y3rY   rZ   zs
             r   test_polyval2dzTestEvaluation.test_polyval2d   s    V
BV
B 	J NB2A2	B 	B 	B enRTX..C%%% GFOOnQ48,,	V#$$$$$r   c           
         | j         \  }}}| j        \  }}}t          t          dt          j        |||d d         | j                   ||z  |z  }t	          j        |||| j                  }t          ||           t          j	        d          }	t	          j        |	|	|	| j                  }t          |j        dk               d S r   )r   r=   r   r   r   	polyval3dc3dr   rQ   r   r	   r   r   s
             r   test_polyval3dzTestEvaluation.test_polyval3d  s    V
BV
B 	Jnb"b!fdh	@ 	@ 	@ eBhnRR22C%%% GFOOnQ1dh//	V#$$$$$r   c                 B   | j         \  }}}| j        \  }}}t          j        d||          }t	          j        ||| j                  }t          ||           t          j        d          }	t	          j        |	|	| j                  }t          |j
        dk               d S )Nr   r   )r   r:   r   r:   )r   r=   rQ   einsumr   
polygrid2dr   r   r   r	   r   r   s
             r   test_polygrid2dzTestEvaluation.test_polygrid2d$  s    V
BV
B i	2r**ob"dh//C%%% GFOOoaDH--	X%&&&&&r   c                 H   | j         \  }}}| j        \  }}}t          j        d|||          }t	          j        |||| j                  }t          ||           t          j        d          }	t	          j        |	|	|	| j                  }t          |j
        dk               d S )Nr   r   )r   r:   r   r:   r   r:   )r   r=   rQ   r   r   
polygrid3dr   r   r   r	   r   r   s
             r   test_polygrid3dzTestEvaluation.test_polygrid3d2  s    V
BV
B ib"b11ob"b$(33C%%% GFOOoaAtx00	X%&&&&&r   N)rD   rE   rF   rQ   rq   c1dr   r   r   r   r   r   r   r=   r   r   r   r   r   r   rG   r   r   r   r      s        
"(<<<
 
 C
")IsC
(
(C
")L#sC
0
0C 		  "Q&AQ%%A"9 "9 "9H> > >@% % %$% % %$' ' '' ' ' ' 'r   r   c                       e Zd Zd Zd ZdS )TestIntegralc                 
   t          t          t          j        dgd           t          t          t          j        dgd           t          t          t          j        dgdddg           t          t          t          j        dgdg           t          t          t          j        dgdg           t          t          t          j        dgd           t          t          t          j        ddgd           t          d	d
          D ]9}dg|d	z
  z  dgz   }t          j        dg||          }t          |ddg           :t          d
          D ]d}|dz   }dg|z  dgz   }|gdg|z  z   d|z  gz   }t          j        |d|g          }t          t          |          t          |                     et          d
          D ]M}|dz   }dg|z  dgz   }t          j        |d|gd          }t          t          j        d|          |           Nt          d
          D ]e}|dz   }dg|z  dgz   }|gdg|z  z   d	|z  gz   }t          j        |d|gd	          }t          t          |          t          |                     ft          d
          D ]}t          d	d
          D ]~}dg|z  dgz   }|d d          }t          |          D ]}t          j        |d          }t          j        ||          }t          t          |          t          |                     t          d
          D ]}t          d	d
          D ]}dg|z  dgz   }|d d          }t          |          D ]}t          j        |d|g          }t          j        ||t          t          |                              }t          t          |          t          |                     t          d
          D ]}t          d	d
          D ]}dg|z  dgz   }|d d          }t          |          D ]}t          j        |d|gd          }t          j        ||t          t          |                    d          }t          t          |          t          |                     t          d
          D ]}t          d	d
          D ]}dg|z  dgz   }|d d          }t          |          D ]}t          j        |d|gd	          }t          j        ||t          t          |                    d	          }t          t          |          t          |                     d S )Nr         ?r   r   )lbnd)sclaxisr   r   r   )mk)r   r   r   )r   r   r   r   )
r   	TypeErrorr   polyintr   rP   r   r   r   list)r+   rV   r   rZ   r   polrY   rW   s           r   test_polyintzTestIntegral.test_polyintC  s   isB777j$,R888j$,QA???j$,1#>>>>j$,!====is<<<<i1vr::: q! 	- 	-AQUqc!A,sa1---CaV,,,, q 	6 	6Aa%C#a%1#+C#A+3'C,saA3///CS		4995555 q 	: 	:Aa%C#a%1#+C,saA3R888CR 5 5q9999 q 	6 	6Aa%C#a%1#+C#A+3'C,saA3A666CS		4995555 q 	: 	:A1a[[ : :c!eqck!!!fq 1 1A,sa000CCl3!,,,#DIItCyy9999: q 	: 	:A1a[[ : :c!eqck!!!fq 8 8A,saA3777CCl3!tE!HH~~>>>#DIItCyy9999: q 	: 	:A1a[[ : :c!eqck!!!fq A AA,saA3R@@@CCl3!tE!HH~~BGGG#DIItCyy9999: q 	: 	:A1a[[ : :c!eqck!!!fq ? ?A,saA3A>>>CCl3!tE!HH~~1EEE#DIItCyy9999:	: 	:r   c                    t           j                            d          }t          j        d |j        D                       j        }t	          j        |d          }t          ||           t          j        d |D                       }t	          j        |d          }t          ||           t          j        d |D                       }t	          j        |dd	          }t          ||           d S )
Nr:   r   c                 6    g | ]}t          j        |          S rG   r   r   r   rs   s     r   r   z2TestIntegral.test_polyint_axis.<locals>.<listcomp>       888Qa888r   r   r   c                 6    g | ]}t          j        |          S rG   r   r   s     r   r   z2TestIntegral.test_polyint_axis.<locals>.<listcomp>       666Qa666r   r   c                 :    g | ]}t          j        |d           S )r:   )r   r   r   s     r   r   z2TestIntegral.test_polyint_axis.<locals>.<listcomp>  s'    ;;;!a1---;;;r   r:   )r   r   )rQ   r   r   Tr   r   r   r+   r   rY   rZ   s       r   test_polyint_axiszTestIntegral.test_polyint_axis  s    iv&&i88#%88899;l3Q'''C%%%i66#66677l3Q'''C%%%i;;s;;;<<l3!!,,,C%%%%%r   N)rD   rE   rF   r   r   rG   r   r   r   r   A  s6        M: M: M:^& & & & &r   r   c                       e Zd Zd Zd ZdS )TestDerivativec           	      V   t          t          t          j        dgd           t          t          t          j        dgd           t          d          D ]L}dg|z  dgz   }t          j        |d          }t          t          |          t          |                     Mt          d          D ]s}t          dd          D ]`}dg|z  dgz   }t          j        t          j        ||          |          }t          t          |          t          |                     att          d          D ]u}t          dd          D ]b}dg|z  dgz   }t          j        t          j        ||d          |d          }t          t          |          t          |                     cvd S )	Nr   r   r   r   r   r   r   )r   r   )
r   r   r   polyderr   rP   r   r   r   r   )r+   rV   rY   rZ   rW   s        r   test_polyderzTestDerivative.test_polyder  s   isB777j$,R888 q 	/ 	/A#a%1#+C,sa(((CcDII.... q 	: 	:A1a[[ : :c!eqckl4<q#9#9#9Q???#DIItCyy9999: q 	: 	:A1a[[ : :c!eqckl4<qa#@#@#@A2NNN#DIItCyy9999:	: 	:r   c                 h   t           j                            d          }t          j        d |j        D                       j        }t	          j        |d          }t          ||           t          j        d |D                       }t	          j        |d          }t          ||           d S )Nr   c                 6    g | ]}t          j        |          S rG   r   r   r   s     r   r   z4TestDerivative.test_polyder_axis.<locals>.<listcomp>  r   r   r   r   c                 6    g | ]}t          j        |          S rG   r   r   s     r   r   z4TestDerivative.test_polyder_axis.<locals>.<listcomp>  r   r   r   )rQ   r   r   r   r   r   r   r   s       r   test_polyder_axisz TestDerivative.test_polyder_axis  s    iv&&i88#%88899;l3Q'''C%%%i66#66677l3Q'''C%%%%%r   N)rD   rE   rF   r   r   rG   r   r   r   r     s2        : : :2
& 
& 
& 
& 
&r   r   c                   f    e Zd Zej                            d          dz  dz
  Zd Zd Zd Zd Z	dS )	
TestVanderr   r   r   c                 8   t          j        d          }t          j        |d          }t	          |j        dk               t          d          D ]7}dg|z  dgz   }t          |d|f         t          j        ||                     8t          j	        ddgddgdd	gg          }t          j        |d          }t	          |j        d
k               t          d          D ]7}dg|z  dgz   }t          |d|f         t          j        ||                     8d S )Nr:   r   r   r   r   .r   r      )r:   r   r   )
rQ   rp   r   
polyvanderr	   r   rP   r   r   rq   )r+   r   vrV   r   s        r   test_polyvanderzTestVander.test_polyvander  s)   IaLLOAq!!6!"""q 	B 	BA3q5A3;D#q&	4<4+@+@AAAA Hq!fq!fq!f-..OAq!!9$%%%q 	B 	BA3q5A3;D#q&	4<4+@+@AAAA	B 	Br   c                 n   | j         \  }}}t          j                            d          }t          j        ||ddg          }t          j        |||          }t          j        ||j                  }t          ||           t          j        |g|gddg          }t          |j
        dk               d S )Nr   r   r   )r   r   r  )r   rQ   r   r   polyvander2dr   dotflatr   r	   r   r+   r   r   r   rs   vanrY   rZ   s           r   test_polyvander2dzTestVander.test_polyvander2d  s    V
BIV$$BA//nRQ''fS!&!!C%%% rdQF33	Y&'''''r   c                 v   | j         \  }}}t          j                            d          }t          j        |||g d          }t          j        ||||          }t          j        ||j                  }t          ||           t          j        |g|g|gg d          }t          |j
        dk               d S )Nr   r9   )r   r      )r   rQ   r   r   polyvander3dr   r	  r
  r   r	   r   r  s           r   test_polyvander3dzTestVander.test_polyvander3d  s    V
BIY''BIII66nRR++fS!&!!C%%% rdRD)))<<	Z'(((((r   c                 p    t          j        d          }t          t          t          j        |d           d S )Nr:   r   )rQ   rp   r   r   r   r  )r+   r   s     r   test_polyvandernegdegz TestVander.test_polyvandernegdeg  s+    IaLLj$/1b99999r   N)
rD   rE   rF   rQ   r   r   r  r  r  r  rG   r   r   r  r    sr        
	  "Q&AB B B"( ( () ) ): : : : :r   r  c                        e Zd Zd Zd Zd ZdS )TestCompanionc                     t          t          t          j        g            t          t          t          j        dg           d S r1   )r   r   r   polycompanionr*   s    r   test_raiseszTestCompanion.test_raises  s4    j$"4b999j$"4qc:::::r   c                     t          dd          D ]8}dg|z  dgz   }t          t          j        |          j        ||fk               9d S )Nr   r   r   )rP   r	   r   r  r   )r+   rV   r   s      r   test_dimensionszTestCompanion.test_dimensions  s\    q! 	> 	>A3q5A3;DD&t,,2q!f<====	> 	>r   c                 `    t          t          j        ddg          d         dk               d S )Nr   r   )r   r         )r	   r   r  r*   s    r   test_linear_rootzTestCompanion.test_linear_root
  s/    "Aq6**40C788888r   N)rD   rE   rF   r  r  r  rG   r   r   r  r    sA        ; ; ;> > >
9 9 9 9 9r   r  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestMiscc           	         t          j        g           }t          t          |          dg           t	          dd          D ]}t          j        t          j        t
          j         dd|z  dz             dd d                   }t          |         }t          j        |          d|dz
  z  z  }t          t          |          t          |                     d S )Nr   r   r   r   )
r   polyfromrootsr   r   rP   rQ   cosr   piTlist)r+   rZ   rV   rootsrY   s        r   test_polyfromrootszTestMisc.test_polyfromroots  s     $$DIIs+++q! 	6 	6AF2;vq!A#'::14a4@AAE(C$U++A!H4CS		4995555		6 	6r   c                    t          t          j        dg          g            t          t          j        ddg          dg           t          dd          D ]h}t	          j        dd|          }t          j        t          j        |                    }t          t          |          t          |                     id S )Nr   r   r  r   r   )r   r   r   rP   rQ   r   r!  r   )r+   rV   rY   rZ   s       r   test_polyrootszTestMisc.test_polyroots  s    DNA3//444DNAq622SE:::q! 	6 	6A+b!Q''C.!3C!8!899CS		4995555	6 	6r   c           	         d }d }t          t          t          j        dgdgd           t          t          t          j        dggdgd           t          t          t          j        g dgd           t          t          t          j        dgdgggd           t          t          t          j        ddgdgd           t          t          t          j        dgddgd           t          t          t          j        dgdgddgg           t          t          t          j        dgdgdddg           t          t          t          j        dgdgdg           t          t          t          j        dgdgg d           t          t          t          j        dgdgg            t          j        dd          } ||          }t          j        ||d	          }t          t          |          d
           t          t          j
        ||          |           t          j        ||g d          }t          t          |          d
           t          t          j
        ||          |           t          j        ||d
          }t          t          |          d           t          t          j
        ||          |           t          j        ||g d          }t          t          |          d           t          t          j
        ||          |           t          j        |t          j        ||g          j        d	          }t          |t          j        ||g          j                   t          j        |t          j        ||g          j        g d          }t          |t          j        ||g          j                   t          j        |          }|                                }	d|dd d<   d|	dd d<   t          j        ||	d	|          }
t          |
|           t          j        ||	g d|          }
t          |
|           t          j        |t          j        |	|	g          j        d	|          }t          |t          j        ||g          j                   t          j        |t          j        |	|	g          j        g d|          }t          |t          j        ||g          j                   g d}t          t          j        ||d          ddg           t          t          j        ||ddg          ddg           t          j        dd          } ||          }t          j        ||d
          }t          t          j
        ||          |           t          j        ||g d          }t          t          j
        ||          |           t          ||           d S )Nc                     | | dz
  z  | dz
  z  S )Nr   r   rG   r   s    r   r   z TestMisc.test_polyfit.<locals>.f"  s    a!e9a!e$$r   c                     | dz  | dz  z   dz   S )Nr   r   r   rG   r   s    r   f2z!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   rQ   r   r   lenr   r   rq   r   
zeros_likecopy)r+   r   r,  r   r=   coef3coef4coef2dr-  ywwcoef3wcoef2dcoef1coef2s                 r   test_polyfitzTestMisc.test_polyfit!  sQ   	% 	% 	%	# 	# 	# 	j$,aS"===iuqc1===irA3:::isqcUGQ???i1vsA>>>isQFA>>>isQCseDDDDisQCq!fEEEEj$,aS2%@@@j$,aS***EEEisQC<<< K1AaDDQ1%%SZZ###DLE22A666Q<<<00SZZ###DLE22A666Q1%%SZZ###DLE22A666Q???33SZZ###DLE22A666a1a&!1!1!3Q77FBHeU^$<$<$>???a1a&!1!1!3\\\BBFBHeU^$<$<$>???M!VVXX!$Q$14a4aQ!,,,FE***a\\\Q777FE***,q"(B8"4"4"6Q???GRXuen%=%=%?@@@,q"(B8"4"4"6JJJGRXuen%=%=%?@@@ DLAq11Aq6:::DLA1v66A???KABqEEQ1%%DLE22A666Q999--DLE22A666E5)))))r   c                 B   g d}t          t          t          j        |d           t	          t          j        |          |d d                    t	          t          j        |d          |d d                    t	          t          j        |d          dg           d S )N)r   r   r   r   r   r   r   r   r   )r   r   r   r   r   )r+   r   s     r   test_polytrimzTestMisc.test_polytrimg  s    }} 	j$-r::: 	T]4(($ss)444T]4++T#2#Y777T]4++aS11111r   c                 P    t          t          j        dd          ddg           d S )Nr:   r   r   r   polyliner*   s    r   test_polylinezTestMisc.test_polyliner  s(    T]1a((1a&11111r   c                 N    t          t          j        dd          dg           d S )Nr:   r   r>  r*   s    r   test_polyline_zerozTestMisc.test_polyline_zerou  s&    T]1a((1#.....r   c                    t           j                            dgdgd          }t          |j        dg           t           j                            ddgddgd          }t          |j        dg           t          t          j                  5  t           j                            ddgddgd          }d d d            d S # 1 swxY w Y   d S )Nr   r   r   )degr   g @gffffff @)	r   r;   fitr   r   r   r   puRankWarning)r+   r   s     r   test_fit_degenerate_domainz#TestMisc.test_fit_degenerate_domainx  s   OaSa00QVbT"""OACa88AFTF+++".)) 	= 	=##QFQH!#<<A	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   'CCCc                 z   t          j        ddgt           j                  }t           j                            |||          } |d          }t          |j        t           j                   t          j        dt          j        d                    }t          |d         j        t           j                   d S )Nr   r   r|   rx   r   r   )	rQ   rq   float32
polynomialr;   r   r}   ri   float64)r+   r-  r   r  arrs        r   test_result_typezTestMisc.test_result_type  s    Hb!WBJ///M$$Qq$;;AaDDQWbj)))jBJqMM**SV\2:.....r   N)rD   rE   rF   r&  r(  r:  r<  r@  rB  rH  rN  rG   r   r   r  r    s        6 6 66 6 6D* D* D*L	2 	2 	22 2 2/ / /= = =/ / / / /r   r  )-__doc__	functoolsr   	fractionsr   numpyrQ   numpy.polynomial.polynomialrK  r   numpy.polynomial.polyutils	polyutilsrF  r@   r1  r   numpy.testingr   r   r   r	   r
   r   r   r   T0T1T2T3T4T5T6T7T8T9r$  r'   rI   rv   r   r   r   r  r  r  rG   r   r   <module>ra     s                    * * * * * * * * * ' ' ' ' ' ' ' ' '       ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
& & & SVZZ]]###)))---	RRRRR0       0C@ C@ C@ C@ C@ C@ C@ C@J) ) ) ) ) ) ) )(l' l' l' l' l' l' l' l'^_& _& _& _& _& _& _& _&D%& %& %& %& %& %& %& %&P1: 1: 1: 1: 1: 1: 1: 1:h9 9 9 9 9 9 9 9y/ y/ y/ y/ y/ y/ y/ y/ y/ y/r   