Skip to content

Commit

Permalink
Added tests for all the files with random seed.
Browse files Browse the repository at this point in the history
  • Loading branch information
kumaranu committed Jul 11, 2024
1 parent 8b316f5 commit 89fae40
Show file tree
Hide file tree
Showing 8 changed files with 252 additions and 7 deletions.
26 changes: 25 additions & 1 deletion tests/geodesic_ts_with_hessian/test_using_mace.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
import pytest
import numpy as np


@pytest.fixture(scope="session", autouse=True)
def set_seed():
np.random.seed(42) # noqa: NPY002


import logging
from ase.io import read
from pathlib import Path
Expand Down Expand Up @@ -33,4 +41,20 @@ def test_geodesic_ts_hess_irc_mace(setup_test_environment):
jobs = geodesic_ts_hess_irc_mace(reactant, product, calc_kwargs, logger)

# Assertions
assert len(jobs) == 4
assert jobs[0]['relax_reactant']['results']['energy'] == pytest.approx(-7400.109474432057, 1e-6)
assert jobs[0]['relax_reactant']['results']['forces'][0, 1] == pytest.approx(2.66840467e-04, 1e-2)

assert jobs[0]['relax_product']['results']['energy'] == pytest.approx(-7395.830068714384, 1e-6)
assert jobs[0]['relax_product']['results']['forces'][0, 1] == pytest.approx(-0.00025790767076738774, 1e-2)

# geodesic output
assert jobs[0]['highest_e_atoms'].get_potential_energy() == pytest.approx(-7392.679151885447, 1e-6)

# transition state optimization output
assert jobs[1]['trajectory_results'][-1]['energy'] == pytest.approx(-7395.622784377439, 1e-6)

# IRC forward output
assert jobs[2]['trajectory_results'][-1]['energy'] == pytest.approx(-7395.809412186394, 1e-6)

# IRC reverse output
assert jobs[3]['trajectory_results'][-1]['energy'] == pytest.approx(-7395.787679970261, 1e-6)
28 changes: 25 additions & 3 deletions tests/geodesic_ts_with_hessian/test_using_newtonnet.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
import os
import pytest
import logging
import numpy as np


@pytest.fixture(scope="session", autouse=True)
def set_seed():
np.random.seed(42) # noqa: NPY002


import logging
import torch
from ase.io import read
from pathlib import Path
Expand Down Expand Up @@ -49,4 +55,20 @@ def test_geodesic_ts_hess_irc_newtonnet(setup_test_environment):
jobs = geodesic_ts_hess_irc_newtonnet(reactant, product, calc_kwargs1, calc_kwargs2, logger)

# Assertions
assert len(jobs) == 4
assert jobs[0]['relax_reactant']['results']['energy'] == pytest.approx(-68.26889038085938, 1e-6)
assert jobs[0]['relax_reactant']['results']['forces'][0, 1] == pytest.approx(0.0006616527098231018, 1e-2)

assert jobs[0]['relax_product']['results']['energy'] == pytest.approx(-63.780540466308594, 1e-6)
assert jobs[0]['relax_product']['results']['forces'][0, 1] == pytest.approx(-0.0018400131957605481, 1e-2)

# geodesic output
assert jobs[0]['highest_e_atoms'].get_potential_energy() == pytest.approx(-61.53276824951172, 1e-6)

# transition state optimization output
assert jobs[1]['trajectory_results'][-1]['energy'] == pytest.approx(-63.505672454833984, 1e-6)

# IRC forward output
assert jobs[2]['trajectory_results'][-1]['energy'] == pytest.approx(-67.261962890625, 1e-6)

# IRC reverse output
assert jobs[3]['trajectory_results'][-1]['energy'] == pytest.approx(-68.01041412353516, 1e-6)
26 changes: 25 additions & 1 deletion tests/geodesic_ts_without_hessian/test_using_mace.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
import pytest
import numpy as np


@pytest.fixture(scope="session", autouse=True)
def set_seed():
np.random.seed(42) # noqa: NPY002


