
    qKgH                        d Z ddlZddlmZ ddlZddlZddlm	Z	m
Z
mZmZmZmZ ddlmZmZmZmZ ddlmZ e	e
eeeefZ ed eD              Z ej2                  ee      d	        Zej6                  j6                  Zd+d
ZeZeZd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d  Z4d! Z5d" Z6d# Z7d$ Z8d% Z9d& Z:d' Z;d( Z< G d) d*      Z=y),zTest inter-conversion of different polynomial classes.

This tests the convert and cast methods of all the polynomial classes.

    N)Number)
PolynomialLegendre	ChebyshevLaguerreHermiteHermiteE)assert_almost_equalassert_raisesassert_equalassert_)RankWarningc              #   4   K   | ]  }|j                     y wN)__name__).0clss     g/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numpy/polynomial/tests/test_classes.py	<genexpr>r      s     1#s   )paramsidsc                     | j                   S r   )param)requests    r   Polyr      s    ==    c                 Z   	 t        t        j                  | j                  |j                  k(               t        t        j                  | j                  |j                  k(               t        | j                  |j                         y # t        $ r d|  d| }t        |      w xY w)NzResult: z	
Target: )r   npalldomainwindowr
   coefAssertionError)p1p2msgs      r   assert_poly_almost_equalr'   &   s    "ryyBII-./ryyBII-./BGGRWW- "Jrd+S!!"s   B
B B*c                    t        j                  ddd      }t        d      }| j                  t        d      dz  z   }| j                  t        d      dz  z   } | |||      }|j                  t        d      dz  z   }|j                  t        d      dz  z   }|j                  |||      }	t        |	j                  |       t        |	j                  |       t         |	|       ||             y )	Nr      
               ?r    r!   )kindr    r!   )r   linspacerandomr    r!   convertr
   
Poly1Poly2xr"   d1w1r$   d2w2r%   s
             r   test_conversionr=   8   s    
Aq"A$<D	tS(	(B	tS(	(B	tBr	*B	tS(	(B	tS(	(B	r"	5B		2&		2&1r!u%r   c                    t        j                  ddd      }t        d      }| j                  t        d      dz  z   }| j                  t        d      dz  z   } | |||      }|j                  t        d      dz  z   }|j                  t        d      dz  z   }|j                  |||      }	t        |	j                  |       t        |	j                  |       t         |	|       ||             y )Nr   r)   r*   r+   r-   r/   r0   )r   r2   r3   r    r!   castr
   r5   s
             r   	test_castr@   I   s    
Aq"A$<D	tS(	(B	tS(	(B	tBr	*B	tS(	(B	tS(	(B	Br"	-B		2&		2&1r!u%r   c                 L   | j                   t        d      dz  z   }| j                  t        d      dz  z   }t        j                  |d   |d   d      }| j                  ||      }t        |j                   |       t        |j                  |       t         ||      |       y )Nr-   r/   r   r)      r0   )r    r3   r!   r   r2   identityr   r
   )r   dwr8   ps        r   test_identityrG   _   s    fTl3&&AfTl3&&A
AaD!A$#AQq)A11!a r   c                 ,   | j                   t        d      dz  z   }| j                  t        d      dz  z   }| j                  d||      }t	        |j                   |       t	        |j                  |       t	        |j
                  dgdz  dgz          y )Nr-   r/      r0   r   r)   )r    r3   r!   basisr   r"   r   rD   rE   rF   s       r   
test_basisrL   i   sz    fTl3&&AfTl3&&A

