
    H/Ph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j        ee          d	             Zej        j        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=dS )-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              #   $   K   | ]}|j         V  d S N)__name__).0clss     c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/polynomial/tests/test_classes.py	<genexpr>r      s$      11#111111    )paramsidsc                     | j         S r   )param)requests    r   Polyr      s
    =r    c                 B   	 t          t          j        | j        |j        k                         t          t          j        | j        |j        k                         t          | j        |j                   d S # 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    "ryBI-..///ryBI-..///BGRW----- " " "+++r++S!!!"s   A8A< <"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   }|                    |||          }	t          |	j        |           t          |	j        |           t           |	|           ||                     d S )	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"	5	5B	2&&&	2&&&1rr!uu%%%%%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   }|                    |||          }	t          |	j        |           t          |	j        |           t           |	|           ||                     d S )Nr   r*   r+   r,   r.   r0   r1   )r   r3   r4   r!   r"   castr
   r6   s
             r   	test_castrA   I   s    
Aq"A$<<D	tS(	(B	tS(	(B	tBr	*	*	*B	tS(	(B	tS(	(B	Br"	-	-B	2&&&	2&&&1rr!uu%%%%%r   c                 f   | j         t          d          dz  z   }| j        t          d          dz  z   }t          j        |d         |d         d          }|                     ||          }t          |j         |           t          |j        |           t           ||          |           d S )Nr.   r0   r   r*      r1   )r!   r4   r"   r   r3   identityr   r
   )r   dwr9   ps        r   test_identityrH   _   s    fTll3&&AfTll3&&A
AaD!A$##AQq))A11!a     r   c                 ,   | j         t          d          dz  z   }| j        t          d          dz  z   }|                     d||          }t	          |j         |           t	          |j        |           t	          |j        dgdz  dgz              d S )Nr.   r0      r1   r   r*   )r!   r4   r"   basisr   r#   r   rE   rF   rG   s       r   
test_basisrM   i   s    fTll3&&AfTll3&&A

1Qq
))A11!Q!%%%%%r   c                 4   | j         t          d          dz  z   }| j        t          d          dz  z   }t          d          }|                     |||          }t	          |                                t          |                     t	          |j         |           t	          |j        |           t           ||          d           t          j         }t          j        }t          j	        |||          }t          |j
        d         d           d S )Nr.   r0   )rJ   r1   r   r*   )r!   r4   r"   	fromrootsr   degreelenr
   r   r@   r#   )r   rE   rF   rr%   pdompwinr&   s           r   test_fromrootsrV   r   s     	fTll3&&AfTll3&&AtA	!A	.	.Bc!ff%%%AA1q!!! DD	D	6	6	6BQ'''''r   c                     g d}g d}t          j        t                    5 }|                     ||d           d d d            n# 1 swxY w Y   |d         j        j        d         dk    sJ d S )N)        rX         ?)rY   g       @g      @r/   r   z!The fit may be poorly conditioned)pytestwarnsr   fitmessageargs)r   r9   yrecords       r   test_bad_conditioned_fitra      s    AA 
k	"	" fAq              !9!!$(KKKKKKKs   AA
A
c                    d }t          j        dd          } ||          }|                     ||d          }t          |j        ddg           t           ||          |           t          |                                d           | j        t          d          dz  z   }| j        t          d          dz  z   }|                     ||d||          }t           ||          |           t          |j        |           t          |j        |           |                     ||g d||          }t           ||          |           t          |j        |           t          |j        |           |                     ||dg           }t          |j        | j                   t          |j        | j                   |                     ||g dg           }t          |j        | j                   t          |j        | j                   t          j	        |          }|t          |j
                  dz  z   }d|d d d	<   |                     |d d d	         |d d d	         d          }|                     ||d|
          }	|                     ||g d|
          }
t           ||           |	|                     t           |	|           |
|                     d S )Nc                     | | dz
  z  | dz
  z  S Nr*   r/    )r9   s    r   fztest_fit.<locals>.f   s    !a%y!a%  r   r   r-   r.   r0   r1   )r   r*   r/   r-   r*   r/   )rF   )r   r3   r\   r
   r!   r   rQ   r4   r"   
