o
    Ô­j›G  ã                   @   s¸  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d„ eD ƒƒZejeed	�d
d„ ƒZejjZdKdd„ZeZeZdd„ Zdd„ Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%dd„ Z&dd „ Z'd!d"„ Z(d#d$„ Z)d%d&„ Z*d'd(„ Z+d)d*„ Z,d+d,„ Z-d-d.„ Z.d/d0„ Z/d1d2„ Z0d3d4„ Z1d5d6„ Z2d7d8„ Z3d9d:„ Z4d;d<„ Z5d=d>„ Z6d?d@„ Z7dAdB„ Z8dCdD„ Z9dEdF„ Z:dGdH„ Z;G dIdJ„ dJƒZ<dS )Lz€Test 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                 c   s   � | ]}|j V  qd S ©N)Ú__name__)Ú.0Úcls© r   ú`/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/polynomial/tests/test_classes.pyÚ	<genexpr>   s   € r   )ÚparamsÚidsc                 C   s   | j S r   )Úparam)Úrequestr   r   r   ÚPoly   s   r   Ú c                 C   sh   z t t | j|jk¡ƒ t t | j|jk¡ƒ t| j|jƒ W d S  ty3   d| › d|› �}t|ƒ‚w )NzResult: z	
Target: )r   ÚnpÚallÚdomainÚwindowr	   ÚcoefÚAssertionError)Úp1Úp2Úmsgr   r   r   Úassert_poly_almost_equal&   s   þr$   c           
      C   sª   t  ddd¡}tdƒ}| jtdƒd  }| jtdƒd  }| |||d�}|jtdƒd  }|jtdƒd  }|j|||d�}	t|	j|ƒ t|	j|ƒ t|	|ƒ||ƒƒ d S )	Nr   é   é
   ©é   ©é   ç      Ð?©r   r   )Úkindr   r   )r   ÚlinspaceÚrandomr   r   Úconvertr	   ©
ÚPoly1ÚPoly2Úxr   Úd1Úw1r!   Úd2Úw2r"   r   r   r   Útest_conversion8   ó   r9   c           
      C   sª   t  ddd¡}tdƒ}| jtdƒd  }| jtdƒd  }| |||d�}|jtdƒd  }|jtdƒd  }|j|||d�}	t|	j|ƒ t|	j|ƒ t|	|ƒ||ƒƒ d S )Nr   r%   r&   r'   r)   r+   r,   )r   r.   r/   r   r   Úcastr	   r1   r   r   r   Ú	test_castI   r:   r<   c                 C   sr   | j tdƒd  }| jtdƒd  }t |d |d d¡}| j||d�}t|j |ƒ t|j|ƒ t||ƒ|ƒ d S )Nr)   r+   r   r%   é   r,   )r   r/   r   r   r.   Úidentityr   r	   )r   ÚdÚwr4   Úpr   r   r   Útest_identity_   s   rB   c                 C   sh   | j tdƒd  }| jtdƒd  }| jd||d�}t|j |ƒ t|j|ƒ t|jdgd dg ƒ d S )Nr)   r+   é   r,   r   r%   )r   r/   r   Úbasisr   r   ©r   r?   r@   rA   r   r   r   Ú
test_basisi   s   rF   c                 C   s¤   | j tdƒd  }| jtdƒd  }tdƒ}| j|||d�}t| ¡ t|ƒƒ t|j |ƒ t|j|ƒ t||ƒdƒ tj }tj}tj	|||d�}t|j
d dƒ d S )Nr)   r+   )rC   r,   r   éÿÿÿÿr%   )r   r/   r   Ú	fromrootsr   ÚdegreeÚlenr	   r   r;   r   )r   r?   r@   Úrr!   ÚpdomÚpwinr"   r   r   r   Útest_fromrootsr   s   rN   c                 C   sd   g d¢}g d¢}t  t¡�}|  ||d¡ W d   ƒ n1 sw   Y  |d jjd dks0J ‚d S )N)ç        rO   ç      ð?)rP   g       @g      @r*   r   z!The fit may be poorly conditioned)ÚpytestÚwarnsr   ÚfitÚmessageÚargs)r   r4   ÚyÚrecordr   r   r   Útest_bad_conditioned_fit…   s   ÿrX   c                 C   sê  dd„ }t  dd¡}||ƒ}|  ||d¡}t|jddgƒ t||ƒ|ƒ t| ¡ dƒ | jtdƒd  }| jtdƒd  }| j||d||d�}t||ƒ|ƒ t|j|ƒ t|j|ƒ | j||g d¢||d�}t||ƒ|ƒ t|j|ƒ t|j|ƒ |  ||dg ¡}t|j| jƒ t|j| jƒ |  ||g d¢g ¡}t|j| jƒ t|j| jƒ t  	|¡}|t|j
ƒd  }d	|d d d
…< |  |d d d
… |d d d
… d¡}| j||d|d�}	| j||g d¢|d�}
t||ƒ|	|ƒƒ t|	|ƒ|
|ƒƒ d S )Nc                 S   s   | | d  | d  S ©Nr%   r*   r   )r4   r   r   r   Úf’   ó   ztest_fit.<locals>.fr   r(   r)   r+   r,   )r   r%   r*   r(   r%   r*   )r@   )r   r.   rS   r	   r   r   rI   r/   r   Ú
zeros_likeÚshape)r   rZ   r4   rV   rA   r?   r@   Úzr!   r"   Úp3r   r   r   Útest_fit�   s>   
"r`   c                 C   s¢   | g d¢ddgddgd�}| g d¢ddgddgd�}| g d¢ddgddgd�}| g d¢ddgddgd�}t ||kƒ t ||k ƒ t ||k ƒ t ||k ƒ d S ©N©r%   r*   r(   r   r%   r*   r(   r,   )r%   r%   r%   ©r   ©r   r!   r"   r_   Úp4r   r   r   Ú
test_equal¼   s   rf   c                 C   sž   | g d¢ddgddgd�}| g d¢ddgddgd�}| g d¢ddgddgd�}| g d¢ddgddgd�}t ||k ƒ t ||kƒ t ||kƒ t ||kƒ d S ra   rc   rd   r   r   r   Útest_not_equalÇ   s   rg   c                 C   s*  t tdƒd ƒ}t tdƒd ƒ}| |ƒ}| |ƒ}|| }t|| |ƒ t|| |ƒ t|| |ƒ t|t|ƒ |ƒ tt|ƒ| |ƒ t|t |¡ |ƒ tt |¡| |ƒ tttj	|| dg| j
d d�ƒ tttj	|| dg| jd d�ƒ | tu rˆtttj	|tdgƒƒ d S tttj	|tdgƒƒ d S ©N©é   ç      à?r'   r   r%   ©r   ©r   )Úlistr/   r$   Útupler   Úarrayr
   Ú	TypeErrorÚopÚaddr   r   r   r   ©r   Úc1Úc2r!   r"   r_   r   r   r   Útest_addÒ   s"     rw   c                 C   s2  t tdƒd ƒ}t tdƒd ƒ}| |ƒ}| |ƒ}|| }t|| | ƒ t|| |ƒ t|| | ƒ t|t|ƒ |ƒ tt|ƒ| | ƒ t|t |¡ |ƒ tt |¡| | ƒ tttj	|| dg| j
