Skip to content
Snippets Groups Projects
Commit edd1566c authored by Michele Nottoli's avatar Michele Nottoli
Browse files

Added a new test.

parent 33e96205
Branches
Tags
1 merge request!5Guess for coefficients instead of density
Pipeline #1953 passed
......@@ -73,3 +73,36 @@ def test_partial_extrapolation(datafile):
assert np.linalg.norm(guessed_density - density, ord=np.inf) < THRESHOLD
assert np.linalg.norm(guessed_density - density, ord=np.inf) \
/np.linalg.norm(density, ord=np.inf) < THRESHOLD
@pytest.mark.parametrize("datafile", ["urea.json", "glucose.json"])
def test_coefficient_extrapolation(datafile):
# load test data from json file
data = utils.load_json(f"tests/{datafile}")
nelectrons = data["nelectrons"]
natoms = data["trajectory"].shape[1]
nbasis = data["overlaps"].shape[1]
nframes = data["trajectory"].shape[0]
# amount of data we want to use for fitting
n = 9
assert n < nframes
# initialize an extrapolator
extrapolator = gext.Extrapolator(nelectrons, nbasis, natoms, nsteps=n)
# load data in the extrapolator up to index n - 1
for (coords, coeff, overlap) in zip(data["trajectory"][:n],
data["coefficients"][:n], data["overlaps"][:n]):
extrapolator.load_data(coords, coeff, overlap)
# check an extrapolation at index n
guessed_coefficients = extrapolator.guess_coefficients(
data["trajectory"][n], data["overlaps"][n])
coeff = data["coefficients"][n][:, :nelectrons//2]
density = coeff @ coeff.T
guessed_density = guessed_coefficients @ guessed_coefficients.T
assert np.linalg.norm(guessed_density - density, ord=np.inf) < THRESHOLD
assert np.linalg.norm(guessed_density - density, ord=np.inf) \
/np.linalg.norm(density, ord=np.inf) < THRESHOLD
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment