
    Ng1P              
          d Z ddlmZ ddl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&dS ) zTests for polynomial module.

    )reduceN)deepcopy)assert_almost_equalassert_raisesassert_equalassert_assert_warnsassert_array_equalassert_raises_regexc                 .    t          j        | d          S )Ngư>)tol)polypolytrimxs    b/var/www/html/ai-engine/env/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 r7   )r   r:   pickleloadsdumpsr   r;   s      r   test_picklezTestConstants.test_pickle3   sB    OIII&&La))Qr   N)	__name__
__module____qualname__r+   r.   r2   r5   r=   rB    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 rJ   )rO   rP   rQ   rR   r   polysubr   r   rT   s         r   test_polysubzTestArithmetic.test_polysubD   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   polymulxrO   )r*   rU   serrX   s       r   test_polymulxzTestArithmetic.test_polymulxN   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 rJ   )rO   rP   rQ   r   polymulr   r   rT   s         r   test_polymulzTestArithmetic.test_polymulV   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   rK   rL   rM   )r   ZeroDivisionErrorr   polydivr   rO   rS   rd   )
r*   quoremrU   rV   rW   cicjrX   rY   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   rK   rL   r   rM   )
rO   rP   aranger   r   rd   arraypolypowr   r   )r*   rU   rV   rW   crX   rY   s          r   test_polypowzTestArithmetic.test_polypowt   s    q 	@ 	@A1XX @ @(a((Q((Ia!e$$T\A3q5"(A3--@@l1a((T#YYS		3?????@	@ 	@r   N)	rC   rD   rE   rZ   r^   rb   re   rm   rs   rF   r   r   rH   rH   8   s|        @ @ @@ @ @2 2 2@ @ @4 4 4*@ @ @ @ @r   rH   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       @g      @i,j->ij
i,j,k->ijkr9   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 rF   rF   .0rU   r   s     r   
<listcomp>z/TestEvaluation.test_polyval.<locals>.<listcomp>       $$$aQT$$$r   r   r   )r   r   r   r   r9   r   r   r   )FTFr8   )mask)   r   r9   c                       e Zd ZdS )&TestEvaluation.test_polyval.<locals>.CN)rC   rD   rE   rF   r   r   Cr      s        Dr   r   r   r9   r   )r   r   polyvalsizerP   linspacerO   r   rQ   shapemarp   r
   r   ndarrayviewtype)r*   r<   rU   rX   rY   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   )r9   r9   )r9   r   c                     g | ]}|z  S rF   rF   r|   s     r   r~   z8TestEvaluation.test_polyvalfromroots.<locals>.<listcomp>   r   r   )r   r   r   r9   r   r   )   r   ir   ry   r   )r   T)r   
ValueErrorr   polyvalfromrootsr   r   r   r   rP   onesr   rO   r   rQ   	polyrootsr   ro   randomrandintemptyvstack)r*   r<   rU   rX   rY   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   r9   )r   r<   r   r   r   	polyval2dc2dr   rP   r   r   r   
r*   x1x2x3y1y2y3rX   rY   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   rP   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 )Nrw   r   )r   r9   r   r9   )r   r<   rP   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 )Nrx   r   )r   r9   r   r9   r   r9   )r   r<   rP   r   r   
polygrid3dr   r   r   r   r   r   s
             r   test_polygrid3dzTestEvaluation.test_polygrid3d  s    V
BV
B ib"b11ob"b$(33C%%% GFOOoaAtx00	X%&&&&&r   N)rC   rD   rE   rP   rp   c1dr   r   r   r   r   r   r   r<   r   r   r   r   r   r   rF   r   r   ru   ru   ~   s        
"(<<<
 
 C
