Spaces:
Running
Running
import sys | |
import numpy as np | |
import pytest | |
from mlip_arena.models import MLIPEnum | |
from mlip_arena.tasks.elasticity import run as ELASTICITY | |
from prefect.testing.utilities import prefect_test_harness | |
from ase.build import bulk | |
def test_elasticity(model: MLIPEnum): | |
""" | |
Test elasticity prefect workflow with a simple cubic lattice. | |
""" | |
with prefect_test_harness(): | |
result = ELASTICITY( | |
atoms=bulk("Cu", "fcc", a=3.6), | |
calculator_name=model.name, | |
calculator_kwargs={}, | |
device=None, | |
optimizer="BFGSLineSearch", | |
optimizer_kwargs=None, | |
filter="FrechetCell", | |
filter_kwargs=None, | |
criterion=None, | |
persist_opt=False, | |
cache_opt=False, | |
) | |
assert isinstance(result, dict) | |
assert isinstance(result["elastic_tensor"], np.ndarray) | |
assert result["elastic_tensor"].shape == (3, 3, 3, 3) | |
assert isinstance(result["elastic_tensor"][0, 0, 0, 0], float) | |