a
    hÝEbO  ã                
   @   s0  d Z ddlmZ ddlZddlm  mZ ddlm	Z	m
Z
mZmZmZmZmZ d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„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZ G dd„ dƒZ!G dd„ dƒZ"G dd„ dƒZ#dS ) zTests for polynomial module.

é    )ÚreduceN)Úassert_almost_equalÚassert_raisesÚassert_equalÚassert_Úassert_warnsÚassert_array_equalÚassert_raises_regexc                 C   s   t j| dd�S )Ng�íµ ÷Æ°>)Ztol)ÚpolyÚpolytrim©Úx© r   úf/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/numpy/polynomial/tests/test_polynomial.pyÚtrim   s    r   é   )éÿÿÿÿr   é   )r   éýÿÿÿr   é   )r   r   iøÿÿÿr   é   )r   é   r   iìÿÿÿr   é   )r   r   é   r   iÐÿÿÿr   é    )r   iùÿÿÿr   é8   r   i�ÿÿÿr   é@   )	r   r   iàÿÿÿr   é    r   i ÿÿÿr   é€   )
r   é	   r   iˆÿÿÿr   i°  r   iÀýÿÿr   é   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestConstantsc                 C   s   t tjddgƒ d S )Nr   r   )r   r
   Z
polydomain©Úselfr   r   r   Útest_polydomain    s    zTestConstants.test_polydomainc                 C   s   t tjdgƒ d S )Nr   )r   r
   Zpolyzeror"   r   r   r   Útest_polyzero#   s    zTestConstants.test_polyzeroc                 C   s   t tjdgƒ d S ©Nr   )r   r
   Zpolyoner"   r   r   r   Útest_polyone&   s    zTestConstants.test_polyonec                 C   s   t tjddgƒ d S )Nr   r   )r   r
   Zpolyxr"   r   r   r   Ú
test_polyx)   s    zTestConstants.test_polyxN)Ú__name__Ú
__module__Ú__qualname__r$   r%   r'   r(   r   r   r   r   r!      s   r!   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestArithmeticc                 C   sž   t dƒD ]�}t dƒD ]‚}d|› d|› �}t t||ƒd ¡}||  d7  < ||  d7  < t dg| dg dg| dg ¡}tt|ƒt|ƒ|d� qqd S ©Nr   úAt i=ú, j=r   r   ©Úerr_msg)ÚrangeÚnpÚzerosÚmaxr
   Úpolyaddr   r   ©r#   ÚiÚjÚmsgÚtgtÚresr   r   r   Útest_polyadd/   s    $zTestArithmetic.test_polyaddc                 C   sž   t dƒD ]�}t dƒD ]‚}d|› d|› �}t t||ƒd ¡}||  d7  < ||  d8  < t dg| dg dg| dg ¡}tt|ƒt|ƒ|d� qqd S r-   )r2   r3   r4   r5   r
   Zpolysubr   r   r7   r   r   r   Útest_polysub9   s    $zTestArithmetic.test_polysubc                 C   sr   t t dg¡dgƒ t t dg¡ddgƒ tddƒD ]8}dg| dg }dg|d  dg }t t |¡|ƒ q4d S )Nr   r   r   )r   r
   Zpolymulxr2   )r#   r8   Zserr;   r   r   r   Útest_polymulxC   s    zTestArithmetic.test_polymulxc                 C   s�   t dƒD ]‚}t dƒD ]t}d|› d|› �}t || d ¡}|||   d7  < t dg| dg dg| dg ¡}tt|ƒt|ƒ|d� qqd S r-   )r2   r3   r4   r
   Úpolymulr   r   r7   r   r   r   Útest_polymulK   s    $zTestArithmetic.test_polymulc           
      C   sì   t ttjdgdgƒ t dgdg¡\}}t||fdƒ t ddgdg¡\}}t||fdƒ tdƒD ]„}tdƒD ]v}d|› d|› �}dg| ddg }dg| ddg }t ||¡}t ||¡\}}t t ||¡|¡}	t|	||d	� qnqbd S )
Nr   r   r   )r   r   ))r   r   r   r   r.   r/   r0   )r   ÚZeroDivisionErrorr
   Zpolydivr   r2   r6   r@   )
