Skip to content

Commit 6125554

Browse files
committed
tests for md command
1 parent 830ef03 commit 6125554

File tree

1 file changed

+60
-1
lines changed

1 file changed

+60
-1
lines changed

paths_cli/tests/commands/test_md.py

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from openpathsampling.tests.test_helpers import \
1212
make_1d_traj, CalvinistDynamics
1313

14-
1514
class TestEnsembleSatisfiedContinueConditions(object):
1615
def setup(self):
1716
cv = paths.CoordinateFunctionCV('x', lambda x: x.xyz[0][0])
@@ -81,3 +80,63 @@ def test_generate(self):
8180
init_snap = self.trajectory[0]
8281
traj = self.engine.generate(init_snap, self.conditions)
8382
assert len(traj) == 8
83+
84+
85+
@pytest.fixture()
86+
def md_fixture(tps_fixture):
87+
_, _, engine, sample_set = tps_fixture
88+
snapshot = sample_set[0].trajectory[0]
89+
ensemble = paths.LengthEnsemble(5).named('len5')
90+
return engine, ensemble, snapshot
91+
92+
def print_test(output_storage, engine, ensembles, nsteps, initial_frame):
93+
print(isinstance(output_storage, paths.Storage))
94+
print(engine.__uuid__)
95+
print([e.__uuid__ for e in ensembles]) # only 1?
96+
print(nsteps)
97+
print(initial_frame.__uuid__)
98+
99+
@patch('paths_cli.commands.md.md_main', print_test)
100+
def test_md(md_fixture):
101+
engine, ensemble, snapshot = md_fixture
102+
runner = CliRunner()
103+
with runner.isolated_filesystem():
104+
storage = paths.Storage("setup.nc", 'w')
105+
storage.save([ensemble, snapshot, engine])
106+
storage.tags['initial_snapshot'] = snapshot
107+
storage.close()
108+
109+
results = runner.invoke(
110+
md,
111+
["setup.nc", '-o', 'foo.nc', '--ensemble', 'len5', '-f',
112+
'initial_snapshot']
113+
)
114+
expected_output = "\n".join([ "True", str(engine.__uuid__),
115+
'[' + str(ensemble.__uuid__) + ']',
116+
'None', str(snapshot.__uuid__)]) + "\n"
117+
118+
assert results.output == expected_output
119+
assert results.exit_code == 0
120+
121+
def test_md_main(md_fixture):
122+
tempdir = tempfile.mkdtemp()
123+
try:
124+
store_name = os.path.join(tempdir, "md.nc")
125+
storage = paths.Storage(store_name, mode='w')
126+
engine, ensemble, snapshot = md_fixture
127+
traj, foo = md_main(
128+
output_storage=storage,
129+
engine=engine,
130+
ensembles=[ensemble],
131+
nsteps=None,
132+
initial_frame=snapshot
133+
)
134+
assert isinstance(traj, paths.Trajectory)
135+
assert foo is None
136+
assert len(traj) == 5
137+
assert len(storage.trajectories) == 1
138+
storage.close()
139+
finally:
140+
os.remove(store_name)
141+
os.rmdir(tempdir)
142+

0 commit comments

Comments
 (0)