U
    ÉZjgD  ã                	   @   s’  d Z ddlmZ ddlZddlm  mZ ddl	m
Z
 ddlmZmZmZmZ e dg¡d Ze ddg¡d Ze dd	dg¡d Ze d
dddg¡d
 Ze dddddg¡d Ze ddddddg¡d Ze dddddddg¡d ZeeeeeeegZ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 G d,d-„ d-ƒZ!G d.d/„ d/ƒZ"G d0d1„ d1ƒZ#dS )2zTests for laguerre module.

é    )ÚreduceN©Úpolyval)Úassert_almost_equalÚassert_raisesÚassert_equalÚassert_é   éÿÿÿÿé   éüÿÿÿé   iîÿÿÿé	   é   i ÿÿÿéH   iðÿÿÿéx   i¨ýÿÿiX  i8ÿÿÿé   iÐ  i ïÿÿi  i öÿÿiÂ  iÜÿÿÿc                 C   s   t j| dd�S )Ng�íµ ÷Æ°>)Ztol)ÚlagÚlagtrim©Úx© r   úg/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/numpy/polynomial/tests/test_laguerre.pyÚtrim   s    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	lagdomain©Úselfr   r   r   Útest_lagdomain   s    zTestConstants.test_lagdomainc                 C   s   t tjdgƒ d S )Nr   )r   r   Zlagzeror   r   r   r   Útest_lagzero!   s    zTestConstants.test_lagzeroc                 C   s   t tjdgƒ d S ©Nr	   )r   r   Zlagoner   r   r   r   Útest_lagone$   s    zTestConstants.test_lagonec                 C   s   t tjddgƒ d S )Nr	   r
   )r   r   Zlagxr   r   r   r   Ú	test_lagx'   s    zTestConstants.test_lagxN)Ú__name__Ú
__module__Ú__qualname__r   r   r    r!   r   r   r   r   r      s   r   c                   @   sJ   e Zd Ze ddd¡Zdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ ZdS )ÚTestArithmeticéýÿÿÿé   éd   c                 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 ©Né   úAt i=ú, j=r	   r   ©Úerr_msg)ÚrangeÚnpÚzerosÚmaxr   Úlagaddr   r   ©r   ÚiÚjÚmsgÚtgtÚresr   r   r   Útest_lagadd.   s    $zTestArithmetic.test_lagaddc                 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)   )r/   r0   r1   r2   r   Zlagsubr   r   r4   r   r   r   Útest_lagsub8   s    $zTestArithmetic.test_lagsubc                 C   s†   t t dg¡dgƒ t t dg¡ddgƒ tddƒD ]L}dg| dg }dg|d  | d| d |d  g }tt |¡|ƒ q4d S )Nr   r	   r
   r*   r   )r   r   Zlagmulxr/   r   )r   r5   Zserr8   r   r   r   Útest_lagmulxB   s    (zTestArithmetic.test_lagmulxc           
      C   s²   t dƒD ]¤}dg| dg }t | j|¡}t dƒD ]x}d|› d|› �}dg| dg }t | j|¡}t ||¡}t | j|¡}	tt|ƒ|| d k|ƒ t|	|| |d� q2qd S )Nr*   r   r	   r+   r,   r-   )r/   r   Úlagvalr   Úlagmulr   Úlenr   )
r   r5   Zpol1Zval1r6   r7   Zpol2Zval2Zpol3Zval3r   r   r   Útest_lagmulJ   s    zTestArithmetic.test_lagmulc           
      C   s–   t dƒD ]ˆ}t dƒD ]z}d|› d|› �}dg| dg }dg| dg }t ||¡}t ||¡\}}t t ||¡|¡}	tt|	ƒt|ƒ|d� qqd S )Nr*   r+   r,   r   r	   r-   )r/   r   r3   Zlagdivr>   r   r   )
r   r5   r6   r7   ÚciÚcjr8   ZquoÚremr9   r   r   r   Útest_lagdivX   s    zTestArithmetic.test_lagdivc                 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	   r-   )
r/   r0   Úaranger   r   r>   ÚarrayZlagpowr   r   )r   r5   r6   r7   Úcr8   r9   r   r   r   Útest_lagpowc   s    zTestArithmetic.test_lagpowN)r"   r#   r$   r0   Úlinspacer   r:   r;   r<   r@   rD   rH   r   r   r   r   r%   +   s   

