o
    Ô­j1P  ã                
   @   sD  d Z ddlmZ ddlZddlm  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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)Údeepcopy)Úassert_almost_equalÚassert_raisesÚassert_equalÚassert_Úassert_warnsÚassert_array_equalÚassert_raises_regexc                 C   s   t j| dd�S )Ng�íµ ÷Æ°>)Útol)ÚpolyÚpolytrim©Úx© r   úc/var/www/html/CropPilot/venv/lib/python3.10/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                   @   ó<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestConstantsc                 C   ó   t tjddgƒ d S )Nr   r   )r   r   Ú
polydomain©Úselfr   r   r   Útest_polydomain"   ó   zTestConstants.test_polydomainc                 C   ó   t tjdgƒ d S )Nr   )r   r   Úpolyzeror'   r   r   r   Útest_polyzero%   ó   zTestConstants.test_polyzeroc                 C   r+   ©Nr   )r   r   Úpolyoner'   r   r   r   Útest_polyone(   r.   zTestConstants.test_polyonec                 C   r%   )Nr   r   )r   r   Úpolyxr'   r   r   r   Ú
test_polyx+   r*   zTestConstants.test_polyxc                 C   s$   t  g d¢¡}t|ƒ}t||ƒ d S ©N©r   r   é   )r   Ú
Polynomialr   r   ©r(   r   Úyr   r   r   Ú	test_copy.   s   zTestConstants.test_copyc                 C   s,   t  g d¢¡}t t |¡¡}t||ƒ d S r4   )r   r7   ÚpickleÚloadsÚdumpsr   r8   r   r   r   Útest_pickle3   s   zTestConstants.test_pickleN)	Ú__name__Ú
__module__Ú__qualname__r)   r-   r1   r3   r:   r>   r   r   r   r   r$       s    r$   c                   @   r#   )ÚTestArithmeticc                 C   sž   t dƒD ]H}t dƒD ]A}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:   ó   $úÿzTestArithmetic.test_polyaddc                 C   sž   t dƒD ]H}t dƒD ]A}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 rC   )rH   rI   rJ   rK   r   Úpolysubr   r   rM   r   r   r   Útest_polysubD   rT   zTestArithmetic.test_polysubc                 C   sr   t t dg¡dgƒ t t dg¡ddgƒ tddƒD ]}dg| dg }dg|d  dg }t t |¡|ƒ qd S )Nr   r   r   )r   r   ÚpolymulxrH   )r(   rN   ÚserrQ   r   r   r   Útest_polymulxN   s   ýzTestArithmetic.test_polymulxc                 C   s�   t dƒD ]A}t dƒD ]:}d|› d|› �}t || d ¡}|||   d7  < t dg| dg dg| dg ¡}tt|ƒt|ƒ|d� q
qd S rC   )rH   rI   rJ   r   Úpolymulr   r   rM   r   r   r   Útest_polymulV   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 ]B}tdƒD ];}d|› d|› �}dg| ddg }dg| ddg }t ||¡}t ||¡\}}t t ||¡|¡}	t|	||d	� q7q1d S )
Nr   r   r   )r   r   ))r   r   r   r   rD   rE   rF   )r   ÚZeroDivisionErrorr   Úpolydivr   rH   rL   rZ   )
r(   ÚquoÚremrN   rO   rP   ÚciÚcjrQ   rR   r   r   r   Útest_polydiv_   s    ùÿzTestArithmetic.test_polydivc                 C   s|   t dƒD ]7}t dƒD ]0}d|› d|› �}t |d ¡}ttj|g| t dg¡ƒ}t ||¡}tt	|ƒt	|ƒ|d� q
qd S )Nr   rD   rE   r   rF   )
rH   rI   Úaranger   r   rZ   ÚarrayÚpolypowr   r   )r(   rN   rO   rP   ÚcrQ   rR   r   r   r   Útest_polypowt   s   ûÿzTestArithmetic.test_polypowN)	r?   r@   rA   rS   rV   rY   r[   rb   rg   r   r   r   r   rB   8   s    

	rB   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©r6   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	|ƒ qQg 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                    ó   g | ]}ˆ | ‘qS r   r   ©Ú.0rN   r   r   r   Ú
<listcomp>Ž   ó    z/TestEvaluation.test_polyval.<locals>.<listcomp>r   r   )r   r   r   r   r6   ©r   r   r   )FTFr5   )Úmask)é   r   r6   c                   @   s   e Zd ZdS )z&TestEvaluation.test_polyval.<locals>.CN)r?   r@   rA   r   r   r   r   ÚC¦   s    ru   ©r   r6   r   )r   r   ÚpolyvalÚsizerI   ÚlinspacerH   r   rJ   ÚshapeÚmard   r	   rs   ÚndarrayÚviewÚtype)
r(   r9   rN   rQ   rR   Údimsrs   Úmxru   Ú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||ƒ qmˆ ˆ 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 ]#}	tˆ jd ƒD ]}
t ˆ |
 |d d …|	f ¡||	|
d d …f< �qX�qOt||ƒ d S )Nr   F)Útensorr   )r   r   )r   r   )r6   r6   )r6   r   c                    rm   r   r   rn   r   r   r   rp   À   rq   z8TestEvaluation.test_polyvalfromroots.<locals>.<listcomp>)r   r   r   r6   r   rr   )é   r   iðÿÿÿéþÿÿÿr   rl   r   éûÿÿÿ)rx   T)r   Ú
ValueErrorr   Úpolyvalfromrootsr   rx   r   rz   rI   Úonesry   rH   r   rJ   Ú	polyrootsrw   rc   ÚrandomÚrandintÚemptyÚvstack)r(   r9   rN   rQ   rR   r   ÚptestÚrÚrshapeÚiiÚjjr   r   r   Útest_polyvalfromroots¬   s\   
ÿ




ÿ$
.ÿ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 ©NÚincompatibler   ©r   r6   )r   r9   r
   r‡   r   Ú	polyval2dÚc2dr   rI   r‰   r   rz   ©
r(   Úx1Úx2Úx3Úy1Úy2Úy3rQ   rR   Ú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 r•   )r   r9   r
   r‡   r   Ú	polyval3dÚc3dr   rI   r‰   r   rz   rš   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 )Nrj   r—   )r   r6   r   r6   )r   r9   rI   Úeinsumr   Ú
polygrid2dr™   r   r‰   r   rz   rš   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 )Nrk   r—   )r   r6   r   r6   r   r6   )r   r9   rI   r¦   r   Ú
polygrid3dr¤   r   r‰   r   rz   rš   r   r   r   Útest_polygrid3d  s   