zeros_likeshape)r   rf   r9   r_   rG   rE   rF   zr%   r&   p3s              r   test_fitrk      s   ! ! !
AqA	!A 	AqA1a&)))!a   Q 	fTll3&&AfTll3&&AAq1--A!a   !$$$!$$$A|||Aa88A!a   !$$$!$$$ 	Aq"A4;'''4;'''A|||R((A4;'''4;''' 	aA	F17OOCAAcccF	!CCaC&!CCaC&!	$	$B	!QQ		B	!Q	*	*B1rr!uu%%%1rr!uu%%%%%r   c                 D    | 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                d S Nr*   r/   r-   r   r*   r/   r-   r1   )r*   r*   r*   r   r   r%   r&   rj   p4s        r   
test_equalrr      s    	iiiA1v	6	6	6B	iiiA1v	6	6	6B	iiiA1v	6	6	6B	iiiA1v	6	6	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          ||k                t          ||k               t          ||k               t          ||k               d S rm   ro   rp   s        r   test_not_equalrt      s    	iiiA1v	6	6	6B	iiiA1v	6	6	6B	iiiA1v	6	6	6B	iiiA1v	6	6	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 r1t          t          t          j	        |t          dg                     d S t          t          t          j	        |t          dg                     d S N         ?r,   r   r*   r!   r"   )listr4   r(   tupler   arrayr   	TypeErroropaddr!   r"   r   r   r   c1c2r%   r&   rj   s         r   test_addr      s   	fTllR	 	 B	fTllR	 	 B	bB	bB	bBR"Wb)))R"Wb)))R"Wb)))R%))^R000U2YY^R000R"(2,,.333RXb\\B.333)RVRqc$+/)J)J)JKKK)RVRqc$+/)J)J)JKK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          t          t          j	        | | dg| j
        dz                        t          t          t          j	        | | dg| j        dz                        | t          u r1t          t          t          j	        |t          dg                     d S t          t          t          j	        |t          dg                     d S rv   )r|   r4   r(   r}   r   r~   r   r   r   subr!   r"   r   r   r   s         r   test_subr      s   	fTllR	 	 B	fTllR	 	 B	bB	bB	bBR"Wrc***R"Wb)))R"Wrc***R%))^R000U2YY^bS111R"(2,,.333RXb\\B.444)RVRqc$+/)J)J)JKKK)RVRqc$+/)J)J)JKKKziYs^^<<<<<iZ__=====r   c           
      d   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 r1t          t          t          j	        |t          dg                     d S t          t          t          j	        |t          dg                     d S )	Nrw   ry   r,   r/   r   r*   rz   r{   )r|   r4   r(   r}   r   r~   r   r   r   mulr!   r"   r   r   r   s         r   test_mulr      s   	fTllR	 	 B	fTllR	 	 B	bB	bB	bBR"Wb)))R"Wb)))R"Wb)))R%))^R000U2YY^R000R"(2,,.333RXb\\B.333R!VR$$s))^444QVR$$s))^444)RVRqc$+/)J)J)JKKK)RVRqc$+/)J)J)JKK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 r1t          t          t          j
        |t          dg                     d S t          t          t          j
        |t          dg                     d S 
Nrw   ry   r,   r.   r/   r   r*   rz   r{   )r|   r4   r#   r(   r}   r   r~   r   r   r   floordivr!   r"   r   r   	r   r   r   c3r%   r&   rj   rq   c4s	            r   test_floordivr     s,   	fTllR	 	 B	fTllR	 	 B	fTllR	 	 B	bB	bB	bB	b2B	bgBR2Xr***R2Xr***R2Xr***R599_b111U2YY"_b111R28B<</444RXb\\R/444Q"WddA3ii000R1Wc"f---2;DD!T[1_$E$E$EG G G2;DD!T[1_$E$E$EG G Gzib)QC..AAAAAib*aS//BBBBBr   c           	      8    | g d          }|dz  }t           j        D ]|}t          |t                    rt          |t                    r- |d          }t          t          j        ||          |           t          t          t          j        ||           }t          t          fD ]Q} |d          }t          t          j        ||          |           t          t          t          j        ||           Rt          fD ]R} |dd          }t          t          j        ||          |           t          t          t          j        ||           St                      t                      t                      t	                      t          j        dg          fD ]D}t          t          t          j        ||           t          t          t          j        ||           Et"          D ],}t          t          t          j        | |d                     -d S )Nrn   rJ   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  s    
gggB	aB 4 4%(( 	Jud,C,C 	E!HH B!2!2B777iQ3333u 4 4E!HH B!2!2B777iQ3333 4 4E!QKK B!2!2B777iQ3333ggtvvtvvtvvrx}}= 4 4iR333iQ333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 r1t          t          t          j
        |t          dg                     d S t          t          t          j
        |t          dg                     d S r   )r|   r4   r#   r(   r}   r   r~   r   r   r   modr!   r"   r   r   r   s	            r   test_modr   L  s   	fTllR	 	 B	fTllR	 	 B	fTllR	 	 B	bB	bB	bB	b2B	bgBR"Wb)))R"Wb)))R"Wb)))R%))^R000U2YY^R000R"(2,,.333RXb\\B.333QVTT1#YY///R!VTT1#YY///)RVRqc$+/)J)J)JKKK)RVRqc$+/)J)J)JKK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                     d S t          t          t          |t          dg                     d S r   )r|   r4   r#   divmodr(   r}   r   r~   r   r   r!   r"   r   r   )r   r   r   r   r%   r&   rj   rq   r   quorems              r   test_divmodr   g  s/   	fTllR	 	 B	fTllR	 	 B	fTllR	 	 B	bB	bB	bB	b2B	bgBb"~~HCS"%%%S"%%%b"~~HCS"%%%S"%%%b"~~HCS"%%%S"%%%b%))$$HCS"%%%S"%%%eBii$$HCS"%%%S"%%%b"(2,,''HCS"%%%S"%%%bhrllB''HCS"%%%S"%%%b!}}HCS#b&)))S$$s)),,,a}}HCS$$s)),,,S$$s)),,,)VRqc$+/)J)J)JKKK)VRqc$+/)J)J)JKKKziYs^^<<<<<iZ__=====r   c                    | j         dz  dz   }| j        }t          j        |d         |d         d          }t          j        |                     |||                                                    }t          ||           t          j        |                     |                                                    }t          ||           d S )Ng      ?r0   r   r*   rJ   r1   )r!   r"   r   r3   sortrP   rootsr
   )r   rE   rF   tgtress        r   