d d�ƒ tttj	|| dg| jd d�ƒ | tu rŒtttj	|tdgƒƒ d S tttj	|tdgƒƒ d S rh   )rn   r/   r$   ro   r   rp   r
   rq   rr   Úsubr   r   r   r   rt   r   r   r   Útest_subè   s"     ry   c                 C   sZ  t tdƒd ƒ}t tdƒd ƒ}| |ƒ}| |ƒ}|| }t|| |ƒ t|| |ƒ t|| |ƒ t|t|ƒ |ƒ tt|ƒ| |ƒ t|t |¡ |ƒ tt |¡| |ƒ t|d || dgƒ ƒ td| || dgƒ ƒ tttj	|| dg| j
d d�ƒ tttj	|| dg| jd d�ƒ | tu r tttj	|tdgƒƒ d S tttj	|tdgƒƒ d S )	Nri   rk   r'   r*   r   r%   rl   rm   )rn   r/   r$   ro   r   rp   r
   rq   rr   Úmulr   r   r   r   rt   r   r   r   Útest_mulþ   s&     r{   c           	      C   sv  t tdƒd ƒ}t tdƒd ƒ}t tdƒd ƒ}| |ƒ}| |ƒ}| |ƒ}|| | }t |jƒ}t|| |ƒ t|| |ƒ t|| |ƒ t|t|ƒ |ƒ tt|ƒ| |ƒ t|t |¡ |ƒ tt |¡| |ƒ td| | dgƒƒ t|d d| ƒ ttt	j
