U
    ZÊ¹j{  ã                   @   sØ   d dl mZmZmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZmZmZmZ d d
lmZ edƒ\ZZZddd„Zdd„ Zdd„ Z dd„ Z!dd„ Z"dd„ Z#dS )é    )ÚIÚRationalÚooÚpi)ÚS)Úsymbols)Úexp)Úsqrt)ÚcosÚsin)Ú	integrate)Úsimplify)ÚR_nlÚE_nlÚ
E_nl_diracÚPsi_nlm)Úraiseszn r Zçê-�™—q=c                 C   s^   t | ƒ} t |ƒ}t| | ƒ|k r$dS t|ƒt| ƒkrFt| | | ƒ}nt| | |  ƒ}||kS )NT)ÚfloatÚabs)ÚaÚbZmax_relative_errorZmax_absolute_errorZrelative_error© r   ú`/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/physics/tests/test_hydrogen.pyÚfeq   s    r   c                  C   sò  dt  } dtd| d  ƒ tt |  ƒ tdd| d   ƒtt d|   ƒ dtd|     tjtdd| d   ƒ tt d|   ƒ t |  tddƒtdd| d   ƒ tt d|   ƒ ddt d|    tddƒt|  d    tddƒtdd| d   ƒ tt d|   ƒ dtd|     t |  tddƒtdd| d   ƒ tt d|   ƒ t|  d  tddƒtd| d  ƒ tt d|   ƒ ddt d|    tdd	ƒt|  d   tdd
ƒt|  d    tddƒtdd| d   ƒ tt d|   ƒ dtd|    tddƒt|  d    t|   tddƒtdd| d   ƒ tt d|   ƒ dtd|     t|  d  tddƒtdd| d   ƒ tt d|   ƒ t|  d  dœ
}|D ]2\}}tt||tt ƒ|||f  ƒdk�sºt	‚�qºd S )Né   é   é   é   é   é   éQ   é   é   éÀ   é   é   éP   é@   é   i   é#   )
)r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r    r   )r    r   )r    r   )r    r   r   )
ÚZr	   r   Úrr   ÚHalfr   r   r   ÚAssertionError)r   ÚRÚnÚlr   r   r   Útest_wavefunction   s@     42.(ÿ.ÿÿÿ:*>ÿ.$ÿÿ.ÿ
ÿ:ñr2   c                  C   sT   d} t | d ƒD ]>}t |ƒD ]0}tt||tƒd td  tdtfƒdkst‚qqd S )Nr   r   r   )Úranger   r   r,   r   r.   )Zn_maxr0   r1   r   r   r   Ú	test_norm4   s    r4   c                  C   s  t dƒ} t dƒ}t dƒ}tddd| ||ƒt|  ƒttƒ ks@t‚tddd| ||ƒt jt|  d ƒ |  t|ƒtt | ƒ dttƒ   ks�t‚td	dd| ||dƒtdƒ t|ƒ tt| ƒ t	|ƒ dttƒ  t dƒ d
 tdƒ td|  d	 ƒ | d d  k�st‚d S )Nr,   ÚphiÚthetar   r   r   éÿÿÿÿr    r   r!   r%   éþÿÿÿ)
r   r   r   r	   r   r.   r-   r   r   r
   )r,   r5   r6   r   r   r   Útest_psi_nlm;   s0    (& ÿ
"
ÿÿ
ÿÿÿþþ
þr9   c                   C   s
  t ttƒtd  dtd   ks$t‚t tƒddtd   ks@t‚t ddƒtdƒd  d ks`t‚t ddƒtdƒd  d ks€t‚t dƒtj d ks˜t‚t dƒtj d ks°t‚t dƒtj d ksÈt‚t dƒtj d	 ksàt‚t d
ƒtj d ksøt‚ttdd„ ƒ d S )Nr   r7   r   é/   r#   r   é   r    é    éd   i N  c                   S   s   t dƒS ©Nr   )r   r   r   r   r   Ú<lambda>S   ó    z(test_hydrogen_energies.<locals>.<lambda>)r   r0   r+   r.   r   ZOner   Ú
ValueErrorr   r   r   r   Útest_hydrogen_energiesF   s    $  rB   c                  C   s¾  t ddddd�dtdƒ d ks$t‚tt ddddd�dtdƒ d tdtdƒ d ƒ d	  ƒdksht‚tt ddddd�d
tdƒ d tdtdƒ d ƒ d  ƒdks¬t‚tt ddddd�ddtdƒ  tddtdƒ  ƒ d  ƒdksðt‚tt ddddd�ddtdƒ  tddtdƒ  ƒ d  ƒdk�s6t‚tddƒD ]^} t| ƒD ]N}tt | |ƒt| ƒddƒ�snt‚|dk�rLtt | |dƒt| ƒddƒ�sLt‚�qL�q@d}tddƒD ]h} t| ƒD ]X}tt | ||d�t| |ƒddƒ�sât‚|dk�rºtt | |d|ƒt| |ƒddƒ�sºt‚�qº�q®d}tddƒD ]h} t| ƒD ]X}tt | ||d�t| |ƒddƒ�sZt‚|dk�r2tt | |d|ƒt| |ƒddƒ�s2t‚�q2�q&ttd d!„ ƒ ttd"d!„ ƒ ttd#d!„ ƒ d S )$Nr   r   r   )r+   Úcr#   r   r%   r<   r    é6   r!   él   é¢   é	   é‰   i¡Kÿidñœ i•  iB—þ)iÈâ9iQI  éR   iY<' i/  i²xN r&   gñhãˆµøä>F)r+   g-Cëâ6?gü©ñÒMbP?c                   S   s
   t ddƒS r>   ©r   r   r   r   r   r?   |   r@   z.test_hydrogen_energies_relat.<locals>.<lambda>c                   S   s
   t ddƒS )Nr   r7   rJ   r   r   r   r   r?   }   r@   c                   S   s   t dddƒS )Nr   r   FrJ   r   r   r   r   r?   ~   r@   )	r   r	   r.   r   r3   r   r   r   rA   )r0   r1   r+   r   r   r   Útest_hydrogen_energies_relatV   sj    $ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

($
,$
,rK   N)r   r   )$Zsympy.core.numbersr   r   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr	   Z(sympy.functions.elementary.trigonometricr
   r   Zsympy.integrals.integralsr   Zsympy.simplify.simplifyr   Zsympy.physics.hydrogenr   r   r   r   Zsympy.testing.pytestr   r0   r,   r+   r   r2   r4   r9   rB   rK   r   r   r   r   Ú<module>   s    
