diff options
Diffstat (limited to 'test/test_graphic.py')
-rw-r--r-- | test/test_graphic.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/test_graphic.py b/test/test_graphic.py new file mode 100644 index 0000000..73d8b82 --- /dev/null +++ b/test/test_graphic.py @@ -0,0 +1,48 @@ +from pathlib import Path +import sys +sys.path.insert(0, str(Path.cwd().parent/'schroedinger')) + +import pytest +import numpy as np + +import matplotlib.pyplot as plt + +from schroedinger import ( + Config, potential_interp, build_potential, solve_schroedinger +) + +potential = {} +e = {} +v = {} + +FORMS = ['asymmetric', 'double_linear', 'double_cubic'] + +@pytest.mark.parametrize('form', FORMS) +def test_potential(form): + potential_prec = np.loadtxt(f'test/{form}/potential.dat') + assert np.allclose(potential[form], potential_prec, rtol=1e-2, atol=1e-2) + + +@pytest.mark.parametrize('form', FORMS) +def test_e(form): + e_prec = np.loadtxt(f'test/{form}/energies.dat') + assert np.allclose(e[form], e_prec, rtol=1e-2, atol=1e-2) + + +@pytest.mark.parametrize('form', FORMS) +def test_v(form): + v_prec = np.loadtxt(f'test/{form}/wavefuncs.dat')[:, 1:] + assert np.allclose(v[form], v_prec, rtol=1e-2, atol=1e-2) + + +def setup_module(): + global conf + global potential + global e + global v + + for form in FORMS: + conf = Config(f'test/{form}.inp') + potential[form], delta = build_potential(conf) + e[form], v[form] = solve_schroedinger(conf.mass, potential[form][:, 1], + delta, conf.eig_interval) |