def test_engine_nan_error(self):
     dyn = NaNEngine(None)
     mover = ForwardSpringMover(ensemble=self.ens,
                                selector=self.sel,
                                engine=dyn)
     with pytest.raises(SampleNaNError):
         _ = mover(self.samp)
 def test_engine_max_length_error(self):
     self.dyn.options['n_frames_max'] = 1
     mover = ForwardSpringMover(ensemble=self.ens,
                                selector=self.sel,
                                engine=self.dyn)
     with pytest.raises(SampleMaxLengthError):
         _ = mover(self.samp)
 def test_stop_before_dynamics(self):
     sel = self.sel
     sel.trial_snapshot = -13
     mover = ForwardSpringMover(ensemble=self.ens,
                                selector=self.sel,
                                engine=None)
     _, details = mover(self.samp)
     assert details['rejection_reason'] == 'invalid_index'
     assert details['last_accepted_shooting_index'] == -8
 def test_forward_mover(self):
     mover = ForwardSpringMover(ensemble=self.ens,
                                selector=self.sel,
                                engine=self.dyn)
     trials, details = mover(self.samp)
     traj = trials[0].trajectory
     assert_items_equal([-0.5, 0.1, 0.2, 0.3, 0.4],
                        [s.coordinates[0][0] for s in traj])
     assert details['shooting_index'] == 1
     assert details['last_accepted_shooting_index'] is None
     assert details['direction'] == 'forward'
 def test_from_dict(self):
     dct = {}
     bwmover = BackwardSpringMover(ensemble=self.ens,
                                   selector=self.sel,
                                   engine=self.dyn)
     fwmover = ForwardSpringMover(ensemble=self.ens,
                                  selector=self.sel,
                                  engine=self.dyn)
     dct['movers'] = [fwmover, bwmover]
     mover = SpringShootingMover.from_dict(dct)
     assert isinstance(mover, SpringShootingMover)
     assert len(mover.movers) == 2
     assert isinstance(mover.movers[0], SpringMover)
     assert isinstance(mover.movers[1], SpringMover)