U
    ÉZj›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   úf/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/numpy/polynomial/tests/test_classes.pyÚ	<genexpr>   s     r   )ÚparamsZidsc                 C   s   | j S r   )Úparam)Úrequestr   r   r   ÚPoly   s    r   Ú c                 C   sp   z>t t | j|jk¡ƒ t t | j|jk¡ƒ t| j|jƒ W n, tk
rj   d| › d|› �}t|ƒ‚Y nX d S )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   Zd1Zw1r    Zd2Zw2r!   r   r   r   Útest_conversion8   s    r4   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	   r0   r   r   r   Ú	test_castI   s    r6   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Úwr3   Úpr   r   r   Útest_identity_   s    r<   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   r9   r:   r;   r   r   r   Ú
test_basisi   s    r@   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*   )r=   r+   r   éÿÿÿÿr$   )r   r.   r   Ú	fromrootsr   ÚdegreeÚlenr	   r   r5   r   )r   r9   r:   Úrr    ZpdomZpwinr!   r   r   r   Útest_fromrootsr   s    rF   c              	   C   sT   dddg}dddg}t  t¡�}|  ||d¡ W 5 Q R X |d jjd dksPt‚d S )Ng        g      ð?g       @g      @r)   r   z!The fit may be poorly conditioned)ÚpytestZwarnsr   ÚfitÚmessageÚargsr   )r   r3   ÚyÚrecordr   r   r   Útest_bad_conditioned_fit…   s
    

rM   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||ddd	dg||d�}t||ƒ|ƒ t|j|ƒ t|j|ƒ |  ||dg ¡}t|j| jƒ t|j| jƒ |  ||ddd	dg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||ddd	dg|d
�}
t||ƒ|	|ƒƒ t|	|ƒ|
|ƒƒ d S )Nc                 S   s   | | d  | d  S ©Nr$   r)   r   )r3   r   r   r   Úf’   s    ztest_fit.<locals>.fr   r'   r(   r*   r+   r$   r)   )r:   )r   r-   rH   r	   r   r   rC   r.   r   Z
zeros_likeÚshape)r   rO   r3   rK   r;   r9   r:   Úzr    r!   Úp3r   r   r   Útest_fit�   s>    
"rS   c                 C   sª   | dddgddgddgd�}| dddgddgddgd�}| dddgddgddgd�}| dddgddgddgd�}t ||kƒ t ||k ƒ t ||k ƒ t ||k ƒ d S ©Nr$   r)   r'   r   r+   ©r   ©r   r    r!   rR   Úp4r   r   r   Ú
test_equal¼   s    rX   c                 C   s¦   | dddgddgddgd�}| dddgddgddgd�}| dddgddgddgd�}| dddgddgddgd�}t ||k ƒ t ||kƒ t ||kƒ t ||kƒ d S rT   rU   rV   r   r   r   Útest_not_equalÇ   s    rY   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k�rtttj	|tdgƒƒ n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!   rR   r   r   r   Útest_addÒ   s"      
ri   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k�rtttj	|tdgƒƒ ntttj	|tdgƒƒ d S rZ   )r`   r.   r#   ra   r   rb   r
   rc   rd   Úsubr   r   r   r   rf   r   r   r   Útest_subè   s"      
rk   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k�r@tttj	|tdgƒƒ ntttj	|tdgƒƒ d S )	Nr[   r]   r&   r)   r   r$   r^   r_   )r`   r.   r#   ra   r   rb   r
   rc   rd   Úmulr   r   r   r   rf   r   r   r   Útest_mulþ   s&      
rm   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k�r\ttt	j
|tdgƒƒ nttt	j
|tdgƒƒ d S ©
Nr[   r]   r&   r(   r)   r   r$   r^   r_   )r`   r.   r   r#   ra   r   rb   r
   rc   rd   Úfloordivr   r   r   r   ©	r   rg   rh   Úc3r    r!   rR   rW   Úc4r   r   r   Útest_floordiv  s@    
   ÿ   ÿ
rs   c                 C   s:  | dddgƒ}|d }t jD ]D}t|tƒrt|tƒr6q|dƒ}tt ||¡|ƒ tt	tj||ƒ qt
tfD ].}|dƒ}tt ||¡|ƒ tt	tj||ƒ qjtfD ]0}|ddƒ}tt ||¡|ƒ tt	tj||ƒ q tƒ tƒ tƒ tƒ t  dg¡fD ]$}tt	tj||ƒ tt	tj||ƒ qðtD ]}tt	tj||dƒƒ �qd S )Nr$   r)   r'   r=   r   )r   Z
ScalarTypeÚ
issubclassr   Úboolr#   rd   Útruedivr
   rc   ÚintÚfloatÚcomplexra   r`   Údictrb   Ú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k�r^ttt	j
|tdgƒƒ nttt	j
|tdgƒƒ d S rn   )r`   r.   r   r#   ra   r   rb   r
   rc   rd   Úmodr   r   r   r   rp   r   r   r   Útest_modL  s,    
  
r�   c                 C   s.  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k�rtt	t|tdgƒƒ ntt	t|tdgƒƒ d S rn   )r`   r.   r   Údivmodr#   ra   r   rb   r
   rc   r   r   r   r   )r   rg   rh   rq   r    r!   rR   rW   rr   Z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$   r=   r+   )r   r   r   r-   ÚsortrB   Úrootsr	   )r   r9   r:   ÚtgtÚresr   r   r   Ú
