openmmtools icon indicating copy to clipboard operation
openmmtools copied to clipboard

KeyError in test_alchemy.py:TestAbsoluteAlchemicalFactorySlow

Open mjw99 opened this issue 3 years ago • 0 comments

Using openmmtools 0.20.3 pyhd8ed1ab_0 conda-forge and running the following test:

cd /home/mjw/miniconda3/envs/openmm/lib/python3.9/site-packages/openmmtools/tests
nosetests  --verbosity=2 test_alchemy.py:TestAbsoluteAlchemicalFactorySlow

I am seeing:

======================================================================
ERROR: test suite for <class 'test_alchemy.TestAbsoluteAlchemicalFactorySlow'>
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/mjw/miniconda3/envs/openmm/lib/python3.9/site-packages/nose/suite.py", line 209, in run
    self.setUp()
  File "/home/mjw/miniconda3/envs/openmm/lib/python3.9/site-packages/nose/suite.py", line 292, in setUp
    self.setupContext(ancestor)
  File "/home/mjw/miniconda3/envs/openmm/lib/python3.9/site-packages/nose/suite.py", line 315, in setupContext
    try_run(context, names)
  File "/home/mjw/miniconda3/envs/openmm/lib/python3.9/site-packages/nose/util.py", line 471, in try_run
    return func()
  File "/home/mjw/miniconda3/envs/openmm/lib/python3.9/site-packages/openmmtools/tests/test_alchemy.py", line 1321, in setup_class
    cls.define_regions()
  File "/home/mjw/miniconda3/envs/openmm/lib/python3.9/site-packages/openmmtools/tests/test_alchemy.py", line 1844, in define_regions
    super(TestAbsoluteAlchemicalFactorySlow, cls).define_regions()
  File "/home/mjw/miniconda3/envs/openmm/lib/python3.9/site-packages/openmmtools/tests/test_alchemy.py", line 1366, in define_regions
    for atom in cls.test_systems['TIP4P-EW WaterBox and NaCl with PME'].topology.atoms():
KeyError: 'TIP4P-EW WaterBox and NaCl with PME'

One possible fix for this could be to edit here with:

@attr('slow')
class TestAbsoluteAlchemicalFactorySlow(TestAbsoluteAlchemicalFactory):
    """Test AbsoluteAlchemicalFactory class with a more comprehensive set of systems."""

    @classmethod
    def define_systems(cls):
        super(TestAbsoluteAlchemicalFactorySlow, cls).define_systems()
        """Create test systems and shared objects."""
        cls.test_systems['LennardJonesFluid without dispersion correction'] = \
            testsystems.LennardJonesFluid(nparticles=100, dispersion_correction=False)

but this might duplicate tests... I've not fully checked.

mjw99 avatar Dec 08 '21 12:12 mjw99