1Qq
)A11!Q!%r   c                    | j                   t        d      dz  z   }| j                  t        d      dz  z   }t        d      }| j                  |||      }t	        |j                         t        |             t	        |j                   |       t	        |j                  |       t         ||      d       t        j                   }t        j                  }t        j                  |||      }t        |j                  d   d       y )Nr-   r/   )rI   r0   r   r)   )r    r3   r!   	fromrootsr   degreelenr
   r   r?   r"   )r   rD   rE   rr$   pdompwinr%   s           r   test_fromrootsrU   r   s     	fTl3&&AfTl3&&AtA	!A	.Bc!f%AA1q! DD	D	6BQ'r   c                     g d}g d}t        j                  t              5 }| j                  ||d       d d d        d   j                  j
                  d   dk(  sJ y # 1 sw Y   +xY w)N)        rW         ?)rX   g       @g      @r.   r   z!The fit may be poorly conditioned)pytestwarnsr   fitmessageargs)r   r8   yrecords       r   test_bad_conditioned_fitr`      s^    AA 
k	"fAq 
#!9!!!$(KKKK 
#	"s   A  A)c                 n   d }t        j                  dd      } ||      }| j                  ||d      }t        |j                  ddg       t         ||      |       t        |j                         d       | j                  t        d      dz  z   }| j                  t        d      dz  z   }| j                  ||d||      }t         ||      |       t        |j                  |       t        |j                  |       | j                  ||g d||      }t         ||      |       t        |j                  |       t        |j                  |       | j                  ||dg       }t        |j                  | j                         t        |j                  | j                         | j                  ||g dg       }t        |j                  | j                         t        |j                  | j                         t        j                  |      }|t        |j                        dz  z   }d|d d d	<   | j                  |d d d	   |d d d	   d      }| j                  ||d|
      }	| j                  ||g d|
      }
t         ||       |	|             t         |	|       |
|             y )Nc                     | | dz
  z  | dz
  z  S Nr)   r.    )r8   s    r   fztest_fit.<locals>.f   s    !a%y!a%  r   r   r,   r-   r/   r0   )r   r)   r.   r,   r)   r.   )rE   )r   r2   r[   r
   r    r   rP   r3   r!   
zeros_likeshape)r   re   r8   r^   rF   rD   rE   zr$   r%   p3s              r   test_fitrj      s0   !
AqA	!A 	AqA1a&)!a Q 	fTl3&&AfTl3&&AAq1-A!a !$!$A|Aa8A!a !$!$ 	Aq"A4;;'4;;'A|R(A4;;'4;;' 	aA	F177OCAAccF	!CaC&!CaC&!	$B	!QQ	B	!Q	*B1r!u%1r!u%r   c                     | g dddgddg      } | g dddgddg      } | g dddgddg      } | g dddgddg      }t        ||k(         t        ||k(          t        ||k(          t        ||k(          y Nr)   r.   r,   r   r)   r.   r,   r0   )r)   r)   r)   r   r   r$   r%   ri   p4s        r   
test_equalrq      s    	iA1v	6B	iA1v	6B	iA1v	6B	iA1v	6BB"HbLbLbLr   c                      | g dddgddg      } | g dddgddg      } | g dddgddg      } | g dddgddg      }t        ||k7          t        ||k7         t        ||k7         t        ||k7         y rl   rn   ro   s        r   test_not_equalrs      s    	iA1v	6B	iA1v	6B	iA1v	6B	iA1v	6BbLB"HB"HB"Hr   c           
      ^   t        t        d      dz         }t        t        d      dz         } | |      } | |      }||z   }t        ||z   |       t        ||z   |       t        ||z   |       t        |t        |      z   |       t        t        |      |z   |       t        |t	        j
                  |      z   |       t        t	        j
                  |      |z   |       t        t        t        j                  | | dg| j                  dz                t        t        t        j                  | | dg| j                  dz                | t        u r+t        t        t        j                  |t        dg             y t        t        t        j                  |t        dg             y N         ?r+   r   r)   r    r!   )listr3   r'   tupler   arrayr   	TypeErroropaddr    r!   r   r   r   c1c2r$   r%   ri   s         r   test_addr      s=   	fTlR	 B	fTlR	 B	bB	bB	bBR"Wb)R"Wb)R"Wb)R%)^R0U2Y^R0R"((2,.3RXXb\B.3)RVVRqc$++/)JK)RVVRqc$++/)JKziYs^<iZ_=r   c           
      f   t        t        d      dz         }t        t        d      dz         } | |      } | |      }||z
  }t        ||z
  |        t        ||z
  |       t        ||z
  |        t        |t        |      z
  |       t        t        |      |z
  |        t        |t	        j
                  |      z
  |       t        t	        j
                  |      |z
  |        t        t        t        j                  | | dg| j                  dz                t        t        t        j                  | | dg| j                  dz                | t        u r+t        t        t        j                  |t        dg             y t        t        t        j                  |t        dg             y ru   )r{   r3   r'   r|   r   r}   r   r~   r   subr    r!   r   r   r   s         r   test_subr      sE   	fTlR	 B	fTlR	 B	bB	bB	bBR"Wrc*R"Wb)R"Wrc*R%)^R0U2Y^bS1R"((2,.3RXXb\B.4)RVVRqc$++/)JK)RVVRqc$++/)JKziYs^<iZ_=r   c           
         t        t        d      dz         }t        t        d      dz         } | |      } | |      }||z  }t        ||z  |       t        ||z  |       t        ||z  |       t        |t        |      z  |       t        t        |      |z  |       t        |t	        j
                  |      z  |       t        t	        j
                  |      |z  |       t        |dz  | | dg      z         t        d|z  | | dg      z         t        t        t        j                  | | dg| j                  dz                t        t        t        j                  | | dg| j                  dz                | t        u r+t        t        t        j                  |t        dg             y t        t        t        j                  |t        dg             y )	Nrv   rx   r+   r.   r   r)   ry   rz   )r{   r3   r'   r|   r   r}   r   r~   r   mulr    r!   r   r   r   s         r   test_mulr      sm   	fTlR	 B	fTlR	 B	bB	bB	bBR"Wb)R"Wb)R"Wb)R%)^R0U2Y^R0R"((2,.3RXXb\B.3R!VR$s)^4QVR$s)^4)RVVRqc$++/)JK)RVVRqc$++/)JKziYs^<iZ_=r   c           
         t        t        d      dz         }t        t        d      dz         }t        t        d      dz         } | |      } | |      } | |      }||z  |z   }t        |j                        }t        ||z  |       t        ||z  |       t        ||z  |       t        |t	        |      z  |       t        t	        |      |z  |       t        |t        j                  |      z  |       t        t        j                  |      |z  |       t        d|z   | dg             t        |dz  d|z         t        t        t        j                  | | dg| j                  dz                t        t        t        j                  | | dg| j                  dz   	             | t        u r+t        t        t        j                  |t        dg             y t        t        t        j                  |t        dg             y 
Nrv   rx   r+   r-   r.   r   r)   ry   rz   )r{   r3   r"   r'   r|   r   r}   r   r~   r   floordivr    r!   r   r   	r   r   r   c3r$   r%   ri   rp   c4s	            r   test_floordivr     s   	fTlR	 B	fTlR	 B	fTlR	 B	bB	bB	bB	b2B	bggBR2Xr*R2Xr*R2Xr*R59_b1U2Y"_b1R288B</4RXXb\R/4Q"WdA3i0R1Wc"f-2;;D!T[[1_$EG2;;D!T[[1_$EGzib)QC.Aib*aS/Br   c           	          | g d      }|dz  }t         j                  D ]k  }t        |t              rt        |t              r$ |d      }t        t        j                  ||      |       t        t        t        j                  ||       m t        t        fD ]J  } |d      }t        t        j                  ||      |       t        t        t        j                  ||       L t        fD ]K  } |dd      }t        t        j                  ||      |       t        t        t        j                  ||       M t               t               t               t	               t        j                   dg      fD ]B  }t        t        t        j                  ||       t        t        t        j                  ||       D t"        D ](  }t        t        t        j                  | |d             * y )Nrm   rI   r   r)   )r   
ScalarType
issubclassr   boolr'   r   truedivr   r~   intfloatcomplexr|   r{   dictr}   classes)r   r$   r%   stypesptypes         r   test_truedivr   1  sY    
gB	aB%(Jud,C!H B!2B7iQ3  u!H B!2B7iQ3  !QK B!2B7iQ3  gtvtvtvrxx}=iR3iQ3 > iRq: r   c           
      $   t        t        d      dz         }t        t        d      dz         }t        t        d      dz         } | |      } | |      } | |      }||z  |z   }t        |j                        }t        ||z  |       t        ||z  |       t        ||z  |       t        |t	        |      z  |       t        t	        |      |z  |       t        |t        j                  |      z  |       t        t        j                  |      |z  |       t        d|z   | dg             t        |dz   | dg             t        t        t        j                  | | dg| j                  dz                t        t        t        j                  | | dg| j                  dz   	             | t        u r+t        t        t        j                  |t        dg             y t        t        t        j                  |t        dg             y r   )r{   r3   r"   r'   r|   r   r}   r   r~   r   modr    r!   r   r   r   s	            r   test_modr   L  s   	fTlR	 B	fTlR	 B	fTlR	 B	bB	bB	bB	b2B	bggBR"Wb)R"Wb)R"Wb)R%)^R0U2Y^R0R"((2,.3RXXb\B.3QVT1#Y/R!VT1#Y/)RVVRqc$++/)JK)RVVRqc$++/)JKziYs^<iZ_=r   c           
         t        t        d      dz         }t        t        d      dz         }t        t        d      dz         } | |      } | |      } | |      }||z  |z   }t        |j                        }t        ||      \  }	}
t	        |	|       t	        |
|       t        ||      \  }	}
t	        |	|       t	        |
|       t        ||      \  }	}
t	        |	|       t	        |
|       t        |t        |            \  }	}
t	        |	|       t	        |
|       t        t        |      |      \  }	}
t	        |	|       t	        |
|       t        |t        j                  |            \  }	}
t	        |	|       t	        |
|       t        t        j                  |      |      \  }	}
t	        |	|       t	        |
|       t        |d      \  }	}
t	        |	d|z         t	        |
 | dg             t        d|      \  }	}
t	        |	 | dg             t	        |
 | dg             t        t        t        | | dg| j                  dz                t        t        t        | | dg| j                  dz   	             | t        u r!t        t        t        |t        dg             y t        t        t        |t        dg             y r   )r{   r3   r"   divmodr'   r|   r   r}   r   r~   r    r!   r   r   )r   r   r   r   r$   r%   ri   rp   r   quorems              r   test_divmodr   g  sK   	fTlR	 B	fTlR	 B	fTlR	 B	bB	bB	bB	b2B	bggBb"~HCS"%S"%b"~HCS"%S"%b"~HCS"%S"%b%)$HCS"%S"%eBi$HCS"%S"%b"((2,'HCS"%S"%bhhrlB'HCS"%S"%b!}HCS#b&)S$s),a}HCS$s),S$s),)VRqc$++/)JK)VRqc$++/)JKziYs^<iZ_=r   c                 x   | j                   dz  dz   }| j                  }t        j                  |d   |d   d      }t        j                  | j                  |||      j                               }t        ||       t        j                  | j                  |      j                               }t        ||       y )Ng      ?r/   r   r)   rI   r0   )r    r!   r   r2   sortrO   rootsr
   )r   rD   rE   tgtress        r   
test_rootsr     s    dS AA
++adAaD!
$C
''$..Qq.9??A
BCS!
''$..%++-
.CS!r   c                 Z    | j                  d      }t        |j                         d       y NrI   )rJ   r   rP   r   rF   s     r   test_degreer     s    