import logging
from ase.io import read
from quacc import get_settings
Expand Down Expand Up @@ -32,4 +40,20 @@ def test_geodesic_ts_hess_irc_mace(setup_test_environment):
jobs = geodesic_ts_no_hess_irc_mace(reactant, product, calc_kwargs, logger)

# Assertions
assert len(jobs) == 4
assert jobs[0]['relax_reactant']['results']['energy'] == pytest.approx(-7400.109474432057, 1e-6)
assert jobs[0]['relax_reactant']['results']['forces'][0, 1] == pytest.approx(2.66840467e-04, 1e-2)

assert jobs[0]['relax_product']['results']['energy'] == pytest.approx(-7395.830068714384, 1e-6)
assert jobs[0]['relax_product']['results']['forces'][0, 1] == pytest.approx(-0.00025790767076738774, 1e-2)

# geodesic output
assert jobs[0]['highest_e_atoms'].get_potential_energy() == pytest.approx(-7392.679151885447, 1e-6)

# transition state optimization output
assert jobs[1]['trajectory_results'][-1]['energy'] == pytest.approx(-7395.245196822939, 1e-6)

# IRC forward output
assert jobs[2]['trajectory_results'][-1]['energy'] == pytest.approx(-7395.808953241075, 1e-6)

# IRC reverse output
assert jobs[3]['trajectory_results'][-1]['energy'] == pytest.approx(-7396.074596733643, 1e-6)
27 changes: 26 additions & 1 deletion tests/geodesic_ts_without_hessian/test_using_newtonnet.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
import os
import torch
import pytest

import numpy as np


@pytest.fixture(scope="session", autouse=True)
def set_seed():
np.random.seed(42) # noqa: NPY002


import logging
from ase.io import read
from quacc import get_settings
Expand Down Expand Up @@ -45,4 +54,20 @@ def test_geodesic_ts_hess_irc_newtonnet(setup_test_environment):
jobs = geodesic_ts_no_hess_irc_newtonnet(reactant, product, calc_kwargs1, logger)

# Assertions
assert len(jobs) == 4
assert jobs[0]['relax_reactant']['results']['energy'] == pytest.approx(-68.26889038085938, 1e-6)
assert jobs[0]['relax_reactant']['results']['forces'][0, 1] == pytest.approx(0.0006616527098231018, 1e-2)

assert jobs[0]['relax_product']['results']['energy'] == pytest.approx(-63.780540466308594, 1e-6)
assert jobs[0]['relax_product']['results']['forces'][0, 1] == pytest.approx(-0.0018400131957605481, 1e-2)

# geodesic output
assert jobs[0]['highest_e_atoms'].get_potential_energy() == pytest.approx(-61.53276824951172, 1e-6)

# transition state optimization output
assert jobs[1]['trajectory_results'][-1]['energy'] == pytest.approx(-63.742549896240234, 1e-6)

# IRC forward output
assert jobs[2]['trajectory_results'][-1]['energy'] == pytest.approx(-67.372802734375, 1e-6)

# IRC reverse output
assert jobs[3]['trajectory_results'][-1]['energy'] == pytest.approx(-67.37286376953125, 1e-6)
37 changes: 37 additions & 0 deletions tests/neb_ts_with_hessian/test_using_mace.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
import pytest

import numpy as np


@pytest.fixture(scope="session", autouse=True)
def set_seed():
np.random.seed(42) # noqa: NPY002


import logging
from ase.io import read
from quacc import get_settings
Expand Down Expand Up @@ -33,3 +42,31 @@ def test_neb_ts_hess_irc_mace(setup_test_environment):

# Assertions
assert len(jobs) == 4

print(jobs[0]['relax_reactant']['results']['energy'])
print(jobs[0]['relax_reactant']['results']['forces'][0, 1])
print(jobs[0]['relax_product']['results']['energy'])
print(jobs[0]['relax_product']['results']['forces'][0, 1])
print(jobs[0]['neb_results']['highest_e_atoms'].get_potential_energy())
print(jobs[1]['trajectory_results'][-1]['energy'])
print(jobs[2]['trajectory_results'][-1]['energy'])
print(jobs[3]['trajectory_results'][-1]['energy'])