zTestEvaluation.test_polygrid3dN)r?   r@   rA   rI   rd   Úc1dr¦   r™   r¤   r‹   r   r   rw   r9   r‚   r”   r¢   r¥   r¨   rª   r   r   r   r   rh   ~   s    $@rh   c                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚTestIntegralc              	   C   s4  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 sUw   Y  td	d
ƒD ]}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g| dg }tj|d|gdd�}tt 
d|¡|ƒ q²t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 ]9}td	d
ƒD ]0}dg| dg }|d d … }t|ƒD ]
}tj|dd�}�q&tj||d�}tt	|ƒt	|ƒƒ �q�qtd
ƒD ]@}td	d
ƒD ]7}dg| dg }|d d … }t|ƒD ]}tj|d|gd�}�qdtj||tt|ƒƒd�}tt	|ƒt	|ƒƒ �qP�qItd
ƒD ]B}td	d
ƒD ]9}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Žtd
ƒD ]B}td	d
ƒD ]9}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©Úaxisri   r   r   )ÚmÚk)r³   r´   r¯   )r³   r´   r°   ©r³   )r   Ú	TypeErrorr   Úpolyintr‡   r   ÚDeprecationWarningrH   r   r   rw   Úlist)r(   rN   r´   rR   r°   ÚpolrQ   rO   r   r   r   Útest_polyint/  s†   
ÿú	ú	ú	úÿ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©r6   r   c                 S   ó   g | ]}t  |¡‘qS r   ©r   r·   ©ro   rf   r   r   r   rp   ƒ  ó    z2TestIntegral.test_polyint_axis.<locals>.<listcomp>r   r±   c                 S   r½   r   r¾   r¿   r   r   r   rp   ‡  rÀ   r   c                 S   s   g | ]	}t j|d d�‘qS )r6   )r´   r¾   r¿   r   r   r   rp   ‹  s    r6   )r´   r²   )rI   r‹   rŽ   ÚTr   r·   r   ©r(   r™   rQ   rR   r   r   r   Útest_polyint_axis  s   

zTestIntegral.test_polyint_axisN)r?   r@   rA   r»   rÃ   r   r   r   r   r­   -  s    Pr­   c                   @   r¬   )ÚTestDerivativec                 C   s  t ttjdgdƒ t ttjdgdƒ tdƒD ]}dg| dg }tj|dd�}tt|ƒt|ƒƒ qtdƒD ]'}tddƒD ]}dg| dg }tjtj||d�|d�}t	t|ƒt|ƒƒ q<q5tdƒD ])}tddƒD ]!}dg| dg }tjtj||dd�|dd�}t	t|ƒt|ƒƒ qhqad S )	Nr   r®   r   r   r   rµ   r   )r³   r°   )
r   r¶   r   Úpolyderr‡   rH   r   r   r·   r   )r(   rN   rQ   rR   rO   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   r½   r   ©r   rÅ   r¿   r   r   r   rp   ¯  rÀ   z4TestDerivative.test_polyder_axis.<locals>.<listcomp>r   r±   c                 S   r½   r   rÇ   r¿   r   r   r   rp   ³  rÀ   r   )rI   r‹   rŽ   rÁ   r   rÅ   r   rÂ   r   r   r   Útest_polyder_axis«  s   
z TestDerivative.test_polyder_axisN)r?   r@   rA   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 )Ú
TestVanderrl   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 ||¡ƒ qMd S )Nr6   r¼   r   r   r   .r   r   é   )r6   r   r   )
rI   rc   r   Ú
polyvanderr   rz   rH   r   rw   rd   )r(   r   ÚvrN   Ú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 )Nr—   r   r   )r   r   rÊ   )r   rI   r‹   r   Úpolyvander2dr˜   ÚdotÚflatr   r   rz   ©r(   r›   rœ   r�   rf   ÚvanrQ   rR   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 )Nrv   r5   )r   r   é   )r   rI   r‹   r   Úpolyvander3dr£   rÐ   rÑ   r   r   rz   rÒ   r   r   r   Útest_polyvander3dÚ  s   
zTestVander.test_polyvander3dc                 C   s   t  d¡}tttj|dƒ d S )Nr6   r   )rI   rc   r   r‡   r   rË   )r(   r   r   r   r   Útest_polyvandernegdegç  s   
z TestVander.test_polyvandernegdegN)
r?   r@   rA   rI   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S )ÚTestCompanionc                 C   s"   t ttjg ƒ t ttjdgƒ d S r/   )r   r‡   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   )rH   r   r   rÚ   rz   )r(   rN   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@   rA   rÛ   rÜ   rÞ   r   r   r   r   rÙ   ì  s    rÙ   c                   @   r#   )Ú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   rH   rI   Úcosry   ÚpiÚTlist)r(   rR   rN   ÚrootsrQ   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 ]}t dd|¡}t t |¡¡}t t|ƒt|ƒƒ qd S )Nr   r   rÝ   r   r   )r   r   rŠ   rH   rI   ry   rà   r   )r(   rN   rQ   rR   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  r*   z TestMisc.test_polyfit.<locals>.fc                 S   s   | d | d  d S )Nr   r   r   r   r   r   r   r   Úf2  r*   z!TestMisc.test_polyfit.<locals>.f2r   r   r   r   )Úw)r   r   rÊ   r6   r   )r   r   r   r6   r   )r   r   r   r6   r   )r   y              ð?r   y       €      ð¿)r   r   r   )r   r‡   r   Úpolyfitr¶   rI   ry   r   Úlenr   rw   rd   rÁ   Ú
zeros_likeÚcopy)r(   rç   rè   r   r9   Úcoef3Úcoef4Úcoef2dré   ÚywÚwcoef3Úwcoef2dÚcoef1Ú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   r‡   r   r   r   )r(   rÍ   r   r   r   Útest_polytrimT  s
   zTestMisc.test_polytrimc                 C   s   t t dd¡ddgƒ d S )Nr6   r   ©r   r   Úpolyliner'   r   r   r   Útest_polyline_  s   zTestMisc.test_polylinec                 C   s   t t dd¡dgƒ d S )Nr6   r   rø   r'   r   r   r   Útest_polyline_zerob  s   zTestMisc.test_polyline_zeroN)	r?   r@   rA   rå   ræ   rö   r÷   rú   rû   r   r   r   r   rß   û  s    	Frß   )'Ú__doc__Ú	functoolsr   ÚnumpyrI   Únumpy.polynomial.polynomialÚ
polynomialr   r;   rí   r   Únumpy.testingr   r   r   r   r   r	   r
   r   ÚT0ÚT1ÚT2ÚT3ÚT4ÚT5ÚT6ÚT7ÚT8ÚT9rã   r$   rB   rh   r­   rÄ   rÉ   rÙ   rß   r   r   r   r   Ú<module>   s8    $F 0c(4