")IsC
(
(C
")L#sC
0
0C 		  "Q&AQ%%A"9 "9 "9H> > >@% % %$% % %$' ' '' ' ' ' 'r   ru   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                    5  t          j        ddgd           d d d            n# 1 swxY w Y   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axisrv   r   r   )mk)r   r   r   )r   r   r   r   )r   	TypeErrorr   polyintr   r	   DeprecationWarningrO   r   r   r   list)r*   rU   r   rY   r   polrX   rV   s           r   test_polyintzTestIntegral.test_polyint/  s   isB777j$,R888j$,QA???j$,1#>>>>j$,!====is<<<<,-- 	% 	%L!Q$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 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:	: 	:s   )DDD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r9   r   c                 6    g | ]}t          j        |          S rF   r   r   r}   rr   s     r   r~   z2TestIntegral.test_polyint_axis.<locals>.<listcomp>       888Qa888r   r   r   c                 6    g | ]}t          j        |          S rF   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 )r9   )r   r   r   s     r   r~   z2TestIntegral.test_polyint_axis.<locals>.<listcomp>  s'    ;;;!a1---;;;r   r9   )r   r   )rP   r   r   Tr   r   r   r*   r   rX   rY   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)rC   rD   rE   r   r   rF   r   r   r   r   -  s6        N: N: N:`& & & & &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   rO   r   r   r   r   )r*   rU   rX   rY   rV   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 rF   r   r   r   s     r   r~   z4TestDerivative.test_polyder_axis.<locals>.<listcomp>  r   r   r   r   c                 6    g | ]}t          j        |          S rF   r   r   s     r   r~   z4TestDerivative.test_polyder_axis.<locals>.<listcomp>  r   r   r   )rP   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)rC   rD   rE   r   r   rF   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 )	
TestVanderry   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 )Nr9   r   r   r   r   .r   r      )r9   r   r   )
rP   ro   r   
polyvanderr   r   rO   r   r   rp   )r*   r   vrU   coefs        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   rP   r   r   polyvander2dr   dotflatr   r   r   r*   r   r   r   rr   vanrX   rY   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   r8   )r   r      )r   rP   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 )Nr9   r   )rP   ro   r   r   r   r   )r*   r   s     r   test_polyvandernegdegz TestVander.test_polyvandernegdeg  s+    IaLLj$/1b99999r   N)
rC   rD   rE   rP   r   r   r   r   r   r   rF   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 r0   )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   )rO   r   r   r  r   )r*   rU   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)rC   rD   rE   r  r  r  rF   r   r   r   r     sA        ; ; ;> > >
9 9 9 9 9r   r   c                   2    e 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   rO   rP   cosr   piTlist)r*   rY   rU   rootsrX   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   rO   rP   r   r  r   )r*   rU   rX   rY   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   rF   r   s    r   fz TestMisc.test_polyfit.<locals>.f  s    a!e9a!e$$r   c                     | dz  | dz  z   dz   S )Nr   r   r   rF   r   s    r   f2z!TestMisc.test_polyfit.<locals>.f2  s    a4!Q$;?"r   r   r   r   r   )w)r   r   r   r9   r   )r   r   r   r9   r   )r   r   r   r9   r   )r   y              ?r   y             )r   r   r   )r   r   r   polyfitr   rP   r   r   lenr   r   rp   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_polytrimT  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 )Nr9   r   r   r   polyliner)   s    r   test_polylinezTestMisc.test_polyline_  s(    T]1a((1a&11111r   c                 N    t          t          j        dd          dg           d S )Nr9   r   r)  r)   s    r   test_polyline_zerozTestMisc.test_polyline_zerob  s&    T]1a((1#.....r   N)	rC   rD   rE   r  r  r%  r'  r+  r-  rF   r   r   r	  r	    sr        6 6 66 6 6D* D* D*L	2 	2 	22 2 2/ / / / /r   r	  )'__doc__	functoolsr   numpyrP   numpy.polynomial.polynomial
polynomialr   r?   r  r   numpy.testingr   r   r   r   r	   r
   r   r   T0T1T2T3T4T5T6T7T8T9r  r&   rH   ru   r   r   r   r   r	  rF   r   r   <module>r>     s              * * * * * * * * *       ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
& & & SVZZ]]###)))---	RRRRR0       0C@ C@ C@ C@ C@ C@ C@ C@Ll' l' l' l' l' l' l' l'^`& `& `& `& `& `& `& `&F%& %& %& %& %& %& %& %&P1: 1: 1: 1: 1: 1: 1: 1:h9 9 9 9 9 9 9 9h/ h/ h/ h/ h/ h/ h/ h/ h/ h/r   