Пример #1
0
class BasicTest(ut.TestCase):
    def setUp(self):
        self.atoms = [
            Atom(type='C', name='a1', polymeric='A', component_number=3,
                 x=0.0, y=0.0, z=0.0),
            Atom(type='C', name='a2', polymeric='B', component_number=2,
                 x=0.0, y=0.0, z=0.0),
            Atom(type='N', name='b1', polymeric='C', component_number=1,
                 x=0.0, y=0.0, z=0.0),
            Atom(type='N', name='c2', polymeric='C', component_number=0,
                 x=0.0, y=0.0, z=0.0)
        ]
        self.component = Component(self.atoms, type='rna', pdb='1GID', model=1,
                                   chain='A', sequence='C', number=50,
                                   symmetry='6_555')

    def test_has_item_access(self):
        val = self.component.type
        ans = 'rna'
        self.assertEqual(val, ans)

    def test_length_is_number_atoms(self):
        val = len(self.component)
        ans = 4
        self.assertEqual(val, ans)

    def test_computes_unit_id(self):
        val = self.component.unit_id()
        ans = "1GID|1|A|C|50||||6_555"
        self.assertEquals(val, ans)

    def test_can_get_filtered_atoms(self):
        val = list(self.component.atoms(type='C'))
        ans = self.atoms[0:2]
        self.assertEquals(val, ans)

    def test_can_filter_using_a_list(self):
        val = list(self.component.atoms(polymeric=['A', 'C']))
        ans = [self.atoms[0], self.atoms[2], self.atoms[3]]
        self.assertEquals(val, ans)

    def test_can_filter_using_a_function(self):
        val = list(self.component.atoms(polymeric=lambda a: a == 'C'))
        ans = self.atoms[2:4]
        self.assertEquals(val, ans)

    def test_can_filter_by_several_attributes(self):
        val = list(self.component.atoms(type='C', polymeric='B'))
        ans = [self.atoms[1]]
        self.assertEquals(val, ans)

    def test_can_check_is_complete(self):
        val = self.component.is_complete(['a1', 'a2', 'b1'])
        self.assertTrue(val)

    def test_can_check_is_not_complete(self):
        val = self.component.is_complete(['a1', 'a2', 'g3'])
        self.assertFalse(val)

    def test_can_check_is_complete_using_custom_key(self):
        val = self.component.is_complete([1, 2], key='component_number')
        self.assertTrue(val)

    def test_can_check_is_not_complete_using_custom_key(self):
        val = self.component.is_complete([1, 2, 10], key='component_number')
        self.assertFalse(val)

    def test_knows_is_equal_to_itself(self):
        self.assertTrue(self.component == self.component)

    def test_knows_is_equal_to_equivelant_component(self):
        self.assertTrue(self.component == self.component.select())