1AQr   c                 B   | j                  d      }|j                         }t        ||k(         t        ||u       t        |j                  |j                  u       t        |j                  |j                  u       t        |j
                  |j
                  u       y r   )rJ   copyr   r"   r    r!   )r   r$   r%   s      r   	test_copyr     sq    	AB	BB"HBbLBGG277"#BIIRYY&'BIIRYY&'r   c                 F   t         }| j                   |g d            }|j                  |j                               }|j                  |j                  d            }t        | |g d             t        | |g d             | j                   |g d            }|j                  |j                  d            }|j                  |j                  dddg            }t        | |g d             t        | |g d             | j                   |g d            }|j                  |j                  d	            }|j                  |j                  dd	            }t        | |g d
             t        | |g d             d| j                  z  }| j                   |g d      |      }|j                  |j                               }|j                  |j                  d            }t        | |g d             t        | |g d             y )N)r.         r.   )r   r.   r,   rw   )r   r   r)   r)   r)   r)   k)r)   r.   r,   rw   )r)   r)   r)   r)   r)   )lbnd)r.   r,   rw   )r   r   r)   r)   r)   ry   )r   r?   integr'   r    )r   Pp0r$   r%   rD   s         r   
test_integr     s   A	1_%	&B	

	B	
	BR<1R?!34	1_%	&B	
1	B	
q!f%	&BR<1R?!34	1_%	&B	
a 	!B	
#	$BR=!12R#3!45	$++A	1_%a	0B	

	B	
	BR<1R?!34r   c                    | j                   t        d      dz  z   }| j                  t        d      dz  z   } | g d||      }|j                  dddg      }|j                  ddg      }t	        |j                  d      j                  |j                         t	        |j                  d      j                  |j                          | g d      }|j                  dddg      }|j                  ddg      }t	        |j                  d      j                  |j                         t	        |j                  d      j                  |j                         y )Nr-   r/   rm   r0   r.   r)   r   )r    r3   r!   r   r
   derivr"   )r   rD   rE   r$   r%   ri   s         r   
test_derivr     s    	fTl3&&AfTl3&&A	i!	,B	!1v	B	!s	B(("''2(("''2	iB	!1v	B	!s	B(("''2(("''2r   c                    | j                   t        d      dz  z   }| j                  t        d      dz  z   } | g d||      }t        j                  |d   |d   d      } ||      }|j	                  d      \  }}t        ||       t        ||       t        j                  ddd      } ||      }|j	                  dddg	      \  }}t        ||       t        ||       y )
Nr-   r/   rm   r0   r   r)      r.   ry   )r    r3   r!   r   r2   r
   )r   rD   rE   rF   xtgtytgtxresyress           r   test_linspacer     s    fTl3&&AfTl3&&AYq+A;;qtQqT2&DT7DBJD$d#d#;;q!R DT7DB1v.JD$d#d#r   c                    | j                   t        d      dz  z   }| j                  t        d      dz  z   } | dg||      } | g d||      }t        d      D ]  }t	        ||z  |       ||z  }  | dg      } | g d      }t        d      D ]  }t	        ||z  |       ||z  } t        t        t        j                  |d       t        t        t        j                  |d       y )	Nr-   r/   r)   r0   rm   rI   g      ?rN   )	r    r3   r!   ranger'   r   
ValueErrorr   pow)r   rD   rE   r   tstis         r   test_powr     s    fTl3&&AfTl3&&A
s1Q
'C
y1
-C1X a-Ci  s)C
y/C1X a-Ci  *bffc3/*bffc2.r   c                     t         }| j                  }t        j                  |d   |d   d      }| j	                   |g d            }d|dd|z  z   z  z   } ||      }t        ||       y )Nr   r)   rB   rm   r.   r,   )r   r    r   r2   r?   r
   )r   r   rD   r8   rF   r   r   s          r   	test_callr     sf    AA
AaD!A$#A 			!I,A
aQqSk/C
A$CS!r   c                 z     | g d      }g d} ||      }t        | |t        j                  |                   y )Nrm   )rN   r   r.   )r   r   r}   )r   rF   r8   r   s       r   test_call_with_listr     s/    YAA
A$Can%r   c                     | g d      }t        t        |j                  d       t        t        |j                  d       t        t	        |j                  d            d       t        t	        |j                  d            d       t        t	        |j                  d            d       t        t	        |j                  d            d       y )Nrm   rx   rN   r,   r.   r)   r   )r   r   cutdegr   rQ   r   s     r   test_cutdegr     s    YA*ahh+*ahh+QXXa[!1%QXXa[!1%QXXa[!1%QXXa[!1%r   c                     | g d      }t        t        |j                  d       t        t        |j                  d       t        t	        |j                  d            d       t        t	        |j                  d            d       t        t	        |j                  d            d       t        t	        |j                  d            d       y )Nrm   rx   r   rw   r,   r.   r)   )r   r   truncater   rQ   r   s     r   test_truncater     s    YA*ajj"-*ajj!,QZZ]#Q'QZZ]#Q'QZZ]#Q'QZZ]#Q'r   c                 
   g d} | |      }t        |j                         j                  |d d        t        |j                  d      j                  |d d        t        |j                  d      j                  |d d        y )N)r)   gư>g-q=r   r,   g|=r.   gh㈵>r)   )r   trimr"   )r   crF   s      r   	test_trimr   )  sf    AQA"1&##QrU+""AbqE*r   c                     | j                   }| j                  } | dg||      }t        ddg|j                                d|z  dz   } | dg||      }t        ddg|j                                y )Nr)   r0   r   r.   )r    r!   r
   mapparmsrK   s       r   test_mapparmsr   1  si    AAaS1%AA

-	!aAaS1%AA

-r   c                      | g d      }t        j                  d      }t        t        t         j                  ||       t        t        t         j                  ||       y )Nrm   r,   )r   onesr   r~   r   )r   rF   r8   s      r   test_ufunc_overrider   =  s<    YA

A)RVVQ*)RVVQ*r   c                   $    e Zd Zd Zd Zd Zd Zy)TestInterpolatec                     ||dz
  z  |dz
  z  S rc   rd   )selfr8   s     r   re   zTestInterpolate.fK  s    AE{a!e$$r   c                     t        t        t        j                  | j                  d       t        t
        t        j                  | j                  d       y )NrN   g      $@)r   r   r   interpolatere   r~   )r   s    r   test_raiseszTestInterpolate.test_raisesN  s2    j)"7"7Di!6!6Dr   c                     t        dd      D ]<  }t        t        j                  | j                  |      j                         |k(         > y )Nr)   rI   )r   r   r   r   re   rP   )r   degs     r   test_dimensionszTestInterpolate.test_dimensionsR  s9    A;CI))$&&#6==?3FG r   c           	          d }t        j                  ddd      }t        dd      D ]M  }t        d|dz         D ]9  }t        j                  ||ddg|f      }t         ||       |||      d       ; O y )	Nc                     | |z  S r   rd   )r8   rF   s     r   powxz0TestInterpolate.test_approximation.<locals>.powxX  s    a4Kr   r   r.   r*   r)   )r    r]   rB   )decimal)r   r2   r   r   r   r
   )r   r   r8   r   trF   s         r   test_approximationz"TestInterpolate.test_approximationV  sr    	 KK1b!B<C1cAg&))$QF!N#AaD$q!*bA '  r   N)r   
__module____qualname__re   r   r   r   rd   r   r   r   r   I  s    %EH	Br   r   ) )>__doc__operatorr   numbersr   rY   numpyr   numpy.polynomialr   r   r   r   r   r	   numpy.testingr
   r   r   r   numpy.exceptionsr   r   r|   classidsfixturer   r3   r'   r6   r7   r=   r@   rG   rL   rU   r`   rj   rq   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd   r   r   <module>r     sC  
    B B  ) )XX 111wH- . 
		" 	&"&,!&(&L)&X>,>,>.C8;6>6*>Z" 
(5:3$$$/&	"&&(+	.+B Br   