Skip to content

Commit e773c70

Browse files
committed
Start to tests for bootstrap init
1 parent c1030a0 commit e773c70

File tree

2 files changed

+73
-0
lines changed

2 files changed

+73
-0
lines changed
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import pytest
2+
from click.testing import CliRunner
3+
from unittest.mock import patch
4+
5+
from paths_cli.commands.bootstrap_init import *
6+
import openpathsampling as paths
7+
8+
def print_test(init_frame, network, engine, transition, output_storage):
9+
print(init_frame.__uuid__)
10+
print(network.__uuid__)
11+
print(engine.__uuid__)
12+
# apparently transition UUID isn't preserved, but these are?
13+
print(transition.stateA.__uuid__)
14+
print(transition.stateB.__uuid__)
15+
print([e.__uuid__ for e in transition.ensembles])
16+
print(isinstance(output_storage, paths.Storage))
17+
18+
@patch('paths_cli.commands.bootstrap_init.bootstrap_init_main', print_test)
19+
def test_bootstrap_init(tis_fixture):
20+
scheme, network, engine, init_conds = tis_fixture
21+
runner = CliRunner()
22+
with runner.isolated_filesystem():
23+
storage = paths.Storage("setup.nc", 'w')
24+
storage.save(init_conds)
25+
for obj in tis_fixture:
26+
storage.save(obj)
27+
28+
storage.tags["init_snap"] = init_conds[0][0]
29+
storage.close()
30+
31+
results = runner.invoke(bootstrap_init, [
32+
'setup.nc',
33+
'-o', 'foo.nc',
34+
'--initial-state', "A",
35+
'--final-state', "B",
36+
'--init-frame', 'init_snap',
37+
])
38+
39+
transitions = list(network.transitions.values())
40+
assert len(transitions) == 1
41+
transition = transitions[0]
42+
stateA = transition.stateA
43+
stateB = transition.stateB
44+
ensembles = transition.ensembles
45+
46+
expected_output = (
47+
f"{init_conds[0][0].__uuid__}\n{network.__uuid__}\n"
48+
f"{engine.__uuid__}\n"
49+
f"{stateA.__uuid__}\n{stateB.__uuid__}\n"
50+
f"{[e.__uuid__ for e in ensembles]}\n"
51+
"True\n"
52+
)
53+
assert results.exit_code == 0
54+
assert results.output == expected_output
55+
56+
57+
def test_bootstrap_init_main(tis_fixture, tmp_path):
58+
scheme, network, engine, init_conds = tis_fixture
59+
init_frame = init_conds[0][0]
60+
assert len(network.transitions) == 1
61+
transition = list(network.transitions.values())[0]
62+
output_storage = paths.Storage(tmp_path / "output.nc", mode='w')
63+
init_conds, bootstrapper = bootstrap_init_main(init_frame, network,
64+
engine, transition,
65+
output_storage)

paths_cli/tests/conftest.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,11 @@ def tis_network(cv_and_states):
5858
[0.0, 0.1, 0.2])
5959
network = paths.MISTISNetwork([(state_A, interfaces, state_B)])
6060
return network
61+
62+
@pytest.fixture
63+
def tis_fixture(flat_engine, tis_network, transition_traj):
64+
paths.InterfaceSet._reset()
65+
scheme = paths.DefaultScheme(network=tis_network,
66+
engine=flat_engine)
67+
init_conds = scheme.initial_conditions_from_trajectories(transition_traj)
68+
return (scheme, tis_network, flat_engine, init_conds)

0 commit comments

Comments
 (0)