Skip to content

Commit 870bca3

Browse files
committed
tests for equilibrate command
1 parent 58520df commit 870bca3

3 files changed

Lines changed: 62 additions & 9 deletions

File tree

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import os
2+
import pytest
3+
from unittest.mock import patch, MagicMock
4+
import tempfile
5+
from click.testing import CliRunner
6+
7+
from paths_cli.commands.equilibrate import *
8+
9+
import openpathsampling as paths
10+
11+
def print_test(output_storage, scheme, init_conds, multiplier, extra_steps):
12+
print(isinstance(output_storage, paths.Storage))
13+
print(scheme.__uuid__)
14+
print(init_conds.__uuid__)
15+
print(multiplier, extra_steps)
16+
17+
18+
@patch('paths_cli.commands.equilibrate.equilibrate_main', print_test)
19+
def test_equilibrate(tps_fixture):
20+
# integration test (click and parameters)
21+
scheme, network, engine, init_conds = tps_fixture
22+
runner = CliRunner()
23+
with runner.isolated_filesystem():
24+
storage = paths.Storage("setup.nc", 'w')
25+
for obj in tps_fixture:
26+
storage.save(obj)
27+
storage.tags['initial_conditions'] = init_conds
28+
29+
results = runner.invoke(
30+
equilibrate,
31+
["setup.nc", "-o", "foo.nc"]
32+
)
33+
out_str = "True\n{schemeid}\n{condsid}\n1 0\n"
34+
expected_output = out_str.format(schemeid=scheme.__uuid__,
35+
condsid=init_conds.__uuid__)
36+
assert results.exit_code == 0
37+
assert results.output == expected_output
38+
39+
def test_equilibrate_main(tps_fixture):
40+
# smoke test
41+
tempdir = tempfile.mkdtemp()
42+
store_name = os.path.join(tempdir, "equil.nc")
43+
try:
44+
storage = paths.Storage(store_name, mode='w')
45+
scheme, network, engine, init_conds = tps_fixture
46+
equilibrated, sim = equilibrate_main(storage, scheme, init_conds,
47+
multiplier=1, extra_steps=1)
48+
assert isinstance(equilibrated, paths.SampleSet)
49+
assert isinstance(sim, paths.PathSampling)
50+
finally:
51+
if os.path.exists(store_name):
52+
os.remove(store_name)
53+
os.rmdir(tempdir)

‎paths_cli/tests/commands/test_visit_all.py‎

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,6 @@ def print_test(output_storage, states, engine, initial_frame):
1717
print(initial_frame.__uuid__)
1818

1919

20-
@pytest.fixture()
21-
def tps_fixture(flat_engine, tps_network_and_traj):
22-
network, traj = tps_network_and_traj
23-
scheme = paths.OneWayShootingMoveScheme(network=network,
24-
selector=paths.UniformSelector(),
25-
engine=flat_engine)
26-
init_conds = scheme.initial_conditions_from_trajectories(traj)
27-
return (scheme, network, flat_engine, init_conds)
28-
2920
@pytest.fixture()
3021
def visit_all_fixture(tps_fixture):
3122
scheme, network, engine, init_conds = tps_fixture

‎paths_cli/tests/conftest.py‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,12 @@ def tps_network_and_traj():
2323
init_traj = make_1d_traj([-0.1, 0.1, 0.3, 0.5, 0.7, 0.9, 1.1],
2424
[2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0])
2525
return (network, init_traj)
26+
27+
@pytest.fixture
28+
def tps_fixture(flat_engine, tps_network_and_traj):
29+
network, traj = tps_network_and_traj
30+
scheme = paths.OneWayShootingMoveScheme(network=network,
31+
selector=paths.UniformSelector(),
32+
engine=flat_engine)
33+
init_conds = scheme.initial_conditions_from_trajectories(traj)
34+
return (scheme, network, flat_engine, init_conds)

0 commit comments

Comments
 (0)