r#   ZquoÚremr8   r9   r:   ÚciÚcjr;   r<   r   r   r   Útest_polydivT   s    zTestArithmetic.test_polydivc                 C   s|   t dƒD ]n}t dƒD ]`}d|› d|› �}t |d ¡}ttj|g| t dg¡ƒ}t ||¡}tt	|ƒt	|ƒ|d� qqd S )Nr   r.   r/   r   r0   )
r2   r3   Úaranger   r
   r@   ÚarrayZpolypowr   r   )r#   r8   r9   r:   Úcr;   r<   r   r   r   Útest_polypowi   s    zTestArithmetic.test_polypowN)	r)   r*   r+   r=   r>   r?   rA   rF   rJ   r   r   r   r   r,   -   s   

	r,   c                   @   sŒ   e Zd Ze g d¢¡Ze dee¡Ze deee¡Zej	 	d¡d d Z
e e
g d¢¡Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestEvaluation)ç      ð?g       @g      @úi,j->ijú
i,j,k->ijk©é   r   r   r   c           
         s~  t t g dg¡jdƒ t dd¡‰ ‡ fdd„tdƒD ƒ}tdƒD ].}|| }t ˆ dg| dg ¡}t||ƒ q@ˆ ˆ d d  }t ˆ g d¢¡}t||ƒ td	ƒD ]^}dg| }t |¡‰ t t ˆ dg¡j	|ƒ t t ˆ ddg¡j	|ƒ t t ˆ g d
¢¡j	|ƒ q¢g d¢}tj
jg d¢|d�}t g d¢|¡}t|j|ƒ G dd„ dtjƒ}t g d¢¡ |¡}	t tt g d¢|	¡ƒ|ƒ d S )Nr   r   r   c                    s   g | ]}ˆ | ‘qS r   r   ©Ú.0r8   r   r   r   Ú
<listcomp>ƒ   ó    z/TestEvaluation.test_polyval.<locals>.<listcomp>r   r   )r   r   r   r   rP   ©r   r   r   )FTF©r   r   rP   )Úmask)é   r   rP   c                   @   s   e Zd ZdS )z&TestEvaluation.test_polyval.<locals>.CN)r)   r*   r+   r   r   r   r   ÚC›   s   rY   ©r   rP   r   )r   r
   ÚpolyvalÚsizer3   Úlinspacer2   r   r4   ÚshapeÚmarH   r   rW   ZndarrayÚviewÚtype)
r#   Úyr8   r;   r<   ÚdimsrW   ZmxrY   Zcxr   r   r   Útest_polyval}   s.    


