class AtomTest(ut.TestCase): def setUp(self): self.atom = Atom(pdb='1GID', model=1, chain='A', component_id='C', component_number=50, name="C1'", symmetry='6_555', x=-1, y=0, z=0) def test_has_item_access(self): self.assertEqual(-1, self.atom.x) def test_computes_a_unit_id(self): val = self.atom.unit_id() ans = "1GID|1|A|C|50|C1'|||6_555" self.assertEqual(val, ans) def test_computes_its_component_id(self): val = self.atom.component_unit_id() ans = "1GID|1|A|C|50||||6_555" self.assertEqual(val, ans) def test_can_get_coordinates(self): val = self.atom.coordinates() ans = np.array([-1, 0, 0]) np.testing.assert_array_equal(val, ans) def test_can_get_distance_between_atoms(self): val = self.atom.distance(Atom(x=1, y=0, z=0)) self.assertEqual(2.0, val)
class AtomTransformationTest(ut.TestCase): def setUp(self): self.atom = Atom(pdb='1GID', model=1, chain='A', component_id='C', component_number=50, name="C1'", symmetry='6_555', x=-1, y=0, z=2, type='Bob', polymeric=True) trans = np.array([[1.0, 0.0, 0.0, 0.0], [0.0, -1.0, 0.0, 97.240], [0.0, 0.0, -1.0, 0.0], [0.0, 0.0, 0.0, 1.0]]) self.trans = self.atom.transform(trans) def test_transform_moves_coordiantes(self): val = [self.trans.x, self.trans.y, self.trans.z] ans = [-1.0, 97.240, -2.0] self.assertEquals(ans, val) def test_transform_preserves_unit_id(self): val = self.trans.unit_id() ans = self.atom.unit_id() self.assertEquals(ans, val) def test_perserves_the_type(self): self.assertEquals('Bob', self.trans.type) def test_perserves_the_polymeric(self): self.assertEquals(True, self.trans.polymeric)
class AlternativeAtomTest(ut.TestCase): def setUp(self): self.atom = Atom(pdb='4OQ8', model=1, chain='A', component_id='SER', component_number=27, name='CA', alt_id='A', symmetry='PP') def test_has_a_unit_id(self): self.assertEquals('4OQ8|1|A|SER|27|CA|A||PP', self.atom.unit_id()) def test_has_a_component_id(self): self.assertEquals('4OQ8|1|A|SER|27||A||PP', self.atom.component_unit_id())