r%   c                   @   s†   e Zd Ze dddg¡Ze dee¡Ze deee¡Zej	 	d¡d d Z
ee
d	d
dgƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestEvaluationg      "@g      ,Àg      @úi,j->ijú
i,j,k->ijk©r'   r*   r   r	   ç      ð?g       @g      @c                    sè   t t g dg¡jdƒ t dd¡‰ ‡ fdd„tD ƒ}tdƒD ]<}d|› �}|| }t ˆ dg| dg ¡}t|||d� q<td	ƒD ]`}d
g| }t 	|¡‰ t t ˆ dg¡j
|ƒ t t ˆ ddg¡j
|ƒ t t ˆ dddg¡j
|ƒ q‚d S )Nr	   r   r
   c                    s   g | ]}t ˆ |ƒ‘qS r   r   ©Ú.0rG   r   r   r   Ú
<listcomp>}   s     z.TestEvaluation.test_lagval.<locals>.<listcomp>é   r+   r-   r'   r   )r   r   r=   Úsizer0   rI   ÚLlistr/   r   r1   Úshape)r   Úyr5   r7   r8   r9   Zdimsr   r   r   Útest_lagvalw   s    


zTestEvaluation.test_lagvalc           
      C   s‚   | j \}}}| j\}}}tttj||d d… | jƒ || }t ||| j¡}t||ƒ t 	d¡}	t |	|	| j¡}t
|jdkƒ d S ©Nr   ©r   r'   )r   rV   r   Ú
ValueErrorr   Úlagval2dÚc2dr   r0   Úonesr   rU   ©
r   Úx1Úx2Úx3Úy1Úy2Zy3r8   r9   Úzr   r   r   Útest_lagval2dŒ   s    

zTestEvaluation.test_lagval2dc           
      C   sŒ   | j \}}}| j\}}}tttj|||d d… | jƒ || | }t |||| j¡}t||ƒ t 	d¡}	t |	|	|	| j¡}t
|jdkƒ d S rX   )r   rV   r   rZ   r   Úlagval3dÚc3dr   r0   r]   r   rU   r^   r   r   r   Útest_lagval3d�   s    

zTestEvaluation.test_lagval3dc           
      C   sl   | j \}}}| j\}}}t d||¡}t ||| j¡}t||ƒ t d¡}	t |	|	| j¡}t	|j
dkƒ d S )NrK   rY   )r   r'   r   r'   )r   rV   r0   Úeinsumr   Z	laggrid2dr\   r   r]   r   rU   r^   r   r   r   Útest_laggrid2d®   s    

zTestEvaluation.test_laggrid2dc           
      C   sr   | j \}}}| j\}}}t d|||¡}t |||| j¡}t||ƒ t d¡}	t |	|	|	| j¡}t	|j
dkƒ d S )NrL   rY   )r   r'   r   r'   r   r'   )r   rV   r0   ri   r   Z	laggrid3drg   r   r]   r   rU   r^   r   r   r   Útest_laggrid3d¼   s    

zTestEvaluation.test_laggrid3dN)r"   r#   r$   r0   rF   Zc1dri   r\   rg   Úrandomr   r   rV   rW   re   rh   rj   rk   r   r   r   r   rJ   m   s   rJ   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestIntegralc           
   	   C   s2  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dd	ƒD ]8}dg|d  dg }tjdg||d
�}t|ddgƒ q†td	ƒD ]n}|d }dg| dg }|gdg|  d| g }t |¡}tj|d|gd
�}t |¡}tt	|ƒt	|ƒƒ qÈtd	ƒD ]N}|d }dg| dg }t |¡}tj|d|gdd�}tt 
d|¡|ƒ �q@td	ƒD ]r}|d }dg| dg }|gdg|  d| g }t |¡}tj|d|gdd�}t |¡}tt	|ƒt	|ƒƒ �q˜td	ƒD ]r}tdd	ƒD ]`}	dg| dg }|d d … }t|	ƒD ]}tj|dd�}�qJt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�}�qPtj||	tt|	ƒƒd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�}�qÞtj||	tt|	ƒƒdd�}tt	|ƒt	|ƒƒ �q¶�q¨d S )Nr   ç      à?r
   r	   )Úlbnd)Úscl©Úaxisr   r*   )ÚmÚk)rs   rt   ro   )rs   rt   rp   ©rs   )r   Ú	TypeErrorr   ÚlagintrZ   r/   r   Úpoly2lagÚlag2polyr   r=   Úlist)
r   r5   rt   r9   rp   Úpolr8   Zlagpolrw   r6   r   r   r   Útest_lagintÍ   s€    




zTestIntegral.test_lagintc                 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©r'   é   c                 S   s   g | ]}t  |¡‘qS r   ©r   rw   rO   r   r   r   rQ   $  s     z1TestIntegral.test_lagint_axis.<locals>.<listcomp>r   rq   c                 S   s   g | ]}t  |¡‘qS r   r   rO   r   r   r   rQ   (  s     r	   c                 S   s   g | ]}t j|d d�‘qS )r'   )rt   r   rO   r   r   r   rQ   ,  s     r'   )rt   rr   )r0   rl   ÚvstackÚTr   rw   r   ©r   r\   r8   r9   r   r   r   Útest_lagint_axis   s    

zTestIntegral.test_lagint_axisN)r"   r#   r$   r|   rƒ   r   r   r   r   rm   Ë   s   Srm   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   rn   r
   r*   r	   ru   r   )rs   rp   )
r   rv   r   ÚlagderrZ   r/   r   r   rw   r   )r   r5   r8   r9   r6   r   r   r   Útest_lagder3  s     zTestDerivative.test_lagderc                 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…   rO   r   r   r   rQ   P  s     z3TestDerivative.test_lagder_axis.<locals>.<listcomp>r   rq   c                 S   s   g | ]}t  |¡‘qS r   r‡   rO   r   r   r   rQ   T  s     r	   )r0   rl   r€   r�   r   r…   r   r‚   r   r   r   Útest_lagder_axisL  s    
zTestDerivative.test_lagder_axisN)r"   r#   r$   r†   rˆ   r   r   r   r   r„   1  s   r„   c                   @   s8   e Zd Zej d¡d d Zdd„ Zdd„ Zdd	„ Zd
S )Ú
TestVanderrM   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 )Nr'   r}   r~   r   r	   .r   r*   r   )r'   r   r~   )
r0   rE   r   Ú	lagvanderr   rU   r/   r   r=   rF   )r   r   Úvr5   Úcoefr   r   r   Útest_lagvander]  s    
zTestVander.test_lagvanderc                 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 )NrY   r	   r   )r	   r*   r   )r   r0   rl   r   Zlagvander2dr[   ÚdotÚflatr   r   rU   ©r   r_   r`   ra   rG   Zvanr8   r9   r   r   r   Útest_lagvander2dn  s    
zTestVander.test_lagvander2dc                 C   s„   | j \}}}tj d¡}t |||dddg¡}t ||||¡}t ||j¡}t||ƒ t |g|g|gdddg¡}t	|j
dkƒ d S )N)r   r'   r~   r	   r   r'   )r	   r*   r   )r   r0   rl   r   Zlagvander3drf   rŽ   r�   r   r   rU   r�   r   r   r   Útest_lagvander3d{  s    
zTestVander.test_lagvander3dN)	r"   r#   r$   r0   rl   r   r�   r‘   r’   r   r   r   r   r‰   Y  s   r‰   c                   @   s   e Zd Zdd„ ZdS )ÚTestFittingc              	   C   s‚  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dddgƒ t ttjdgdgg ƒ t dd¡}||ƒ}t ||d	¡}tt|ƒd
ƒ t	t 
||¡|ƒ t ||dddd	g¡}tt|ƒd
ƒ t	t 
||¡|ƒ t ||d
¡}tt|ƒdƒ t	t 
||¡|ƒ t ||dddd	d
g¡}tt|ƒdƒ t	t 
||¡|ƒ t |t ||g¡jd	¡}t	|t ||g¡jƒ t |t ||g¡jdddd	g¡}t	|t ||g¡jƒ t |¡}| ¡ }d|dd d…< d|dd d…< tj||d	|d�}	t	|	|ƒ tj||dddd	g|d�}	t	|	|ƒ tj|t ||g¡jd	|d�}
t	|
t ||g¡jƒ tj|t ||g¡jdddd	g|d�}
t	|
t ||g¡jƒ ddddg}t	t ||d¡ddgƒ t	t ||ddg¡ddgƒ d S )Nc                 S   s   | | d  | d  S )Nr	   r   r   r   r   r   r   ÚfŒ  s    z"TestFitting.test_lagfit.<locals>.fr	   r
   r   r   )Úwr   r'   r~   r*   y              ð?y       €      ð¿)r   rZ   r   Zlagfitrv   r0   rI   r   r?   r   r=   rF   r�   Z