zTestEvaluation.test_polyvalc                    sö  t ttjdgdgdd� tt g dg¡jdƒ tt g dg¡jdkƒ tt g dgd g¡jdƒ tt g dgd g¡jdkƒ tt dd¡dƒ tt dt 	d¡¡jd	kƒ t 
d
d¡‰ ‡ fdd„tdƒD ƒ}tddƒD ](}|| }t ˆ dg| ¡}t||ƒ qÚˆ ˆ d  ˆ d  }t ˆ g d¢¡}t||ƒ tdƒD ]`}dg| }t |¡‰ tt ˆ dg¡j|ƒ tt ˆ ddg¡j|ƒ tt ˆ g d¢¡j|ƒ �q:g d¢}t |¡}t 
d
d¡‰ tt ˆ |¡t ˆ |¡ƒ d}t dd¡‰ tjjdd|d�}tjˆ |dd�}t |jdd … ¡}t|jƒD ]&}	t ˆ |	 |d d …|	f ¡||	< �q$t||ƒ t ˆ dˆ  g¡‰ tjˆ |dd�}t |jdd … ˆ j ¡}t|jd ƒD ]F}	tˆ jd ƒD ]0}
t ˆ |
 |d d …|	f ¡||	|
d d …f< �q²�q t||ƒ d S )Nr   F)Ztensorr   )r   r   )r   r   )rP   rP   )rP   r   c                    s   g | ]}ˆ | ‘qS r   r   rQ   r   r   r   rS   µ   rT   z8TestEvaluation.test_polyvalfromroots.<locals>.<listcomp>)r   r   r   rP   r   rU   )é   r   iðÿÿÿéþÿÿÿr   rO   r   éûÿÿÿ)r\   T)r   Ú
ValueErrorr
   Zpolyvalfromrootsr   r\   r   r^   r3   Úonesr]   r2   r   r4   Ú	polyrootsr[   rG   ÚrandomÚrandintÚemptyÚvstack)r#   rb   r8   r;   r<   rc   ZptestÚrZrshapeÚiiZjjr   r   r   Útest_polyvalfromroots¡   sZ    
ÿ




ÿ$
2z$TestEvaluation.test_polyvalfromrootsc           
      C   s„   | j \}}}| j\}}}ttdtj||d d… | jƒ || }t ||| j¡}t||ƒ t 	d¡}	t |	|	| j¡}t
|jdkƒ d S ©NZincompatibler   ©r   rP   )r   rb   r	   rh   r
   Ú	polyval2dÚc2dr   r3   ri   r   r^   ©
r#   Úx1Úx2Úx3Úy1Úy2Zy3r;   r<   Úzr   r   r   Útest_polyval2dá   s    ÿ

zTestEvaluation.test_polyval2dc           
   	   C   sŽ   | j \}}}| j\}}}ttdtj|||d d… | jƒ || | }t |||| j¡}t||ƒ t 	d¡}	t |	|	|	| j¡}t
|jdkƒ d S rr   )r   rb   r	   rh   r
   Ú	polyval3dÚc3dr   r3   ri   r   r^   rv   r   r   r   Útest_polyval3dó   s    ÿ

zTestEvaluation.test_polyval3dc           
      C   sl   | j \}}}| j\}}}t d||¡}t ||| j¡}t||ƒ t d¡}	t |	|	| j¡}t	|j
dkƒ d S )NrM   rs   )r   rP   r   rP   )r   rb   r3   Úeinsumr
   Z
polygrid2dru   r   ri   r   r^   rv   r   r   r   Útest_polygrid2d  s    

zTestEvaluation.test_polygrid2dc           
      C   sr   | j \}}}| j\}}}t d|||¡}t |||| j¡}t||ƒ t d¡}	t |	|	|	| j¡}t	|j
dkƒ d S )NrN   rs   )r   rP   r   rP   r   rP   )r   rb   r3   r�   r
   Z
polygrid3dr   r   ri   r   r^   rv   r   r   r   Útest_polygrid3d  s    

zTestEvaluation.test_polygrid3dN)r)   r*   r+   r3   rH   Zc1dr�   ru   r   rk   r   r
   r[   rb   rd   rq   r}   r€   r‚   rƒ   r   r   r   r   rK   s   s   $@rK   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestIntegralc              	   C   s:  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d� t ttjdgdgd� t ttjdgdd� ttƒ�  t ddgd¡ W d   ƒ n1 sª0    Y  td	d
ƒD ]8}dg|d	  dg }tjdg||d�}t|ddgƒ q¾td
ƒD ]\}|d }dg| dg }|gdg|  d| g }tj|d|gd�}tt	|ƒt	|ƒƒ �q td
ƒD ]D}|d }dg| dg }tj|d|gdd�}tt 
d|¡|ƒ �qftd
ƒD ]^}|d }dg| dg }|gdg|  d	| g }tj|d|gd	d�}tt	|ƒt	|ƒƒ �q´td
ƒD ]r}td	d
ƒD ]`}dg| dg }|d d … }t|ƒD ]}tj|dd�}�qRtj||d�}tt	|ƒt	|ƒƒ �q*�qtd
ƒD ]€}td	d
ƒD ]n}dg| dg }|d d … }t|ƒD ]}tj|d|gd�}�qÎtj||tt|ƒƒd�}tt	|ƒt	|ƒƒ �q¦�q˜td
ƒD ]„}td	d
ƒD ]r}dg| dg }|d d … }t|ƒD ]}tj|d|gdd�}�qXtj||tt|ƒƒdd�}tt	|ƒt	|ƒƒ �q0�q"td
ƒD ]„}td	d
ƒD ]r}dg| dg }|d d … }t|ƒD ]}tj|d|gd	d�}�qætj||tt|ƒƒd	d�}tt	|ƒt	|ƒƒ �q¾�q°d S )Nr   ç      à?r   r   )Úlbnd)Úscl©ÚaxisrL   r   r   )ÚmÚk)rŠ   r‹   r†   )rŠ   r‹   r‡   ©rŠ   )r   Ú	TypeErrorr
   Úpolyintrh   r   ÚDeprecationWarningr2   r   r   r[   Úlist)r#   r8   r‹   r<   r‡   Zpolr;   r9   r   r   r   Útest_polyint$  sz    
.zTestIntegral.test_polyintc                 C   sš   t j d¡}t  dd„ |jD ƒ¡j}tj|dd�}t||ƒ t  dd„ |D ƒ¡}tj|dd�}t||ƒ t  dd„ |D ƒ¡}tj|d	dd
�}t||ƒ d S )N©rP   r   c                 S   s   g | ]}t  |¡‘qS r   ©r
   rŽ   ©rR   rI   r   r   r   rS   x  rT   z2TestIntegral.test_polyint_axis.<locals>.<listcomp>r   rˆ   c                 S   s   g | ]}t  |¡‘qS r   r“   r”   r   r   r   rS   |  rT   r   c                 S   s   g | ]}t j|d d�‘qS )rP   )r‹   r“   r”   r   r   r   rS   €  rT   rP   )r‹   r‰   )r3   rk   rn   ÚTr
   rŽ   r   ©r#   ru   r;   r<   r   r   r   Útest_polyint_axist  s    

