diff --git a/modules/saxs/src/RigidBodiesProfileHandler.cpp b/modules/saxs/src/RigidBodiesProfileHandler.cpp index 5920345f3d..77e64ece03 100644 --- a/modules/saxs/src/RigidBodiesProfileHandler.cpp +++ b/modules/saxs/src/RigidBodiesProfileHandler.cpp @@ -25,6 +25,11 @@ RigidBodiesProfileHandler::RigidBodiesProfileHandler( } else { particles_.push_back(particles[i]); } + } else { + IMP_THROW("SAXS::RigidBodiesProfileHandler: invalid particle provided " + "(only " << (ff_type == RESIDUES ? "Atom or Residue" : "Atom") + << " particles are considered): " << particles[i], + IMP::TypeException); } } diff --git a/modules/saxs/test/test_saxs.py b/modules/saxs/test/test_saxs.py index b24a2fda61..78559e5968 100644 --- a/modules/saxs/test/test_saxs.py +++ b/modules/saxs/test/test_saxs.py @@ -266,6 +266,10 @@ def test_saxs_residue_particle_restraint(self): score = saxs_restraint.evaluate(False) self.assertAlmostEqual(score, 1.0307, delta=0.01) + # Atomic restraint should fail given residue information + self.assertRaises(TypeError, IMP.saxs.Restraint, saxs_particles, + exp_profile, IMP.saxs.HEAVY_ATOMS) + def test_background_adjust(self): """Test Profile.background_adjust""" exp_profile = IMP.saxs.Profile(self.get_input_file_name('lyzexp.dat'))