Skip to content

Commit d2050e4

Browse files
committed
Add tests for TPS wizard
1 parent 6467b59 commit d2050e4

3 files changed

Lines changed: 51 additions & 3 deletions

File tree

‎paths_cli/tests/wizard/test_tps.py‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import pytest
2+
import mock
3+
4+
from functools import partial
5+
6+
import openpathsampling as paths
7+
from openpathsampling import strategies
8+
9+
from paths_cli.tests.wizard.mock_wizard import mock_wizard
10+
11+
from paths_cli.wizard.tps import tps_scheme
12+
13+
14+
15+
@pytest.fixture
16+
def tps_network():
17+
cv = paths.CoordinateFunctionCV('x', lambda s: s.xyz[0][0])
18+
state_A = paths.CVDefinedVolume(cv, float("-inf"), 0).named("A")
19+
state_B = paths.CVDefinedVolume(cv, 0, float("inf")).named("B")
20+
network = paths.TPSNetwork(state_A, state_B).named('tps-network')
21+
return network
22+
23+
@pytest.mark.parametrize('as_scheme', [False, True])
24+
def test_tps_scheme(tps_network, toy_engine, as_scheme):
25+
wizard = mock_wizard([])
26+
wizard.networks = {tps_network.name: tps_network}
27+
if as_scheme:
28+
strategy = partial(paths.SpringShootingMoveScheme,
29+
k_spring=0.01,
30+
delta_max=10,
31+
engine=toy_engine)
32+
else:
33+
strategy = strategies.OneWayShootingStrategy(
34+
selector=paths.UniformSelector(),
35+
engine=toy_engine
36+
)
37+
with mock.patch('paths_cli.wizard.tps.shooting',
38+
new=mock.Mock(return_value=strategy)):
39+
scheme = tps_scheme(wizard)
40+
41+
assert isinstance(scheme, paths.MoveScheme)
42+
if as_scheme:
43+
assert isinstance(scheme, paths.SpringShootingMoveScheme)

‎paths_cli/wizard/tps.py‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
from paths_cli.wizard.tools import a_an
22
from paths_cli.wizard.core import get_missing_object
33
from paths_cli.wizard.shooting import shooting
4+
from paths_cli.wizard.volumes import volumes
5+
46
from functools import partial
57

8+
def tps_network(wizard):
9+
raise NotImplementedError("Still need to add other network choic")
10+
611

712
def tps_scheme(wizard, network=None):
813
import openpathsampling as paths
@@ -11,9 +16,9 @@ def tps_scheme(wizard, network=None):
1116
network = get_missing_object(wizard, wizard.networks, 'network',
1217
tps_network)
1318

14-
shooting_strategy = shooting(wizard, network=network)
19+
shooting_strategy = shooting(wizard)
1520

16-
if not isinstance(shooting_strategy, paths.MoveStrategy):
21+
if not isinstance(shooting_strategy, strategies.MoveStrategy):
1722
# this means we got a fixed scheme and can't do strategies
1823
return shooting_strategy(network=network)
1924

‎paths_cli/wizard/two_state_tps.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def two_state_tps(wizard, fixed_length=False):
1515
final_state = volumes(wizard, as_state=True, intro="")
1616
wizard.register(final_state, 'final state', 'states')
1717
if fixed_length:
18-
...
18+
... # no-cov (will add this later)
1919
else:
2020
network = paths.TPSNetwork(initial_state, final_state)
2121
scheme = tps_scheme(wizard, network=network)

0 commit comments

Comments
 (0)