zTestIntegral.test_polyint_axisN)r)   r*   r+   r‘   r—   r   r   r   r   r„   "  s   Pr„   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestDerivativec                 C   s  t ttjdgdƒ t ttjdgdƒ tdƒD ]4}dg| dg }tj|dd�}tt|ƒt|ƒƒ q,tdƒD ]N}tddƒD ]>}dg| dg }tjtj||d�|d�}t	t|ƒt|ƒƒ qxqjtdƒD ]R}tddƒD ]B}dg| dg }tjtj||dd�|dd�}t	t|ƒt|ƒƒ qÐqÂd S )	Nr   r…   r   r   r   rŒ   r   )rŠ   r‡   )
r   r�   r
   Úpolyderrh   r2   r   r   rŽ   r   )r#   r8   r;   r<   r9   r   r   r   Útest_polyder‡  s     zTestDerivative.test_polyderc                 C   sl   t j d¡}t  dd„ |jD ƒ¡j}tj|dd�}t||ƒ t  dd„ |D ƒ¡}tj|dd�}t||ƒ d S )Nr’   c                 S   s   g | ]}t  |¡‘qS r   ©r
   r™   r”   r   r   r   rS   ¤  rT   z4TestDerivative.test_polyder_axis.<locals>.<listcomp>r   rˆ   c                 S   s   g | ]}t  |¡‘qS r   r›   r”   r   r   r   rS   ¨  rT   r   )r3   rk   rn   r•   r
   r™   r   r–   r   r   r   Útest_polyder_axis   s    
z TestDerivative.test_polyder_axisN)r)   r*   r+   rš   rœ   r   r   r   r   r˜   …  s   r˜   c                   @   s@   e Zd Zej d¡d d Zdd„ Zdd„ Zdd	„ Zd
d„ Z	dS )Ú
TestVanderrO   r   r   c                 C   sÎ   t  d¡}t |d¡}t|jdkƒ tdƒD ].}dg| dg }t|d|f t ||¡ƒ q,t  	ddgddgdd	gg¡}t |d¡}t|jd
kƒ tdƒD ].}dg| dg }t|d|f t ||¡ƒ qšd S )NrP   r’   r   r   r   .r   r   é   )rP   r   r   )
r3   rG   r
   Ú
polyvanderr   r^   r2   r   r[   rH   )r#   r   Úvr8   Úcoefr   r   r   Útest_polyvander±  s    
zTestVander.test_polyvanderc                 C   sx   | j \}}}tj d¡}t ||ddg¡}t |||¡}t ||j¡}t||ƒ t |g|gddg¡}t	|j
dkƒ d S )Nrs   r   r   )r   r   rž   )r   r3   rk   r
   Zpolyvander2drt   ÚdotÚflatr   r   r^   ©r#   rw   rx   ry   rI   Zvanr;   r<   r   r   r   Útest_polyvander2dÂ  s    
zTestVander.test_polyvander2dc                 C   s€   | j \}}}tj d¡}t |||g d¢¡}t ||||¡}t ||j¡}t||ƒ t |g|g|gg d¢¡}t	|j
dkƒ d S )NrZ   rV   )r   r   é   )r   r3   rk   r
   Zpolyvander3dr~   r£   r¤   r   r   r^   r¥   r   r   r   Útest_polyvander3dÏ  s    
zTestVander.test_polyvander3dc                 C   s   t  d¡}tttj|dƒ d S )NrP   r   )r3   rG   r   rh   r
   rŸ   )r#   r   r   r   r   Útest_polyvandernegdegÜ  s    
z TestVander.test_polyvandernegdegN)
r)   r*   r+   r3   rk   r   r¢   r¦   r¨   r©   r   r   r   r   r�   ­  s
   r�   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestCompanionc                 C   s"   t ttjg ƒ t ttjdgƒ d S r&   )r   rh   r
   Úpolycompanionr"   r   r   r   Útest_raisesã  s    zTestCompanion.test_raisesc                 C   s<   t ddƒD ],}dg| dg }tt |¡j||fkƒ q
