Author: bugman Date: Mon Dec 10 18:39:30 2012 New Revision: 18098 URL: http://svn.gna.org/viewcvs/relax?rev=18098&view=rev Log: Merged revisions 18096-18097 via svnmerge from svn+ssh://bugman@xxxxxxxxxxx/svn/relax/trunk ........ r18096 | bugman | 2012-12-10 18:32:38 +0100 (Mon, 10 Dec 2012) | 3 lines Expanded the Interatomic.test_copy system test to check interatomic.copy without spin IDs. ........ r18097 | bugman | 2012-12-10 18:33:29 +0100 (Mon, 10 Dec 2012) | 3 lines Added a test for the presence of target sequence data in generic_fns.interatomic.copy(). ........ Modified: branches/cst/ (props changed) branches/cst/generic_fns/interatomic.py branches/cst/test_suite/system_tests/interatomic.py Propchange: branches/cst/ ------------------------------------------------------------------------------ --- svnmerge-integrated (original) +++ svnmerge-integrated Mon Dec 10 18:39:30 2012 @@ -1,1 +1,1 @@ -/trunk:1-18091 +/trunk:1-18097 Modified: branches/cst/generic_fns/interatomic.py URL: http://svn.gna.org/viewcvs/relax/branches/cst/generic_fns/interatomic.py?rev=18098&r1=18097&r2=18098&view=diff ============================================================================== --- branches/cst/generic_fns/interatomic.py (original) +++ branches/cst/generic_fns/interatomic.py Mon Dec 10 18:39:30 2012 @@ -29,7 +29,7 @@ # relax module imports. from generic_fns import pipes -from generic_fns.mol_res_spin import Selection, count_spins, return_spin +from generic_fns.mol_res_spin import Selection, count_spins, return_spin, spin_loop from relax_errors import RelaxError, RelaxInteratomError, RelaxNoInteratomError, RelaxNoSpinError from relax_io import write_data @@ -73,6 +73,12 @@ if count_spins(selection=spin_id2, pipe=pipe_to, skip_desel=False) == 0: raise RelaxNoSpinError(spin_id2, pipe_to) + # Check for the sequence data in the target pipe if no spin IDs are given. + if not spin_id1 and not spin_id2: + for spin, spin_id in spin_loop(pipe=pipe_from, return_id=True): + if not return_spin(spin_id, pipe=pipe_to): + raise RelaxNoSpinError(spin_id, pipe_to) + # Test if pipe_from contains interatomic data (skipping the rest of the function if it is missing). if not exists_data(pipe_from): return Modified: branches/cst/test_suite/system_tests/interatomic.py URL: http://svn.gna.org/viewcvs/relax/branches/cst/test_suite/system_tests/interatomic.py?rev=18098&r1=18097&r2=18098&view=diff ============================================================================== --- branches/cst/test_suite/system_tests/interatomic.py (original) +++ branches/cst/test_suite/system_tests/interatomic.py Mon Dec 10 18:39:30 2012 @@ -28,6 +28,7 @@ # relax module imports. from data import Relax_data_store; ds = Relax_data_store() +from relax_errors import RelaxNoSpinError from status import Status; status = Status() from test_suite.system_tests.base_classes import SystemTestCase @@ -66,22 +67,40 @@ self.interpreter.interatomic.copy(pipe_from='orig', spin_id1=':2@N', spin_id2=':2@H') self.interpreter.interatomic.copy(pipe_from='orig', spin_id1=':1@H', spin_id2=':1@N') - # Check the sequence data. - self.assertEqual(cdp.mol[0].name, 'Test mol') - self.assertEqual(cdp.mol[0].res[0].name, 'His') - self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N') - self.assertEqual(cdp.mol[0].res[0].spin[1].name, 'H') - self.assertEqual(cdp.mol[0].res[1].name, 'His') - self.assertEqual(cdp.mol[0].res[1].spin[0].name, 'N') - self.assertEqual(cdp.mol[0].res[1].spin[1].name, 'H') + # Create a new data pipe to copy the data to. + self.interpreter.pipe.create(pipe_name="new 2", pipe_type='N-state') - # Check the interatomic data. - self.assertEqual(cdp.interatomic[0].spin_id1, ':2@N') - self.assertEqual(cdp.interatomic[0].spin_id2, ':2@H') - self.assertEqual(cdp.interatomic[0].y, 2) - self.assertEqual(cdp.interatomic[1].spin_id1, ':1@N') - self.assertEqual(cdp.interatomic[1].spin_id2, ':1@H') - self.assertEqual(cdp.interatomic[1].x, 1) + # Copy the data. + try: + self.interpreter.interatomic.copy(pipe_from='orig') + except RelaxNoSpinError: + print("Correct RelaxError encountered.") + self.interpreter.sequence.copy(pipe_from='orig') + self.interpreter.interatomic.copy(pipe_from='orig') + + # Loop over the two new pipes. + interatom_index = [[0, 1], [1, 0]] + pipes = ['new', 'new 2'] + for i in range(len(pipes)): + # Switch pipes. + self.interpreter.pipe.switch(pipes[i]) + + # Check the sequence data. + self.assertEqual(cdp.mol[0].name, 'Test mol') + self.assertEqual(cdp.mol[0].res[0].name, 'His') + self.assertEqual(cdp.mol[0].res[0].spin[0].name, 'N') + self.assertEqual(cdp.mol[0].res[0].spin[1].name, 'H') + self.assertEqual(cdp.mol[0].res[1].name, 'His') + self.assertEqual(cdp.mol[0].res[1].spin[0].name, 'N') + self.assertEqual(cdp.mol[0].res[1].spin[1].name, 'H') + + # Check the interatomic data. + self.assertEqual(cdp.interatomic[interatom_index[i][0]].spin_id1, ':2@N') + self.assertEqual(cdp.interatomic[interatom_index[i][0]].spin_id2, ':2@H') + self.assertEqual(cdp.interatomic[interatom_index[i][0]].y, 2) + self.assertEqual(cdp.interatomic[interatom_index[i][1]].spin_id1, ':1@N') + self.assertEqual(cdp.interatomic[interatom_index[i][1]].spin_id2, ':1@H') + self.assertEqual(cdp.interatomic[interatom_index[i][1]].x, 1) def test_manipulation(self):