
    CwgU              
          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,y)#zTests for polynomial module.

    )reduce)FractionN)deepcopy)assert_almost_equalassert_raisesassert_equalassert_assert_array_equalassert_raises_regexassert_warnsc                 0    t        j                  | d      S )Ngư>)tol)polypolytrimxs    ]/var/www/horilla/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 r8   )r   r;   pickleloadsdumpsr   r<   s      r   test_picklezTestConstants.test_pickle4   s0    OOI&LLa)Qr   N)	__name__
__module____qualname__r,   r/   r3   r6   r>   rC    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 rK   )rP   rQ   rR   rS   r   polysubr   r   rU   s         r   test_polysubzTestArithmetic.test_polysubE   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   polymulxrP   )r+   rV   serrY   s       r   test_polymulxzTestArithmetic.test_polymulxO   s    T]]A3'!-T]]A3'!Q0q! 	2A#a%1#+C#q1u+#Cs+S1	2r   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 rK   )rP   rQ   rR   r   polymulr   r   rU   s         r   test_polymulzTestArithmetic.test_polymulW   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   rL   rM   rN   )r   ZeroDivisionErrorr   polydivr   rP   rT   re   )
r+   quoremrV   rW   rX   cicjrY   rZ   s
             r   test_polydivzTestArithmetic.test_polydiv`   s   'sQC@ <<aS)Sc3Z(<<A,Sc3Z- q 	4A1X 4aSQC(SUaV^SUaV^ll2r*<<R0Sll4<<R#8#>S#s34	4r   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   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1X @aSQC(IIa!e$T\\A3q5"((A3-@ll1a(T#YS	3?@	@r   N)	rD   rE   rF   r[   r_   rc   rf   rn   rt   rG   r   r   rI   rI   9   s$    @@2@4*@r   rI   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   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   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)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                  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      @i,j->ij
i,j,k->ijkr:   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   r:   r   r   r   )FTFr9   )mask)   r   r:   c                       e Zd Zy)&TestEvaluation.test_polyval.<locals>.CN)rD   rE   rF   rG   r   r   Cr      s    r   r   r   r:   r   )r   r   polyvalsizerQ   linspacerP   r   rR   shapemarq   r
   r   ndarrayviewtype)r+   r   rV   r=   rY   rZ   dimsr   mxr   cxs              r   test_polyvalzTestEvaluation.test_polyval   s   T\\"qc*//3 KKA 8$aQT$$q 	*AA$C,,q1#a%1#+.CS)	* Alll1m,C% q 	AA3q5DAa!-33T:a!Q066=a3994@	A $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   )r:   r:   )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   r=   rY   rZ   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$aQT$$q! 	*AA$C''A3q51CS)	* QiQ##Az2C% q 	JA3q5DA..q1#6<<dC..q1a&9??F..q)<BBDI	J $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,-
# 	HBAGGAJ' H!%!6!6qua2h!GBAIH	H 	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   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    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   rQ   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   r:   r   r:   )r   r=   rQ   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   r:   r   r:   r   r:   )r   r=   rQ   r   r   
polygrid3dr   r   r   r	   r   r   s
             r   test_polygrid3dzTestEvaluation.test_polygrid3d2  s    VV
BVV
B iib"b1oob"b$((3C% GGFOooaAtxx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
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   rP   r   r   r   list)r+   rV   r   rZ   r   polrY   rW   s           r   test_polyintzTestIntegral.test_polyintC  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 	6Aa%C#a%1#+C#A+3'C,,saA3/CS	495	6 q 	:Aa%C#a%1#+C,,saA3R8CR 5q9		: q 	6Aa%C#a%1#+C#A+3'C,,saA3A6CS	495	6 q 	:A1a[ :c!eqck!fq 1A,,sa0C1ll3!,#DItCy9:	: q 	:A1a[ :c!eqck!fq 8A,,saA37C8ll3!tE!H~>#DItCy9:	: q 	:A1a[ :c!eqck!fq AA,,saA3R@CA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r:   r   r   r   r   r:   )r   )r   r   )rQ   r   r   Tr   r   r   r+   r   rs   rY   rZ   s        r   test_polyint_axiszTestIntegral.test_polyint_axis  s    iiv&ii#%%8Qa89;;ll3Q'C%ii#6Qa67ll3Q'C%iis;!a1-;<ll3!!,C% 9 7 <s   E E9EN)rD   rE   rF   r   r   rG   r   r   r   r   A  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   rP   r   r   r   r   )r+   rV   rY   rZ   rW   s        r   test_polyderzTestDerivative.test_polyder  sF   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   )rQ   r   r   r   r   r   r   r   s        r   test_polyder_axisz TestDerivative.test_polyder_axis  s    iiv&ii#%%8Qa89;;ll3Q'C%ii#6Qa67ll3Q'C% 9 7s   C' C,N)rD   rE   rF   r   r   rG   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 )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    IIaLOOAq!6!"q 	BA3q5A3;D#q&	4<<4+@A	B
 HHq!fq!fq!f-.OOAq!9$%q 	BA3q5A3;D#q&	4<<4+@A	B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   rQ   r   r   polyvander2dr   dotflatr   r	   r   r+   r   r   r   rs   vanrY   rZ   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   r9   )r   r      )r   rQ   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 )Nr:   r   )rQ   rp   r   r   r   r   )r+   r   s     r   test_polyvandernegdegz TestVander.test_polyvandernegdeg  s!    IIaLj$//1b9r   N)
rD   rE   rF   rQ   r   r   r   r   r  r  rG   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 r1   )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   )rP   r	   r   r  r   )r+   rV   r   s      r   test_dimensionszTestCompanion.test_dimensions  sJ    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)rD   rE   rF   r  r
  r  rG   r   r   r  r    s    ;>
9r   r  c                   <    e Zd Zd 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   rP   rQ   cosr   piTlist)r+   rZ   rV   rootsrY   s        r   test_polyfromrootszTestMisc.test_polyfromroots  s      $DIs+q! 	6AFF2;;vq!A#':14a4@AE(C$$U+A!H4CS	495		6r   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   rP   rQ   r   r  r   )r+   rV   rY   rZ   s       r   test_polyrootszTestMisc.test_polyroots  s    DNNA3/4DNNAq62SE:q! 	6A++b!Q'C..!3!3C!89CS	495	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                  |      }|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   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!  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_polytrimg  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 )Nr:   r   r   r   polyliner*   s    r   test_polylinezTestMisc.test_polyliner  s    T]]1a(1a&1r   c                 F    t        t        j                  dd      dg       y )Nr:   r   r.  r*   s    r   test_polyline_zerozTestMisc.test_polyline_zerou  s    T]]1a(1#.r   c                    t         j                  j                  dgdgd      }t        |j                  dg       t         j                  j                  ddgddgd      }t        |j                  dg       t        t        j                        5  t         j                  j                  ddgddgd      }d d d        y # 1 sw Y   y xY w)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    OOaSa0QVVbT"OOACa8AFFTF+"..) 	=##QFQH!#<A	= 	= 	=s   'CCc                    t        j                  ddgt         j                        }t         j                  j	                  |||      } |d      }t        |j                  t         j                         t        j                  dt        j                  d            }t        |d   j                  t         j                         y )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~    HHb!WBJJ/MM$$Qq$;aDQWWbjj)jjBJJqM*SV\\2::.r   N)rD   rE   rF   r  r  r*  r,  r0  r2  r8  r>  rG   r   r   r  r    s,    66D*L	22/=/r   r  )-__doc__	functoolsr   	fractionsr   numpyrQ   numpy.polynomial.polynomialr;  r   numpy.polynomial.polyutils	polyutilsr6  r@   r!  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>rQ     s       * * ' '  ; ; ;
& SV#)-	RRRRR0 0C@ C@J) )(l' l'^_& _&D%& %&P1: 1:h9 9y/ y/r   