test_roots”  s    
r‰   c                 C   s   |   d¡}t| ¡ dƒ d S ©Nr=   )r>   r   rC   ©r   r;   r   r   r   Útest_degreeŸ  s    
rŒ   c                 C   s^   |   d¡}| ¡ }t||kƒ t||k	ƒ t|j|jk	ƒ t|j|jk	ƒ t|j|jk	ƒ d S rŠ   )r>   Úcopyr   r   r   r   )r   r    r!   r   r   r   Ú	test_copy¤  s    
rŽ   c                 C   sª  t }|  |dddgƒ¡}| | ¡ ¡}| | d¡¡}t||ddddgƒƒ t||dddddgƒƒ |  |dddgƒ¡}| |jdd�¡}| |jdddgd�¡}t||ddddgƒƒ t||dddddgƒƒ |  |dddgƒ¡}| |jdd	�¡}| |jddd	�¡}t||d
dddgƒƒ t||dd
dddgƒƒ d| j }| j|dddgƒ|d�}| | ¡ ¡}| | d¡¡}t||ddddgƒƒ t||dddddgƒƒ d S )Nr)   é   é   r   r'   r\   r$   ©Úk)Zlbndi÷ÿÿÿr^   )r   r5   Úintegr#   r   )r   ÚPÚp0r    r!   r9   r   r   r   Ú
test_integ®  s,    
r–   c                 C   sÞ   | j tdƒd  }| jtdƒd  }| dddg||d�}|jdddgd�}|jddgd�}t| d¡j|jƒ t| d¡j|jƒ | dddgƒ}|jdddgd�}|jddgd�}t| d¡j|jƒ t| d¡j|jƒ d S )Nr(   r*   r$   r)   r'   r+   r‘   )r   r.   r   r“   r	   Zderivr   )r   r9   r:   r    r!   rR   r   r   r   Ú
test_derivË  s    r—   c                 C   s¼   | j tdƒd  }| jtdƒd  }| dddg||d�}t |d |d d¡}||ƒ}| d¡\}}t||ƒ t||ƒ t ddd¡}||ƒ}|jdddgd	�\}}t||ƒ t||ƒ d S )
Nr(   r*   r$   r)   r'   r+   r   é   r^   )r   r.   r   r   r-   r	   )r   r9   r:   r;   ZxtgtZytgtZxresZyresr   r   r   Útest_linspaceÝ  s    


r™   c                 C   sÌ   | j tdƒd  }| jtdƒd  }| dg||d�}| dddg||d�}tdƒD ]}t|| |ƒ || }qP| dgƒ}| dddgƒ}tdƒD ]}t|| |ƒ || }qŒtttj|dƒ tttj|d	ƒ d S )
Nr(   r*   r$   r+   r)   r'   r=   g      ø?rA   )	r   r.   r   Úranger#   r
   Ú
ValueErrorrd   Úpow)r   r9   r:   r‡   ZtstÚir   r   r   Útest_powï  s    


rž   c                 C   s^   t }| j}t |d |d d¡}|  |dddgƒ¡}d|dd|    }||ƒ}t||ƒ d S )Nr   r$   r7   r)   r'   )r   r   r   r-   r5   r	   )r   r”   r9   r3   r;   r‡   rˆ   r   r   r   Ú	test_call  s    rŸ   c                 C   s~   | dddgƒ}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 )Nr$   r)   r'   r]   rA   r   )r
   r›   Zcutdegr   rD   r‹   r   r   r   Útest_cutdeg  s    r    c                 C   s~   | dddgƒ}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 )Nr$   r)   r'   r]   r   r\   )r
   r›   Útruncater   rD   r‹   r   r   r   Útest_truncate  s    r¢   c                 C   sd   ddddg}| |ƒ}t | ¡ j|d d… ƒ t | d¡j|d d… ƒ t | d¡j|d d… ƒ d S )	Nr$   g�íµ ÷Æ°>gê-�™—q=r   r'   g»½×Ùß|Û=r)   gñhãˆµøä>)r   Ztrimr   )r   Úcr;   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	   Zmapparmsr?   r   r   r   Útest_mapparms*  s    r¥   c                 C   s<   | dddgƒ}t  d¡}ttt j||ƒ ttt j||ƒ d S )Nr$   r)   r'   )r   Zonesr
   rc   re   )r   r;   r3   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 rN   r   )Úselfr3   r   r   r   rO   D  s    zTestInterpolate.fc                 C   s(   t ttj| jdƒ t ttj| jdƒ d S )NrA   g      $@)r
   r›   r   ÚinterpolaterO   rc   )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$   r=   )rš   r   r   r©   rO   rC   )r¨   Údegr   r   r   Útest_dimensionsK  s    zTestInterpolate.test_dimensionsc                 C   sn   dd„ }t  ddd¡}tddƒD ]H}td|d ƒD ]4}tj||ddg|fd�}t||ƒ|||ƒdd	� q2q d S )
Nc                 S   s   | | S r   r   )r3   r;   r   r   r   ÚpowxQ  s    z0TestInterpolate.test_approximation.<locals>.powxr   r)   r%   r$   )r   rJ   r7   )Údecimal)r   r-   rš   r   r©   r	   )r¨   r­   r3   r«   Útr;   r   r   r   Útest_approximationO  s    z"TestInterpolate.test_approximationN)r   Ú
__module__Ú__qualname__rO   rª   r¬   r°   r   r   r   r   r§   B  s   r§   )r   )=Ú__doc__Úoperatorrd   Únumbersr   rG   Únumpyr   Znumpy.polynomialr   r   r   r   r   r   Znumpy.testingr	   r
   r   r   Znumpy.polynomial.polyutilsr   r{   ra   ZclassidsZfixturer   r.   r#   r1   r2   r4   r6   r<   r@   rF   rM   rS   rX   rY   ri   rk   rm   rs   r   r�   r„   r‰   rŒ   rŽ   r–   r—   r™   rž   rŸ   r    r¢   r¤   r¥   r¦   r§   r   r   r   r   Ú<module>   sf        þ


	,-