d S )Nr   r   r   )r2   r   r
   r«   r^   )r#   r8   r¡   r   r   r   Útest_dimensionsç  s    zTestCompanion.test_dimensionsc                 C   s   t t ddg¡d dkƒ d S )Nr   r   )r   r   ç      à¿)r   r
   r«   r"   r   r   r   Útest_linear_rootì  s    zTestCompanion.test_linear_rootN)r)   r*   r+   r¬   r­   r¯   r   r   r   r   rª   á  s   rª   c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestMiscc              	   C   sˆ   t  g ¡}tt|ƒdgƒ tddƒD ]^}t t tj dd| d ¡dd d… ¡}t	| }t  |¡d|d   }tt|ƒt|ƒƒ q$d S )Nr   r   r   r   )
r
   Úpolyfromrootsr   r   r2   r3   Úcosr]   ÚpiÚTlist)r#   r<   r8   Úrootsr;   r   r   r   Útest_polyfromrootsò  s    
*zTestMisc.test_polyfromrootsc                 C   sl   t t dg¡g ƒ t t ddg¡dgƒ tddƒD ]4}t dd|¡}t t |¡¡}t t|ƒt|ƒƒ q2d S )Nr   r   r®   r   r   )r   r
   rj   r2   r3   r]   r±   r   )r#   r8   r;   r<   r   r   r   Útest_polyrootsû  s    zTestMisc.test_polyrootsc                 C   sÐ  dd„ }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d	� t ttjdgdgdddgd	� 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 dd¡}||ƒ}t ||d¡}tt|ƒdƒ t	t 
||¡|ƒ t ||g d¢¡}tt|ƒdƒ t	t 
||¡|ƒ t ||d¡}tt|ƒdƒ t	t 
||¡|ƒ t ||g d¢¡}tt|ƒdƒ t	t 
||¡|ƒ t |t ||g¡jd¡}t	|t ||g¡jƒ t |t ||g¡jg d¢¡}t	|t ||g¡jƒ t |¡}| ¡ }	d|dd d…< d|	dd d…< tj||	d|d	�}
t	|
|ƒ tj||	g d¢|d	�}
t	|
|ƒ tj|t |	|	g¡jd|d	�}t	|t ||g¡jƒ tj|t |	|	g¡jg d¢|d	�}t	|t ||g¡jƒ g d¢}t	t ||d¡ddgƒ t	t ||ddg¡ddgƒ t dd¡}||ƒ}t ||d¡}t	t 
||¡|ƒ t ||g d¢¡}t	t 
||¡|ƒ t	||ƒ d S )Nc                 S   s   | | d  | d  S )Nr   r   r   r   r   r   r   Úf  s    z TestMisc.test_polyfit.<locals>.fc                 S   s   | d | d  d S )Nr   r   r   r   r   r   r   r   Úf2  s    z!TestMisc.test_polyfit.<locals>.f2r   r   r   r   )Úw)r   r   rž   rP   r   )r   r   r   rP   r   )r   r   r   rP   r   )r   y              ð?r   y       €      ð¿)r   r   r   )r   rh   r
   Zpolyfitr�   r3   r]   r   Úlenr   r[   rH   r•   Z
zeros_likeÚcopy)r#   r¸   r¹   r   rb   Zcoef3Zcoef4Zcoef2drº   ZywZwcoef3Zwcoef2dZcoef1Zcoef2r   r   r   Útest_polyfit  sj    


"zTestMisc.test_polyfitc                 C   sb   g d¢}t ttj|dƒ tt |¡|d d… ƒ tt |d¡|d d… ƒ tt |d¡dgƒ d S )N)r   r   r   r   r   r   r   r   r   )r   rh   r
   r   r   )r#   r¡   r   r   r   Útest_polytrimI  s
    zTestMisc.test_polytrimc                 C   s   t t dd¡ddgƒ d S )NrP   r   ©r   r
   Zpolyliner"   r   r   r   Útest_polylineT  s    zTestMisc.test_polylinec                 C   s   t t dd¡dgƒ d S )NrP   r   r¿   r"   r   r   r   Útest_polyline_zeroW  s    zTestMisc.test_polyline_zeroN)	r)   r*   r+   r¶   r·   r½   r¾   rÀ   rÁ   r   r   r   r   r°   ð  s   	Fr°   )$Ú__doc__Ú	functoolsr   Únumpyr3   Znumpy.polynomial.polynomialZ
polynomialr
   Znumpy.testingr   r   r   r   r   r   r	   r   ZT0ZT1ZT2ZT3ZT4ZT5ZT6ZT7ZT8ZT9r´   r!   r,   rK   r„   r˜   r�   rª   r°   r   r   r   r   Ú<module>   s2   $F 0c(4