def setUp(self): self.atom_numbers = [1000, 1001] self.atom_names = ["ABCD", "A2"] self.residue_numbers = [999, 1000] self.residue_names = ["XYZ", "R2"] self.coords = np.zeros((2, 3)) self.coords[0, :] = 1.0 self.coords[1, :] = 2.0 self.writer = PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, self.residue_names)
def setUp(self): self.atom_numbers = [1000, 1001] self.atom_names = ['ABCD', 'A2'] self.residue_numbers = [999, 1000] self.residue_names = ['XYZ', 'R2'] self.coords = np.zeros((2, 3)) self.coords[0, :] = 1.0 self.coords[1, :] = 2.0 self.writer = PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, self.residue_names)
def get_pdb_writer(self): return PDBWriter( range(1, len(self._atom_names) + 1), self._atom_names, self._residue_numbers, self._residue_names, )
class TestPDBWriter(unittest.TestCase): def setUp(self): self.atom_numbers = [1000, 1001] self.atom_names = ['ABCD', 'A2'] self.residue_numbers = [999, 1000] self.residue_names = ['XYZ', 'R2'] self.coords = np.zeros((2, 3)) self.coords[0, :] = 1.0 self.coords[1, :] = 2.0 self.writer = PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, self.residue_names) def test_should_raise_with_wrong_number_of_atom_names(self): with self.assertRaises(AssertionError): PDBWriter(self.atom_numbers, ['CA'], self.residue_numbers, self.residue_names) def test_should_raise_with_wrong_number_of_residue_numbers(self): with self.assertRaises(AssertionError): PDBWriter(self.atom_numbers, self.atom_names, [1], self.residue_names) def test_should_raise_with_wrong_number_of_residue_names(self): with self.assertRaises(AssertionError): PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, ['R1']) def test_should_raise_with_bad_coordinate_size(self): with self.assertRaises(AssertionError): self.writer.get_pdb_string(np.zeros((3, 3)), 1) def test_output_should_have_six_lines(self): result = self.writer.get_pdb_string(self.coords, 1) lines = result.splitlines() self.assertEqual(len(lines), 6) def test_header_should_have_correct_stage(self): result = self.writer.get_pdb_string(self.coords, 1) lines = result.splitlines() self.assertIn('REMARK', lines[0]) self.assertIn('stage 1', lines[0]) def test_atom_line_should_have_correct_format(self): result = self.writer.get_pdb_string(self.coords, 1) lines = result.splitlines() result = lines[1] expected_result = 'ATOM 1000 ABCD XYZ 999 1.000 1.000 1.000' print expected_result print lines[1] self.assertEqual(result, expected_result) def test_other_atom_line_should_have_correct_format(self): result = self.writer.get_pdb_string(self.coords, 1) lines = result.splitlines() result = lines[2] expected_result = 'ATOM 1001 A2 R2 1000 2.000 2.000 2.000' print expected_result print lines[2] self.assertEqual(result, expected_result)
class TestPDBWriter(unittest.TestCase): def setUp(self): self.atom_numbers = [1000, 1001] self.atom_names = ["ABCD", "A2"] self.residue_numbers = [999, 1000] self.residue_names = ["XYZ", "R2"] self.coords = np.zeros((2, 3)) self.coords[0, :] = 1.0 self.coords[1, :] = 2.0 self.writer = PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, self.residue_names) def test_should_raise_with_wrong_number_of_atom_names(self): with self.assertRaises(AssertionError): PDBWriter(self.atom_numbers, ["CA"], self.residue_numbers, self.residue_names) def test_should_raise_with_wrong_number_of_residue_numbers(self): with self.assertRaises(AssertionError): PDBWriter(self.atom_numbers, self.atom_names, [1], self.residue_names) def test_should_raise_with_wrong_number_of_residue_names(self): with self.assertRaises(AssertionError): PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, ["R1"]) def test_should_raise_with_bad_coordinate_size(self): with self.assertRaises(AssertionError): self.writer.get_pdb_string(np.zeros((3, 3)), 1) def test_output_should_have_six_lines(self): result = self.writer.get_pdb_string(self.coords, 1) lines = result.splitlines() self.assertEqual(len(lines), 6) def test_header_should_have_correct_stage(self): result = self.writer.get_pdb_string(self.coords, 1) lines = result.splitlines() self.assertIn("REMARK", lines[0]) self.assertIn("stage 1", lines[0]) def test_atom_line_should_have_correct_format(self): result = self.writer.get_pdb_string(self.coords, 1) lines = result.splitlines() result = lines[1] expected_result = "ATOM 1000 ABCD XYZ 999 1.000 1.000 1.000" self.assertEqual(result, expected_result) def test_other_atom_line_should_have_correct_format(self): result = self.writer.get_pdb_string(self.coords, 1) lines = result.splitlines() result = lines[2] expected_result = "ATOM 1001 A2 R2 1000 2.000 2.000 2.000" self.assertEqual(result, expected_result)
def test_should_raise_with_wrong_number_of_residue_names(self): with self.assertRaises(AssertionError): PDBWriter(self.atom_numbers, self.atom_names, self.residue_numbers, ["R1"])