Spaces:
Running
Running
import sys | |
import pytest | |
from ase.build import molecule | |
from prefect.testing.utilities import prefect_test_harness | |
from mlip_arena.models import MLIPEnum | |
from mlip_arena.tasks.mof.flow import widom_insertion | |
from mlip_arena.tasks.mof.input import get_atoms_from_db | |
from mlip_arena.tasks.utils import get_calculator | |
def prefect_test_fixture(): | |
with prefect_test_harness(): | |
yield | |
def test_widom_insertion(model: MLIPEnum): | |
# with prefect_test_harness(): | |
for atoms in get_atoms_from_db("mofs.db"): | |
result = widom_insertion.with_options( | |
refresh_cache=True, | |
)( | |
structure=atoms, | |
gas=molecule("CO2"), | |
calculator=get_calculator( | |
model, | |
dispersion=True, | |
), | |
num_insertions=10, | |
fold=2, | |
) | |
assert isinstance(result, dict) | |
assert isinstance(result["henry_coefficient"][0], float) | |
assert isinstance(result["averaged_interaction_energy"][0], float) | |
assert isinstance(result["heat_of_adsorption"][0], float) | |
break # only test one MOF | |