test_rootsr     s    dS AA
+adAaD!
$
$C
'$..Qq.99??AA
B
BCS!!!
'$..%%++--
.
.CS!!!!!r   c                 t    |                      d          }t          |                                d           d S NrJ   )rK   r   rQ   r   rG   s     r   test_degreer     s/    

1AQr   c                 B   |                      d          }|                                }t          ||k               t          ||u           t          |j        |j        u           t          |j        |j        u           t          |j        |j        u           d S r   )rK   copyr   r#   r!   r"   )r   r%   r&   s      r   	test_copyr     s    	AB	BB"HBbLBG27"###BIRY&'''BIRY&'''''r   c                 h   t           }|                      |g d                    }|                    |                                          }|                    |                    d                    }t          | |g d                     t          | |g d                     |                      |g d                    }|                    |                    d                    }|                    |                    dddg                    }t          | |g d                     t          | |g d                     |                      |g d                    }|                    |                    d	                    }|                    |                    dd	                    }t          | |g d
                     t          | |g d                     d| j        z  }|                      |g d          |          }|                    |                                          }|                    |                    d                    }t          | |g d                     t          | |g d                     d S )N)r/         r/   )r   r/   r-   rx   )r   r   r*   r*   r*   r*   k)r*   r/   r-   rx   )r*   r*   r*   r*   r*   )lbnd)r/   r-   rx   )r   r   r*   r*   r*   rz   )r   r@   integr(   r!   )r   Pp0r%   r&   rE   s         r   
test_integr     so   A	11___%%	&	&B	


		B	
		BR<<<111R???!3!3444	11___%%	&	&B	
1		B	
q!f%%	&	&BR<<<111R???!3!3444	11___%%	&	&B	
a  	!	!B	
##	$	$BR===!1!1222R#3#3#3!4!4555	$+A	11___%%a	0	0B	


		B	
		BR<<<111R???!3!344444r   c                    | j         t          d          dz  z   }| j        t          d          dz  z   } | g d||          }|                    dddg          }|                    ddg          }t	          |                    d          j        |j                   t	          |                    d          j        |j                    | g d          }|                    dddg          }|                    ddg          }t	          |                    d          j        |j                   t	          |                    d          j        |j                   d S )Nr.   r0   rn   r1   r/   r*   r   )r!   r4   r"   r   r
   derivr#   )r   rE   rF   r%   r&   rj   s         r   
test_derivr     s?    	fTll3&&AfTll3&&A	iii!	,	,	,B	!1v		B	!s		B("'222("'222	iiiB	!1v		B	!s		B("'222("'22222r   c                    | j         t          d          dz  z   }| j        t          d          dz  z   } | g d||          }t          j        |d         |d         d          } ||          }|                    d          \  }}t          ||           t          ||           t          j        ddd          } ||          }|                    dddg	          \  }}t          ||           t          ||           d S )
Nr.   r0   rn   r1   r   r*      r/   rz   )r!   r4   r"   r   r3   r
   )r   rE   rF   rG   xtgtytgtxresyress           r   test_linspacer     s   fTll3&&AfTll3&&AYYYq+++A;qtQqT2&&D1T77DBJD$d###d###;q!R  D1T77D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           d S )	Nr.   r0   r*   r1   rn   rJ   g      ?rO   )	r!   r4   r"   ranger(   r   
ValueErrorr   pow)r   rE   rF   r   tstis         r   test_powr     s   fTll3&&AfTll3&&A
$s1Q
'
'
'C
$yyy1
-
-
-C1XX   a---Ci
$s))C
$yyy//C1XX   a---Ci*bfc3///*bfc2.....r   c                     t           }| j        }t          j        |d         |d         d          }|                      |g d                    }d|dd|z  z   z  z   } ||          }t          ||           d S )Nr   r*   rC   rn   r/   r-   )r   r!   r   r3   r@   r
   )r   r   rE   r9   rG   r   r   s          r   	test_callr     s    AA