# Assertions
assert jobs[0]['relax_reactant']['results']['energy'] == pytest.approx(-68.26889038085938, 1e-6)
assert jobs[0]['relax_reactant']['results']['forces'][0, 1] == pytest.approx(0.0006616527098231, 1e-2)

assert jobs[0]['relax_product']['results']['energy'] == pytest.approx(-63.780540466308594, 1e-6)
assert jobs[0]['relax_product']['results']['forces'][0, 1] == pytest.approx(-0.0018400131957605481, 1e-2)

# neb output
assert jobs[0]['neb_results']['highest_e_atoms'].get_potential_energy() == pytest.approx(-61.5327682495, 1e-6)

# transition state optimization output
assert jobs[1]['trajectory_results'][-1]['energy'] == pytest.approx(-63.742549896240234, 1e-6)

# IRC forward output
assert jobs[2]['trajectory_results'][-1]['energy'] == pytest.approx(-67.372802734375, 1e-6)

# IRC reverse output
assert jobs[3]['trajectory_results'][-1]['energy'] == pytest.approx(-67.37286376953125, 1e-6)
39 changes: 38 additions & 1 deletion tests/neb_ts_with_hessian/test_using_newtonnet.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
import torch
import pytest


import numpy as np


@pytest.fixture(scope="session", autouse=True)
def set_seed():
np.random.seed(42) # noqa: NPY002


import logging
from ase.io import read
from pathlib import Path
Expand All @@ -23,7 +33,6 @@ def reset_default_tensor_type():
torch.set_default_tensor_type(torch.FloatTensor)


@pytest.mark.skip()
def test_neb_ts_hess_irc_newtonnet(setup_test_environment):
reactant, product = setup_test_environment

Expand All @@ -48,3 +57,31 @@ def test_neb_ts_hess_irc_newtonnet(setup_test_environment):

# Assertions
assert len(jobs) == 4

print(jobs[0]['relax_reactant']['results']['energy'])
print(jobs[0]['relax_reactant']['results']['forces'][0, 1])
print(jobs[0]['relax_product']['results']['energy'])
print(jobs[0]['relax_product']['results']['forces'][0, 1])
print(jobs[0]['neb_results']['highest_e_atoms'].get_potential_energy())
print(jobs[1]['trajectory_results'][-1]['energy'])
print(jobs[2]['trajectory_results'][-1]['energy'])
print(jobs[3]['trajectory_results'][-1]['energy'])

# Assertions
assert jobs[0]['relax_reactant']['results']['energy'] == pytest.approx(-68.26889038085938, 1e-6)
assert jobs[0]['relax_reactant']['results']['forces'][0, 1] == pytest.approx(0.0006616527098231, 1e-2)

assert jobs[0]['relax_product']['results']['energy'] == pytest.approx(-63.780540466308594, 1e-6)
assert jobs[0]['relax_product']['results']['forces'][0, 1] == pytest.approx(-0.0018400131957605481, 1e-2)

# neb output
assert jobs[0]['neb_results']['highest_e_atoms'].get_potential_energy() == pytest.approx(-61.5327682495, 1e-6)

# transition state optimization output
assert jobs[1]['trajectory_results'][-1]['energy'] == pytest.approx(-63.742549896240234, 1e-6)

# IRC forward output
assert jobs[2]['trajectory_results'][-1]['energy'] == pytest.approx(-67.372802734375, 1e-6)

# IRC reverse output
assert jobs[3]['trajectory_results'][-1]['energy'] == pytest.approx(-67.37286376953125, 1e-6)
38 changes: 38 additions & 0 deletions tests/neb_ts_without_hessian/test_using_mace.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
import pytest


import numpy as np


@pytest.fixture(scope="session", autouse=True)
def set_seed():
np.random.seed(42) # noqa: NPY002