|| dg| jd d�ƒ ttt	j
|| dg| jd d	�ƒ | tu r®ttt	j
|tdgƒƒ d S ttt	j
|tdgƒƒ d S ©
Nri   rk   r'   r)   r*   r   r%   rl   rm   )rn   r/   r   r$   ro   r   rp   r
   rq   rr   Úfloordivr   r   r   r   ©	r   ru   rv   Úc3r!   r"   r_   re   Úc4r   r   r   Útest_floordiv  s4   
ÿÿr�   c                 C   s6  | g d¢ƒ}|d }t jD ]"}t|tƒrt|tƒrq|dƒ}tt ||¡|ƒ tt	tj||ƒ qt
tfD ]}|dƒ}tt ||¡|ƒ tt	tj||ƒ q4tfD ]}|ddƒ}tt ||¡|ƒ tt	tj||ƒ qOtƒ tƒ tƒ tƒ t  dg¡fD ]}tt	tj||ƒ tt	tj||ƒ qwtD ]}tt	tj||dƒƒ qŒd S )Nrb   rC   r   r%   )r   Ú
ScalarTypeÚ
issubclassr   Úboolr$   rr   Útruedivr
   rq   ÚintÚfloatÚcomplexro   rn   Údictrp   Úclasses)r   r!   r"   ÚstypeÚsÚptyper   r   r   Útest_truediv1  s,   


"ÿrŽ   c           	      C   sx  t tdƒd ƒ}t tdƒd ƒ}t tdƒd ƒ}| |ƒ}| |ƒ}| |ƒ}|| | }t |jƒ}t|| |ƒ t|| |ƒ t|| |ƒ t|t|ƒ |ƒ tt|ƒ| |ƒ t|t |¡ |ƒ tt |¡| |ƒ td| | dgƒƒ t|d | dgƒƒ ttt	j
|| dg| jd d�ƒ ttt	j
|| dg| jd d	�ƒ | tu r¯ttt	j
|tdgƒƒ d S ttt	j
|tdgƒƒ d S r|   )rn   r/   r   r$   ro   r   rp   r
   rq   rr   Úmodr   r   r   r   r~   r   r   r   Útest_modL  s,   
  r�   c                 C   s0  t tdƒd ƒ}t tdƒd ƒ}t tdƒd ƒ}| |ƒ}| |ƒ}| |ƒ}|| | }t |jƒ}t||ƒ\}	}
