o
    8VaQ                     @   s   d dl mZmZmZmZmZmZ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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 )    )exp	integrateooSsimplifysqrtsymbolspisincosIRational)R_nlE_nl
E_nl_diracPsi_nlm)raiseszn r Z-q=c                 C   sd   t | } t |}t| | |k rdS t|t| kr&t| | | }||kS t| | |  }||kS )NT)floatabs)abZmax_relative_errorZmax_absolute_errorZrelative_error r   C/usr/lib/python3/dist-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 ]\}}tt||tt |||f  dksuJ 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   )r   Rnlr   r   r   test_wavefunction   sB    42.(.:*>.$.
:,r1   c                  C   sT   d} t | d D ]}t |D ]}tt||td td  tdtfdks&J qqd S )Nr   r   r   )ranger   r   r,   r   )Zn_maxr/   r0   r   r   r   	test_norm.   s   .r3   c                  C   s  t d} t d}t d}tddd| ||t|  tt ks J tddd| ||t jt|  d  |  t|tt |  dtt   ksHJ 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sJ d S )Nr,   phithetar   r   r   r    r   r!   r%   )	r   r   r   r   r	   r-   r
   r   r   )r,   r4   r5   r   r   r   test_psi_nlm5   s0   (& 
"


r8   c                   C   s
  t tttd  dtd   ksJ t tddtd   ks J t ddtdd  d ks0J t ddtdd  d ks@J t dtj d ksLJ t dtj d ksXJ t dtj d ksdJ t dtj d	 kspJ t d
tj d ks|J ttdd  d S )Nr   r6   r   /   r#   r      r        d   i N  c                   S   s   t dS Nr   )r   r   r   r   r   <lambda>M   s    z(test_hydrogen_energies.<locals>.<lambda>)r   r/   r+   r   ZOner   
ValueErrorr   r   r   r   test_hydrogen_energies@   s   $  r@   c                  C   s  t ddddddtd d ksJ tt ddddddtd d tdtd d  d	  dks4J tt dddddd
td d tdtd d  d  dksVJ tt dddddddtd  tddtd   d  dksxJ tt dddddddtd  tddtd   d  dksJ tddD ]*} t| D ]#}tt | |t| ddsJ |dkrtt | |dt| ddsJ qqd}tddD ]/} t| D ](}tt | ||dt| |ddsJ |dkrtt | |d|t| |ddsJ qqd}tddD ]4} t| D ],}tt | ||dt| |dds"J |dkr9tt | |d|t| |dds9J q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      	      iKid i  iB)i9iQI  R   iY<' i/  ixN r&   gh㈵>F)r+   g-C6?gMbP?c                   S   s
   t ddS r=   r   r   r   r   r   r>   v      
 z.test_hydrogen_energies_relat.<locals>.<lambda>c                   S   s
   t ddS )Nr   r6   rH   r   r   r   r   r>   w   rI   c                   S   s   t dddS )Nr   r   FrH   r   r   r   r   r>   x   s    )r   r   r   r2   r   r   r   r?   )r/   r0   r+   r   r   r   test_hydrogen_energies_relatP   sv   $""$
$rJ   N)r   r   )Zsympyr   r   r   r   r   r   r   r	   r
   r   r   r   Zsympy.physics.hydrogenr   r   r   r   Zsympy.testing.pytestr   r/   r,   r+   r   r1   r3   r8   r@   rJ   r   r   r   r   <module>   s   8 