import logging
from ase.io import read
from pathlib import Path
Expand Down Expand Up @@ -34,3 +44,31 @@ def test_neb_ts_no_hess_irc_mace(setup_test_environment):

# Assertions
assert len(jobs) == 4

print(jobs[0]['relax_reactant']['results']['energy'])
print(jobs[0]['relax_reactant']['results']['forces'][0, 1])
print(jobs[0]['relax_product']['results']['energy'])
print(jobs[0]['relax_product']['results']['forces'][0, 1])
print(jobs[0]['neb_results']['highest_e_atoms'].get_potential_energy())
print(jobs[1]['trajectory_results'][-1]['energy'])
print(jobs[2]['trajectory_results'][-1]['energy'])
print(jobs[3]['trajectory_results'][-1]['energy'])

# Assertions
assert jobs[0]['relax_reactant']['results']['energy'] == pytest.approx(-68.26889038085938, 1e-6)
assert jobs[0]['relax_reactant']['results']['forces'][0, 1] == pytest.approx(0.0006616527098231, 1e-2)

assert jobs[0]['relax_product']['results']['energy'] == pytest.approx(-63.780540466308594, 1e-6)
assert jobs[0]['relax_product']['results']['forces'][0, 1] == pytest.approx(-0.0018400131957605481, 1e-2)

# neb output
assert jobs[0]['neb_results']['highest_e_atoms'].get_potential_energy() == pytest.approx(-61.5327682495, 1e-6)

# transition state optimization output
assert jobs[1]['trajectory_results'][-1]['energy'] == pytest.approx(-63.742549896240234, 1e-6)

# IRC forward output
assert jobs[2]['trajectory_results'][-1]['energy'] == pytest.approx(-67.372802734375, 1e-6)

# IRC reverse output
assert jobs[3]['trajectory_results'][-1]['energy'] == pytest.approx(-67.37286376953125, 1e-6)
38 changes: 38 additions & 0 deletions tests/neb_ts_without_hessian/test_using_newtonnet.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
import torch
import pytest


import numpy as np


@pytest.fixture(scope="session", autouse=True)
def set_seed():
np.random.seed(42) # noqa: NPY002


import logging
from ase.io import read
from pathlib import Path
Expand Down Expand Up @@ -45,3 +55,31 @@ def test_neb_ts_no_hess_irc_newtonnet(setup_test_environment):

# Assertions
assert len(jobs) == 4

print(jobs[0]['relax_reactant']['results']['energy'])
print(jobs[0]['relax_reactant']['results']['forces'][0, 1])
print(jobs[0]['relax_product']['results']['energy'])
print(jobs[0]['relax_product']['results']['forces'][0, 1])
print(jobs[0]['neb_results']['highest_e_atoms'].get_potential_energy())
print(jobs[1]['trajectory_results'][-1]['energy'])
print(jobs[2]['trajectory_results'][-1]['energy'])
print(jobs[3]['trajectory_results'][-1]['energy'])

# Assertions
assert jobs[0]['relax_reactant']['results']['energy'] == pytest.approx(-68.26889038085938, 1e-6)
assert jobs[0]['relax_reactant']['results']['forces'][0, 1] == pytest.approx(0.0006616527098231, 1e-2)

assert jobs[0]['relax_product']['results']['energy'] == pytest.approx(-63.780540466308594, 1e-6)
assert jobs[0]['relax_product']['results']['forces'][0, 1] == pytest.approx(-0.0018400131957605481, 1e-2)

# neb output
assert jobs[0]['neb_results']['highest_e_atoms'].get_potential_energy() == pytest.approx(-61.5327682495, 1e-6)

# transition state optimization output
assert jobs[1]['trajectory_results'][-1]['energy'] == pytest.approx(-63.742549896240234, 1e-6)

# IRC forward output
assert jobs[2]['trajectory_results'][-1]['energy'] == pytest.approx(-67.372802734375, 1e-6)

# IRC reverse output
assert jobs[3]['trajectory_results'][-1]['energy'] == pytest.approx(-67.37286376953125, 1e-6)

0 comments on commit 89fae40

Please sign in to comment.