zeros_likeÚcopy)r   r”   r   rV   Zcoef3Zcoef4Zcoef2dr•   ZywZwcoef3Zwcoef2dr   r   r   Útest_lagfit‹  sZ    "


&zTestFitting.test_lagfitN)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   rZ   r   Úlagcompanionr   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   )r/   r   r   r™   rU   )r   r5   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   g      ø?)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S )Ú	TestGaussc                 C   s|   t  d¡\}}t  |d¡}t |j| |¡}dt | ¡ ¡ }|d d …d f | | }t|t 	d¡ƒ d}t| 
¡ |ƒ d S )Nr(   éc   r	   rN   )r   ZlaggaussrŠ   r0   rŽ   r�   ÚsqrtZdiagonalr   ÚeyeÚsum)r   r   r•   r‹   ZvvZvdr8   r   r   r   Útest_100Ø  s    zTestGauss.test_100N)r"   r#   r$   r¢   r   r   r   r   r�   Ö  s   r�   c                   @   sD   e Zd Zd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 ]z}t t tj dd| d ¡dd d… ¡}t  |¡}t  	||¡}d}t
t|ƒ|d kƒ tt  |¡d dƒ t||ƒ q$d S )Nr	   r*   r   r   r
   )r   Úlagfromrootsr   r   r/   r0   ÚcosrI   Úpir=   r   r?   ry   )r   r9   r5   Úrootsr{   r8   r   r   r   Útest_lagfromrootsë  s    
*
zTestMisc.test_lagfromrootsc                 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   Zlagrootsr/   r0   rI   r¤   r   )r   r5   r8   r9   r   r   r   Útest_lagroots÷  s    zTestMisc.test_lagrootsc                 C   sf   ddddg}t ttj|dƒ tt |¡|d d… ƒ tt |d¡|d d… ƒ tt |d¡dgƒ d S )Nr   r
   r	   r   r&   )r   rZ   r   r   r   )r   rŒ   r   r   r   Útest_lagtrimÿ  s
    zTestMisc.test_lagtrimc                 C   s   t t dd¡ddgƒ d S )Nr'   r~   rR   r   )r   r   Zlagliner   r   r   r   Útest_lagline
  s    zTestMisc.test_laglinec                 C   s2   t dƒD ]$}tt dg| dg ¡t| ƒ qd S ©NrR   r   r	   )r/   r   r   ry   rT   ©r   r5   r   r   r   Útest_lag2poly  s    zTestMisc.test_lag2polyc                 C   s2   t dƒD ]$}tt t| ¡dg| dg ƒ qd S r¬   )r/   r   r   rx   rT   r­   r   r   r   Útest_poly2lag  s    zTestMisc.test_poly2lagc                 C   s2   t  ddd¡}t  | ¡}t |¡}t||ƒ d S )Nr   é
   é   )r0   rI   Úexpr   Z	lagweightr   )r   r   r8   r9   r   r   r   Útest_weight  s    
zTestMisc.test_weightN)
r"   r#   r$   r¨   r©   rª   r«   r®   r¯   r³   r   r   r   r   r£   é  s   r£   )$Ú__doc__Ú	functoolsr   Únumpyr0   Znumpy.polynomial.laguerreZ
polynomialZlaguerrer   Znumpy.polynomial.polynomialr   Znumpy.testingr   r   r   r   rF   ZL0ZL1ZL2ZL3ZL4ZL5ZL6rT   r   r   r%   rJ   rm   r„   r‰   r“   r˜   r�   r£   r   r   r   r   Ú<module>   s0   B^f(0>