o
    Ô­jgD  ã                   @   st  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 g d¢¡d	 Ze g d
¢¡d Ze g d¢¡d Ze g d¢¡d Ze g d¢¡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 d&d'„ d'ƒZ#dS )(zTests for laguerre module.

é    )ÚreduceN©Úpolyval)Úassert_almost_equalÚassert_raisesÚassert_equalÚassert_é   éÿÿÿÿ)é   éüÿÿÿr	   r   )é   iîÿÿÿé	   r
   r   )é   i ÿÿÿéH   iðÿÿÿr	   r   )éx   i¨ýÿÿiX  i8ÿÿÿé   r
   r   )éÐ  i ïÿÿi  i öÿÿiÂ  iÜÿÿÿr	   r   c                 C   s   t j| dd�S )Ng�íµ ÷Æ°>)Útol)ÚlagÚlagtrim©Úx© r   úa/var/www/html/CropPilot/venv/lib/python3.10/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   ó   t tjddgƒ d S )Nr   r	   )r   r   Ú	lagdomain©Úselfr   r   r   Útest_lagdomain   ó   zTestConstants.test_lagdomainc                 C   ó   t tjdgƒ d S )Nr   )r   r   Úlagzeror   r   r   r   Útest_lagzero!   ó   zTestConstants.test_lagzeroc                 C   r#   ©Nr	   )r   r   Úlagoner   r   r   r   Útest_lagone$   r&   zTestConstants.test_lagonec                 C   r   )Nr	   r
   )r   r   Úlagxr   r   r   r   Ú	test_lagx'   r"   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 ]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 ©Né   úAt i=ú, j=r	   r   ©Úerr_msg)ÚrangeÚnpÚzerosÚmaxr   Úlagaddr   r   ©r    ÚiÚjÚmsgÚtgtÚresr   r   r   Útest_lagadd.   ó   $úÿzTestArithmetic.test_lagaddc                 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 r3   )r9   r:   r;   r<   r   Úlagsubr   r   r>   r   r   r   Útest_lagsub8   rE   zTestArithmetic.test_lagsubc                 C   s†   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| d |d  g }tt |¡|ƒ qd S )Nr   r	   r
   r4   r   )r   r   Úlagmulxr9   r   )r    r?   ÚserrB   r   r   r   Útest_lagmulxB   s   (ýzTestArithmetic.test_lagmulxc           
      C   s²   t dƒD ]R}dg| dg }t | j|¡}t dƒD ]<}d|› d|› �}dg| dg }t | j|¡}t ||¡}t | j|¡}	tt|ƒ|| d k|ƒ t|	|| |d� qqd S )Nr4   r   r	   r5   r6   r7   )r9   r   Úlagvalr   Úlagmulr   Úlenr   )
r    r?   Úpol1Úval1r@   rA   Úpol2Úval2Úpol3Úval3r   r   r   Útest_lagmulJ   s   ùýzTestArithmetic.test_lagmulc           
      C   s–   t dƒD ]D}t dƒD ]=}d|› d|› �}dg| dg }dg| dg }t ||¡}t ||¡\}}t t ||¡|¡}	tt|	ƒt|ƒ|d� q
qd S )Nr4   r5   r6   r   r	   r7   )r9   r   r=   ÚlagdivrL   r   r   )
r    r?   r@   rA   ÚciÚcjrB   ÚquoÚremrC   r   r   r   Útest_lagdivX   s   ùÿzTestArithmetic.test_lagdivc                 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 )Nr4   r5   r6   r	   r7   )
r9   r:   Úaranger   r   rL   ÚarrayÚlagpowr   r   )r    r?   r@   rA   ÚcrB   rC   r   r   r   Útest_lagpowc   s   ûÿzTestArithmetic.test_lagpowN)r,   r-   r.   r:   Úlinspacer   rD   rG   rJ   rT   rZ   r_   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S )ÚTestEvaluation)g      "@g      ,Àg      @úi,j->ijú
i,j,k->ijk©r1   r4   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 ˆ g d¢¡j
|ƒ qAd S )Nr	   r   r
   c                    s   g | ]}t ˆ |ƒ‘qS r   r   ©Ú.0r^   r   r   r   Ú
<listcomp>}   ó    z.TestEvaluation.test_lagval.<locals>.<listcomp>é   r5   r7   r1   r   )r	   r   r   )r   r   rK   Úsizer:   r`   ÚLlistr9   r   r;   Úshape)r    Úyr?   rA   rB   rC   Ú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   r1   )r   rn   r   Ú
ValueErrorr   Úlagval2dÚc2dr   r:   Úonesr   rm   ©
r    Úx1Úx2Úx3Úy1Úy2Úy3rB   rC   Ú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 rq   )r   rn   r   rs   r   Úlagval3dÚc3dr   r:   rv   r   rm   rw   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 )Nrb   rr   )r   r1   r   r1   )r   rn   r:   Úeinsumr   Ú	laggrid2dru   r   rv   r   rm   rw   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 )Nrc   rr   )r   r1   r   r1   r   r1   )r   rn   r:   rƒ   r   Ú	laggrid3dr�   r   rv   r   rm   rw   r   r   r   Útest_laggrid3d¼   s   

zTestEvaluation.test_laggrid3dN)r,   r-   r.   r:   r\   Úc1drƒ   ru   r�   Úrandomr   r   rn   rp   r   r‚   r…   r‡   r   r   r   r   ra   m   s    ra   c                   @   ó   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dd	ƒD ]}dg|d  dg }tjdg||d
�}t|ddgƒ qCtd	ƒD ]7}|d }dg| dg }|gdg|  d| g }t |¡}tj|d|gd
�}t |¡}tt	|ƒt	|ƒƒ qdtd	ƒD ]&}|d }dg| dg }t |¡}tj|d|gdd�}tt 
d|¡|ƒ q td	ƒD ]8}|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 ]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
�}�qatj||	tt|	ƒƒd
�}tt	|ƒt	|ƒƒ �qM�qFt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©Úaxisr   r4   )ÚmÚk)r‘   r’   r�   )r‘   r’   rŽ   ©r‘   )r   Ú	TypeErrorr   Úlagintrs   r9   r   Úpoly2lagÚlag2polyr   rK   Úlist)
r    r?   r’   rC   rŽ   ÚpolrB   Úlagpolr•   r@   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©r1   é   c                 S   ó   g | ]}t  |¡‘qS r   ©r   r•   rf   r   r   r   rh   $  ri   z1TestIntegral.test_lagint_axis.<locals>.<listcomp>r   r�   c                 S   rž   r   rŸ   rf   r   r   r   rh   (  ri   r	   c                 S   s   g | ]	}t j|d d�‘qS )r1   )r’   rŸ   rf   r   r   r   rh   ,  s    r1   )r’   r�   )r:   r‰   ÚvstackÚTr   r•   r   ©r    ru   rB   rC   r   r   r   Útest_lagint_axis   s   

zTestIntegral.test_lagint_axisN)r,   r-   r.   r›   r£   r   r   r   r   r‹   Ë   s    Sr‹   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
   r4   r	   r“   r   )r‘   rŽ   )
r   r”   r   Úlagderrs   r9   r   r   r•   r   )r    r?   rB   rC   r@   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   rž   r   ©r   r¥   rf   r   r   r   rh   P  ri   z3TestDerivative.test_lagder_axis.<locals>.<listcomp>r   r�   c                 S   rž   r   r§   rf   r   r   r   rh   T  ri   r	   )r:   r‰   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 )Ú
TestVanderrd   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 )Nr1   rœ   r�   r   r	   .r   r4   r   )r1   r   r�   )
r:   r[   r   Ú	lagvanderr   rm   r9   r   rK   r\   )r    r   Úvr?   Ú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 )Nrr   r	   r   )r	   r4   r   )r   r:   r‰   r   Úlagvander2drt   ÚdotÚflatr   r   rm   ©r    rx   ry   rz   r^   ÚvanrB   rC   r   r   r   Útest_lagvander2dn  s   
zTestVander.test_lagvander2dc                 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 )N)r   r1   r�   )r	   r   r1   )r	   r4   r   )r   r:   r‰   r   Úlagvander3dr€   r¯   r°   r   r   rm   r±   r   r   r   Útest_lagvander3d{  s   
zTestVander.test_lagvander3dN)	r,   r-   r.   r:   r‰   r   r­   r³   rµ   r   r   r   r   r©   Y  s
    r©   c                   @   ó   e Zd Zdd„ ZdS )ÚTestFittingc                 C   sf  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ƒ d S )Nc                 S   s   | | d  | d  S )Nr	   r   r   r   r   r   r   ÚfŒ  r"   z"TestFitting.test_lagfit.<locals>.fr	   r
   r   r   )Úw)r   r
   r   r1   r�   )r   r	   r   r1   r4   )r   r	   r   r1   r�   )r	   y              ð?r
   y       €      ð¿)r   rs   r   Úlagfitr”   r:   r`   r   rM   r   rK   r\   r¡   Ú