t|	|ƒ t|
|ƒ t||ƒ\}	}
t|	|ƒ t|
|ƒ t||ƒ\}	}
t|	|ƒ t|
|ƒ t|t|ƒƒ\}	}
t|	|ƒ t|
|ƒ tt|ƒ|ƒ\}	}
t|	|ƒ t|
|ƒ t|t |¡ƒ\}	}
t|	|ƒ t|
|ƒ tt |¡|ƒ\}	}
t|	|ƒ t|
|ƒ t|dƒ\}	}
t|	d| ƒ t|
| dgƒƒ td|ƒ\}	}
t|	| dgƒƒ t|
| dgƒƒ tt	t|| dg| j
d d�ƒ tt	t|| dg| jd d	�ƒ | tu �rtt	t|tdgƒƒ d S tt	t|tdgƒƒ d S r|   )rn   r/   r   Údivmodr$   ro   r   rp   r
   rq   r   r   r   r   )r   ru   rv   r   r!   r"   r_   re   r€   ÚquoÚremr   r   r   Útest_divmodg  sP   















r”   c                 C   sp   | j d d }| j}t |d |d d¡}t | j|||d� ¡ ¡}t||ƒ t |  |¡ ¡ ¡}t||ƒ d S )Ng      ô?r+   r   r%   rC   r,   )r   r   r   r.   ÚsortrH   Úrootsr	   )r   r?   r@   ÚtgtÚresr   r   r   Ú
test_roots”  s   
r™   c                 C   s   |   d¡}t| ¡ dƒ d S ©NrC   )rD   r   rI   ©r   rA   r   r   r   Útest_degreeŸ  s   
rœ   c                 C   s^   |   d¡}| ¡ }t||kƒ t||uƒ t|j|juƒ t|j|juƒ t|j|juƒ d S rš   )rD   Úcopyr   r   r   r   )r   r!   r"   r   r   r   Ú	test_copy¤  s   
rž   c                 C   sz  t }|  |g d¢ƒ¡}| | ¡ ¡}| | d¡¡}t||g d¢ƒƒ t||g d¢ƒƒ |  |g d¢ƒ¡}| |jdd�¡}| |jdddgd�¡}t||g d¢ƒƒ t||g d¢ƒƒ |  |g d¢ƒ¡}| |jdd	�¡}| |jddd	�¡}t||g d
¢ƒƒ t||g d¢ƒƒ d| j }| j|g d¢ƒ|d�}| | ¡ ¡}| | d¡¡}t||g d¢ƒƒ t||g d¢ƒƒ d S )N)r*   é   é   r*   )r   r*   r(   rj   )r   r   r%   r%   r%   r%   ©Úk)r%   r*   r(   rj   )r%   r%   r%   r%   r%   )Úlbnd)é÷ÿÿÿr*   r(   rj   )rŸ   r¤   r%   r%   r%   rl   )r   r;   Úintegr$   r   )r   ÚPÚp0r!   r"   r?   r   r   r   Ú
test_integ®  s,   
r¨   c                 C   sÚ   | j tdƒd  }| jtdƒd  }| g d¢||d�}|jdddgd�}|jddgd�}t| d¡j|jƒ t| d¡j|jƒ | g d¢ƒ}|jdddgd�}|jddgd�}t| d¡j|jƒ t| d¡j|jƒ d S )Nr)   r+   rb   r,   r*   r%   r¡   )r   r/   r   r¥   r	   Úderivr   )r   r?   r@   r!   r"   r_   r   r   r   Ú
test_derivË  s   rª   c                 C   sº   | j tdƒd  }| jtdƒd  }| g d¢||d�}t |d |d d¡}||ƒ}| d¡\}}t||ƒ t||ƒ t ddd¡}||ƒ}|jdddgd	�\}}t||ƒ t||ƒ d S )
Nr)   r+   rb   r,   r   r%   é   r*   rl   )r   r/   r   r   r.   r	   )r   r?   r@   rA   ÚxtgtÚytgtÚxresÚyresr   r   r   Útest_linspaceÝ  s   


r°   c                 C   sÈ   | j tdƒd  }| jtdƒd  }| dg||d�}| g d¢||d�}tdƒD ]}t|| |ƒ || }q'| dgƒ}| g d¢ƒ}tdƒD ]}t|| |ƒ || }qDtttj|dƒ tttj|dƒ d S )	Nr)   r+   r%   r,   rb   rC   g      ø?rG   )	r   r/   r   Úranger$   r
   Ú
ValueErrorrr   Úpow)r   r?   r@   r—   ÚtstÚir   r   r   Útest_powï  s   


r¶   c                 C   s\   t }| j}t |d |d d¡}|  |g d¢ƒ¡}d|dd|    }||ƒ}t||ƒ d S )Nr   r%   r=   rb   r*   r(   )r   r   r   r.   r;   r	   )r   r¦   r?   r4   rA   r—   r˜   r   r   r   Ú	test_call  s   r·   c                 C   s|   | 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 )Nrb   rk   rG   r(   r*   r%   r   )r
   r²   Úcutdegr   rJ   r›   r   r   r   Útest_cutdeg  ó   r¹   c                 C   s|   | 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 )Nrb   rk   r   rj   r(   r*   r%   )r
   r²   Útruncater   rJ   r›   r   r   r   Útest_truncate  rº   r¼   c                 C   s`   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*   gñhãˆµøä>r%   )r   Útrimr   )r   ÚcrA   r   r   r   Ú	test_trim"  s
   r¿   c                 C   s`   | j }| j}| dg||d�}tddg| ¡ ƒ d| d }| dg||d�}tddg| ¡ ƒ d S )Nr%   r,   r   r*   )r   r   r	   ÚmapparmsrE   r   r   r   Útest_mapparms*  s   rÁ   c                 C   s:   | g d¢ƒ}t  d¡}ttt j||ƒ ttt j||ƒ d S )Nrb   r(   )r   Úonesr
   rq   rs   )r   rA   r4   r   r   r   Útest_ufunc_override6  s   
rÃ   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestInterpolatec                 C   s   ||d  |d  S rY   r   )Úselfr4   r   r   r   rZ   D  r[   zTestInterpolate.fc                 C   s(   t ttj| jdƒ t ttj| jdƒ d S )NrG   g      $@)r
   r²   r   ÚinterpolaterZ   rq   )rÅ   r   r   r   Útest_raisesG  s   zTestInterpolate.test_raisesc                 C   s.   t ddƒD ]}tt | j|¡ ¡ |kƒ qd S )Nr%   rC   )r±   r   r   rÆ   rZ   rI   )rÅ   Údegr   r   r   Útest_dimensionsK  s   ÿzTestInterpolate.test_dimensionsc                 C   sn   dd„ }t  ddd¡}tddƒD ]$}td|d ƒD ]}tj||ddg|fd�}t||ƒ|||ƒdd	� qqd S )
Nc                 S   s   | | S r   r   )r4   rA   r   r   r   ÚpowxQ  s   z0TestInterpolate.test_approximation.<locals>.powxr   r*   r&   r%   )r   rU   r=   )Údecimal)r   r.   r±   r   rÆ   r	   )rÅ   rÊ   r4   rÈ   ÚtrA   r   r   r   Útest_approximationO  s   þÿz"TestInterpolate.test_approximationN)r   Ú
__module__Ú__qualname__rZ   rÇ   rÉ   rÍ   r   r   r   r   rÄ   B  s
    rÄ   )r   )=Ú__doc__Úoperatorrr   Únumbersr   rQ   Únumpyr   Únumpy.polynomialr   r   r   r   r   r   Únumpy.testingr	   r
   r   r   Únumpy.polynomial.polyutilsr   rŠ   ro   ÚclassidsÚfixturer   r/   r$   r2   r3   r9   r<   rB   rF   rN   rX   r`   rf   rg   rw   ry   r{   r�   rŽ   r�   r”   r™   rœ   rž   r¨   rª   r°   r¶   r·   r¹   r¼   r¿   rÁ   rÃ   rÄ   r   r   r   r   Ú<module>   s`     þ


	,-