AaD!A$##A 			!!III,,A
aQqSk/C
!A$$CS!!!!!r   c                      | g d          }g d} ||          }t          | |t          j        |                               d S )Nrn   )rO   r   r/   )r   r   r~   )r   rG   r9   r   s       r   test_call_with_listr     sO    YYYA

A
!A$$Caann%%%%%r   c                     | g d          }t          t          |j        d           t          t          |j        d           t          t	          |                    d                    d           t          t	          |                    d                    d           t          t	          |                    d                    d           t          t	          |                    d                    d           d S )Nrn   ry   rO   r-   r/   r*   r   )r   r   cutdegr   rR   r   s     r   test_cutdegr     s    YYYA*ah+++*ah+++QXXa[[!!1%%%QXXa[[!!1%%%QXXa[[!!1%%%QXXa[[!!1%%%%%r   c                     | g d          }t          t          |j        d           t          t          |j        d           t          t	          |                    d                    d           t          t	          |                    d                    d           t          t	          |                    d                    d           t          t	          |                    d                    d           d S )Nrn   ry   r   rx   r-   r/   r*   )r   r   truncater   rR   r   s     r   test_truncater     s    YYYA*aj"---*aj!,,,QZZ]]##Q'''QZZ]]##Q'''QZZ]]##Q'''QZZ]]##Q'''''r   c                 B   g d} | |          }t          |                                j        |d d                    t          |                    d          j        |d d                    t          |                    d          j        |d d                    d S )N)r*   gư>g-q=r   r-   g|=r/   gh㈵>r*   )r   trimr#   )r   crG   s      r   	test_trimr   )  s    AQA"1"&&&#QrrU+++"AbqbE*****r   c                     | j         }| j        } | dg||          }t          ddg|                                           d|z  dz   } | dg||          }t          ddg|                                           d S )Nr*   r1   r   r/   )r!   r"   r
   mapparmsrL   s       r   test_mapparmsr   1  s    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        ||           d S )Nrn   r-   )r   onesr   r   r   )r   rG   r9   s      r   test_ufunc_overrider   =  sR    YYYA


A)RVQ***)RVQ*****r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestInterpolatec                     ||dz
  z  |dz
  z  S rd   re   )selfr9   s     r   rf   zTestInterpolate.fK  s    AE{a!e$$r   c                     t          t          t          j        | j        d           t          t
          t          j        | j        d           d S )NrO   g      $@)r   r   r   interpolaterf   r   )r   s    r   test_raiseszTestInterpolate.test_raisesN  s:    j)"7DDDi!6DDDDDr   c                     t          dd          D ]?}t          t          j        | j        |                                          |k               @d S )Nr*   rJ   )r   r   r   r   rf   rQ   )r   degs     r   test_dimensionszTestInterpolate.test_dimensionsR  sX    A;; 	H 	HCI)$&#66==??3FGGGG	H 	Hr   c           	      
   d }t          j        ddd          }t          dd          D ]X}t          d|dz             D ]B}t          j        ||ddg|f          }t           ||           |||          d           CYd S )	Nc                     | |z  S r   re   )r9   rG   s     r   powxz0TestInterpolate.test_approximation.<locals>.powxX  s    a4Kr   r   r/   r+   r*   )r!   r^   rC   )decimal)r   r3   r   r   r   r
   )r   r   r9   r   trG   s         r   test_approximationz"TestInterpolate.test_approximationV  s    	 	 	 K1b!!B<< 	B 	BC1cAg&& B B)$QF!NNN#AAaDD$$q!**bAAAAAB	B 	Br   N)r   
__module____qualname__rf   r   r   r   re   r   r   r   r   I  s[        % % %E E EH H H	B 	B 	B 	B 	Br   r   )r   )>__doc__operatorr   numbersr   rZ   numpyr   numpy.polynomialr   r   r   r   r   r	   numpy.testingr
   r   r   r   numpy.exceptionsr   r   r}   classidsfixturer   r4   r(   r7   r8   r>   rA   rH   rM   rV   ra   rk   rr   rt   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   re   r   r   <module>r     s   
               B B B B B B B B B B B B B B B B            ) ( ( ( ( ( )XX 51111111wH---  .- 
	" " " " 	& & &"& & &,! ! !& & &( ( (&L L L)& )& )&X    > > >,> > >,> > >.C C C8; ; ;6> > >6*> *> *>Z" " "     
( ( (5 5 5:3 3 3$$ $ $$/ / /&	" 	" 	"& & && & &( ( (+ + +	. 	. 	.+ + +B B B B B B B B B Br   