Commit c43eb6a1 authored by Robert McGibbon's avatar Robert McGibbon
Browse files

Enhance the test to ensure that the checkpoint can be loaded correctly

parent 4f858162
import unittest
import tempfile
import numpy as np
from simtk.openmm import app
import simtk.openmm as mm
from simtk import unit
......@@ -7,7 +8,8 @@ from simtk import unit
class TestCheckpointReporter(unittest.TestCase):
def setUp(self):
pdb = app.PDBFile('systems/alanine-dipeptide-implicit.pdb')
with open('systems/alanine-dipeptide-implicit.pdb') as f:
pdb = app.PDBFile(f)
forcefield = app.ForceField('amber99sbildn.xml')
system = forcefield.createSystem(pdb.topology,
nonbondedMethod=app.CutoffNonPeriodic, nonbondedCutoff=1.0*unit.nanometers,
......@@ -20,10 +22,17 @@ class TestCheckpointReporter(unittest.TestCase):
self.simulation.reporters.append(app.CheckpointReporter(file, 1))
self.simulation.step(1)
# get the current positions
positions = self.simulation.context.getState(getPositions=True).getPositions(asNumpy=True)._value
# now set the positions into junk...
self.simulation.context.setPositions(np.random.random(positions.shape))
# then reload the right positions from the checkpoint
with open(file.name, 'rb') as f:
self.simulation.context.loadCheckpoint(f.read())
file.close()
newPositions = self.simulation.context.getState(getPositions=True).getPositions(asNumpy=True)._value
np.testing.assert_array_equal(positions, newPositions)
if __name__ == '__main__':
unittest.main()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment