
    qKgaS              
          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
Z
ddlmZ ddl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(y)#zTests for polynomial module.

    )reduce)FractionN)deepcopy)assert_almost_equalassert_raisesassert_equalassert_assert_array_equalassert_raises_regexc                 0    t        j                  | d      S )Ngư>)tol)polypolytrimxs    j/home/alanp/www/video.onchill/myenv/lib/python3.12/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                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestConstantsc                 <    t        t        j                  ddg       y )Nr   r   )r   r   
polydomainselfs    r   test_polydomainzTestConstants.test_polydomain"   s    T__r1g.r   c                 :    t        t        j                  dg       y )Nr   )r   r   polyzeror)   s    r   test_polyzerozTestConstants.test_polyzero%   s    T]]QC(r   c                 :    t        t        j                  dg       y Nr   )r   r   polyoner)   s    r   test_polyonezTestConstants.test_polyone(   s    T\\A3'r   c                 <    t        t        j                  ddg       y )Nr   r   )r   r   polyxr)   s    r   
test_polyxzTestConstants.test_polyx+   s    TZZ!Q(r   c                 `    t        j                  g d      }t        |      }t        ||       y Nr   r      )r   
Polynomialr   r   r*   r   ys      r   	test_copyzTestConstants.test_copy.   s#    OOI&QKQr   c                     t        j                  g d      }t        j                  t        j                  |            }t        ||       y r7   )r   r:   pickleloadsdumpsr   r;   s      r   test_picklezTestConstants.test_pickle3   s0    OOI&LLa)Qr   N)	__name__
__module____qualname__r+   r.   r2   r5   r=   rB    r   r   r&   r&       s     /)()
r   r&   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestArithmeticc                 X   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        |      |         y 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1XaSQC(hhs1ay1}-A!A!llA3q5A3;A<T#YS	3?  r   c                 X   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        |      |         y rJ   )rO   rP   rQ   rR   r   polysubr   r   rT   s         r   test_polysubzTestArithmetic.test_polysubD   r[   r   c                    t        t        j                  dg      dg       t        t        j                  dg      ddg       t        dd      D ]8  }dg|z  dgz   }dg|dz   z  dgz   }t        t        j                  |      |       : y )Nr   r   r   )r   r   polymulxrO   )r*   rU   serrX   s       r   test_polymulxzTestArithmetic.test_polymulxN   s|    T]]A3'!-T]]A3'!Q0q!A#a%1#+C#q1u+#Cs+S1 r   c                 6   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        |      |       }  y rJ   )rO   rP   rQ   r   polymulr   r   rT   s         r   test_polymulzTestArithmetic.test_polymulV   s    qA1XaSQC(hhq1uqy)AE
a
llA3q5A3;A<T#YS	3?  r   c                 8   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	        |	||	         y )
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_   s
   'sQC@ <<aS)Sc3Z(<<A,Sc3Z- qA1XaSQC(SUaV^SUaV^ll2r*<<R0Sll4<<R#8#>S#s3  r   c           	      V   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        |      |         y )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1XaSQC(IIa!e$T\\A3q5"((A3-@ll1a(T#YS	3?  r   N)	rC   rD   rE   rZ   r^   rb   re   rm   rs   rF   r   r   rH   rH   8   s$    @@2@4*@r   rH   c                       e Zd Zd Zy)TestFractionc                    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                  j                                t        t         ||      t                      t         ||      t        dd             t        j                  t        dd      g||g||g      }t        |j                         |       y )Nr   r9   r   r   )domainwindowr   r#      r   )dtype
   )r   r   r:   r   coefrP   rp   objectrw   rz   dtypesObjectDTyper	   
isinstancederiv)r*   fonezeropr   p_derivs          r   test_FractionzTestFraction.test_Fraction   s   QNq!n1~OOQFD#;c{KEAFNQVVRXXxAQ'/1~'7>DF 	GQXXc{+QVV\\299#8#8#:;
1Q4*+QqT8B?+//8Aq>"2D#;*.6QWWY(r   N)rC   rD   rE   r   rF   r   r   ru   ru   }   s    )r   ru   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                  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y)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      }t        d      D cg c]  }||z  	 }}t        d      D ]1  }||   }t        j                  |dg|z  dgz         }t        ||       3 ||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                  j                  g d
|      }t	        j                  g d|      }t        |j                  |        G d dt        j                        }	t	        j                  g d
      j                  |	      }
t        t!        t	        j                  g d|
            |	       y c c}w )Nr   r   r   r   r   )r   r   r   r   r9   r   r   r   )FTFr8   )mask)   r   r9   c                       e Zd Zy)&TestEvaluation.test_polyval.<locals>.CN)rC   rD   rE   rF   r   r   Cr      s    r   r   r   r9   r   )r   r   polyvalsizerP   linspacerO   r   rQ   shapemarp   r
   r   ndarrayviewtype)r*   r   rU   r<   rX   rY   dimsr   mxr   cxs              r   test_polyvalzTestEvaluation.test_polyval   s   T\\"qc*//3 KKA 8$8aQT8$qAA$C,,q1#a%1#+.CS)  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   H9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      }t        d      D cg c]  }||z  	 }}t        dd      D ]-  }||   }t        j                  |dg|z        }t        ||       / ||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"                  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 ]G  }
t        |j                  d         D ]*  }t        j                  ||   |d d |
f         ||
|d d f<   , I t	        ||       y c c}w )Nr   F)tensorr   )r   r   )r   r   )r9   r9   )r9   r   )r   r   r   r9   r   r   )   r   ir   r   r   )r   T)r   
ValueErrorr   polyvalfromrootsr   r   r	   r   rP   onesr   rO   r   rQ   	polyrootsr   ro   randomrandintemptyvstack)r*   r   rU   r<   rX   rY   r   ptestrrshapeiijjs               r   test_polyvalfromrootsz$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$8aQT8$q!AA$C''A3q51CS)  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E2 11!Q7	9
 IIb!IIb!&1##Aq7hhqwwqr{#/B++AbE1QU8<CG "S# IIq!A#h##Aq6hhqwwqr{QWW,-
#BAGGAJ'!%!6!6qua2h!GBAI ( $ 	S#U %s   Q9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(         y 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    VV
BVV
B 	J NNB2A	B ennRTXX.C% GGFOnnQ488,		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(         y r   )r   r<   r   r   r   	polyval3dc3dr   rP   r   r	   r   r   s
             r   test_polyval3dzTestEvaluation.test_polyval3d  s    VV
BVV
B 	Jnnb"b!fdhh	@ eBhnnRR2C% GGFOnnQ1dhh/		V#$r   c                 h   | j                   \  }}}| j                  \  }}}t        j                  d||      }t	        j
                  ||| j                        }t        ||       t        j                  d      }	t	        j
                  |	|	| j                        }t        |j                  dk(         y )Nr   r   )r   r9   r   r9   )r   r<   rP   einsumr   
polygrid2dr   r   r   r	   r   r   s
             r   test_polygrid2dzTestEvaluation.test_polygrid2d#  s    VV
BVV
B ii	2r*oob"dhh/C% GGFOooaDHH-		X%&r   c                 n   | j                   \  }}}| j                  \  }}}t        j                  d|||      }t	        j
                  |||| j                        }t        ||       t        j                  d      }	t	        j
                  |	|	|	| j                        }t        |j                  dk(         y )Nr   r   )r   r9   r   r9   r   r9   )r   r<   rP   r   r   
polygrid3dr   r   r   r	   r   r   s
             r   test_polygrid3dzTestEvaluation.test_polygrid3d1  s    VV
BVV
B iib"b1oob"b$((3C% GGFOooaAtxx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   r   r      s    
"((<
 C
"))IsC
(C
"))L#sC
0C 			 "Q&AQ%A"9H>@%$%$''r   r   c                       e Zd Zd Zd Zy)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 ]6  }dg|d	z
  z  dgz   }t        j                  dg||      }t        |ddg       8 t        d
      D ]Y  }|dz   }dg|z  dgz   }|gdg|z  z   d|z  gz   }t        j                  |d|g      }t        t        |      t        |             [ t        d
      D ]K  }|dz   }dg|z  dgz   }t        j                  |d|gd      }t        t        j                  d|      |       M t        d
      D ]Z  }|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        |             \ t        d
      D ]~  }t        d	d
      D ]m  }dg|z  dgz   }|d d  }t        |      D ]  }t        j                  |d      } t        j                  ||      }t        t        |      t        |             o  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        |               y )Nr         ?r   r   )lbnd)sclaxisr   r   r   )mk)r   r   r   )r   r   r   r   )
r   	TypeErrorr   polyintr   rO   r   r   r   list)r*   rU   r   rY   r   polrX   rV   s           r   test_polyintzTestIntegral.test_polyintB  s-   isB7j$,,R8j$,,QA?j$,,1#>j$,,!=is<i1vr: q!AQUqc!A,,sa1-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 "ll3!tE!H~>#DItCy9 !  qA1a[c!eqck!fqA,,saA3R@C "ll3!tE!H~BG#DItCy9 !  qA1a[c!eqck!fqA,,saA3A>C "ll3!tE!H~1E#DItCy9 ! r   c           	         t         j                  j                  d      }t        j                  |j                  D cg c]  }t	        j
                  |       c}      j                  }t	        j
                  |d      }t        ||       t        j                  |D cg c]  }t	        j
                  |       c}      }t	        j
                  |d      }t        ||       t        j                  |D cg c]  }t	        j
                  |d       c}      }t	        j
                  |dd      }t        ||       y c c}w c c}w c c}w )Nr9   r   r   r   r   r9   )r   )r   r   )rP   r   r   Tr   r   r   r*   r   rr   rX   rY   s        r   test_polyint_axisz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9EN)rC   rD   rE   r   r   rF   r   r   r   r   @  s    M:^&r   r   c                       e Zd Zd Zd Zy)TestDerivativec           	         t        t        t        j                  dgd       t        t        t        j                  dgd       t        d      D ]A  }dg|z  dgz   }t        j                  |d      }t        t        |      t        |             C t        d      D ]g  }t        dd      D ]V  }dg|z  dgz   }t        j                  t        j                  ||      |      }t        t        |      t        |             X i t        d      D ]i  }t        dd      D ]X  }dg|z  dgz   }t        j                  t        j                  ||d      |d      }t        t        |      t        |             Z k y )	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j$,,R8 qA#a%1#+C,,sa(CcDI.  qA1a[c!eqckll4<<q#9Q?#DItCy9 !  qA1a[c!eqckll4<<qa#@A2N#DItCy9 ! r   c                    t         j                  j                  d      }t        j                  |j                  D cg c]  }t	        j
                  |       c}      j                  }t	        j
                  |d      }t        ||       t        j                  |D cg c]  }t	        j
                  |       c}      }t	        j
                  |d      }t        ||       y c c}w c c}w )Nr   r   r   r   )rP   r   r   r   r   r   r   r   s        r   test_polyder_axisz 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' C,N)rC   rD   rE   r   r   rF   r   r   r   r     s    :2
&r   r   c                   f    e Zd Zej                  j	                  d      dz  dz
  Zd Zd Zd Zd Z	y)	
TestVanderr   r   r   c                    t        j                  d      }t        j                  |d      }t	        |j
                  dk(         t        d      D ]1  }dg|z  dgz   }t        |d|f   t        j                  ||             3 t        j                  ddgddgdd	gg      }t        j                  |d      }t	        |j
                  d
k(         t        d      D ]1  }dg|z  dgz   }t        |d|f   t        j                  ||             3 y )Nr9   r   r   r   r   .r   r      )r9   r   r   )
rP   ro   r   
polyvanderr	   r   rO   r   r   rp   )r*   r   vrU   r|   s        r   test_polyvanderzTestVander.test_polyvander  s    IIaLOOAq!6!"qA3q5A3;D#q&	4<<4+@A 
 HHq!fq!fq!f-.OOAq!9$%qA3q5A3;D#q&	4<<4+@A r   c                    | j                   \  }}}t        j                  j                  d      }t        j                  ||ddg      }t        j
                  |||      }t        j                  ||j                        }t        ||       t        j                  |g|gddg      }t        |j                  dk(         y )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    VV
BIIV$BA/nnRQ'ffS!&&!C% rdQF3		Y&'r   c                    | j                   \  }}}t        j                  j                  d      }t        j                  |||g d      }t        j
                  ||||      }t        j                  ||j                        }t        ||       t        j                  |g|g|gg d      }t        |j                  dk(         y )Nr   r8   )r   r      )r   rP   r   r   polyvander3dr   r   r   r   r	   r   r   s           r   test_polyvander3dzTestVander.test_polyvander3d  s    VV
BIIY'BI6nnRR+ffS!&&!C% rdRD)<		Z'(r   c                 n    t        j                  d      }t        t        t        j
                  |d       y )Nr9   r   )rP   ro   r   r   r   r   )r*   r   s     r   test_polyvandernegdegz TestVander.test_polyvandernegdeg  s!    IIaLj$//1b9r   N)
rC   rD   rE   rP   r   r   r   r   r   r   rF   r   r   r   r     s5    
		 "Q&AB"():r   r   c                       e Zd Zd Zd Zd Zy)TestCompanionc                     t        t        t        j                  g        t        t        t        j                  dg       y r0   )r   r   r   polycompanionr)   s    r   test_raiseszTestCompanion.test_raises   s(    j$"4"4b9j$"4"4qc:r   c                     t        dd      D ]9  }dg|z  dgz   }t        t        j                  |      j                  ||fk(         ; y )Nr   r   r   )rO   r	   r   r  r   )r*   rU   r|   s      r   test_dimensionszTestCompanion.test_dimensions  sE    q!A3q5A3;DD&&t,22q!f<= r   c                 P    t        t        j                  ddg      d   dk(         y )Nr   r   )r   r         )r	   r   r  r)   s    r   test_linear_rootzTestCompanion.test_linear_root	  s#    ""Aq6*40C78r   N)rC   rD   rE   r  r  r	  rF   r   r   r  r    s    ;>
9r   r  c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)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        |              y )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Is+q!AFF2;;vq!A#':14a4@AE(C$$U+A!H4CS	495	 r   c                 d   t        t        j                  dg      g        t        t        j                  ddg      dg       t        dd      D ]_  }t	        j
                  dd|      }t        j                  t        j                  |            }t        t        |      t        |             a y )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}    DNNA3/4DNNAq62SE:q!A++b!Q'C..!3!3C!89CS	495 r   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                  |      }|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        ||       y )Nc                     | | dz
  z  | dz
  z  S )Nr   r   rF   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   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   sL   	%	# 	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Q1%SZ#DLLE2A6Q<0SZ#DLLE2A6Q1%SZ#DLLE2A6Q?3SZ#DLLE2A6a1a&!1!3!3Q7FBHHeU^$<$>$>?a1a&!1!3!3\BFBHHeU^$<$>$>?MM!VVX!$Q$14a4aQ!,FE*a\Q7FE*,,q"((B8"4"6"6Q?GRXXuen%=%?%?@,,q"((B8"4"6"6JGRXXuen%=%?%?@ DLLAq1Aq6:DLLA1v6A?KKAqEQ1%DLLE2A6Q9-DLLE2A6E5)r   c                    g d}t        t        t        j                  |d       t	        t        j                  |      |d d        t	        t        j                  |d      |d d        t	        t        j                  |d      dg       y )N)r   r   r   r   r   r   r   r   r   )r   r   r   r   r   )r*   r|   s     r   test_polytrimzTestMisc.test_polytrimf  sh     	j$--r: 	T]]4($s)4T]]4+T#2Y7T]]4+aS1r   c                 H    t        t        j                  dd      ddg       y )Nr9   r   r   r   polyliner)   s    r   test_polylinezTestMisc.test_polylineq  s    T]]1a(1a&1r   c                 F    t        t        j                  dd      dg       y )Nr9   r   r*  r)   s    r   test_polyline_zerozTestMisc.test_polyline_zerot  s    T]]1a(1#.r   N)	rC   rD   rE   r  r  r&  r(  r,  r.  rF   r   r   r  r    s"    66D*L	22/r   r  ))__doc__	functoolsr   	fractionsr   numpyrP   numpy.polynomial.polynomial
polynomialr   r?   r  r   numpy.testingr   r   r   r	   r
   r   r   T0T1T2T3T4T5T6T7T8T9r  r&   rH   ru   r   r   r   r   r  r  rF   r   r   <module>r@     s       * *  - -
& SV#)-	RRRRR0 0C@ C@J) )(l' l'^_& _&D%& %&P1: 1:h9 9h/ h/r   