zeros_likeÚcopy)r    r¸   r   rn   Úcoef3Úcoef4Úcoef2dr¹   ÚywÚwcoef3Úwcoef2dr   r   r   Útest_lagfit‹  sZ   


" zTestFitting.test_lagfitN)r,   r-   r.   rÃ   r   r   r   r   r·   ‰  ó    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   rs   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	   r4   r   )r9   r   r   rÆ   rm   )r    r?   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                   @   r¶   )Ú	TestGaussc                 C   s|   t  d¡\}}t  |d¡}t |j| |¡}dt | ¡ ¡ }|d d …d f | | }t|t 	d¡ƒ d}t| 
¡ |ƒ d S )Nr2   éc   r	   re   )r   Úlaggaussrª   r:   r¯   r¡   ÚsqrtÚdiagonalr   ÚeyeÚsum)r    r   r¹   r«   ÚvvÚvdrB   r   r   r   Útest_100Ø  s   zTestGauss.test_100N)r,   r-   r.   rÓ   r   r   r   r   rÊ   Ö  rÄ   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 ]=}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	   r4   r   r   r
   )r   Úlagfromrootsr   r   r9   r:   Úcosr`   ÚpirK   r   rM   r—   )r    rC   r?   Úrootsr™   rB   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 ]}t dd|¡}t t |¡¡}t t|ƒt|ƒƒ qd S )Nr	   r   r   r4   r1   )r   r   Úlagrootsr9   r:   r`   rÕ   r   )r    r?   rB   rC   r   r   r   Útest_lagroots÷  s   ýzTestMisc.test_lagrootsc                 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	   r0   r   r   )r   rs   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 )Nr1   r�   rj   r   )r   r   Ú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 ©Nrj   r   r	   )r9   r   r   r—   rl   ©r    r?   r   r   r   Útest_lag2poly  ó   "ÿzTestMisc.test_lag2polyc                 C   s2   t dƒD ]}tt t| ¡dg| dg ƒ qd S rß   )r9   r   r   r–   rl   rà   r   r   r   Útest_poly2lag  râ   zTestMisc.test_poly2lagc                 C   s2   t  ddd¡}t  | ¡}t |¡}t||ƒ d S )Nr   é
   é   )r:   r`   Úexpr   Ú	lagweightr   )r    r   rB   rC   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   Únumpyr:   Únumpy.polynomial.laguerreÚ
polynomialÚlaguerrer   Únumpy.polynomial.polynomialr   Únumpy.testingr   r   r   r   r\   ÚL0ÚL1ÚL2ÚL3ÚL4ÚL5ÚL6rl   r   r   r/   ra   r‹   r¤   r©   r·   rÅ   rÊ   rÔ   r   r   r   r   Ú<module>   s2    B^f(0>