Exemple #1
0
    def test_from_adjacency_list(self):
        """
        adjlist: Test the Group.from_adjacency_list() method.
        """
        adjlist = """
1 *2 [Cs,Cd]   u0 {2,[S,D]} {3,S}
2 *1 [O2s,O2d] u0 {1,[S,D]}
3    R!H       u0 {1,S}
            """
        group = Group().from_adjacency_list(adjlist)

        atom1, atom2, atom3 = group.atoms
        self.assertTrue(group.has_bond(atom1, atom2))
        self.assertTrue(group.has_bond(atom1, atom3))
        self.assertFalse(group.has_bond(atom2, atom3))
        bond12 = atom1.bonds[atom2]
        bond13 = atom1.bonds[atom3]

        self.assertTrue(atom1.label == '*2')
        self.assertTrue(atom1.atomtype[0].label in ['Cs', 'Cd'])
        self.assertTrue(atom1.atomtype[1].label in ['Cs', 'Cd'])
        self.assertTrue(atom1.radical_electrons == [0])

        self.assertTrue(atom2.label == '*1')
        self.assertTrue(atom2.atomtype[0].label in ['O2s', 'O2d'])
        self.assertTrue(atom2.atomtype[1].label in ['O2s', 'O2d'])
        self.assertTrue(atom2.radical_electrons == [0])

        self.assertTrue(atom3.label == '')
        self.assertTrue(atom3.atomtype[0].label == 'R!H')
        self.assertTrue(atom3.radical_electrons == [0])

        self.assertTrue(bond12.order == [1, 2])
        self.assertTrue(bond13.is_single())
Exemple #2
0
    def test_from_old_adjacency_list1(self):
        """
        adjlist: Test the Group.from_adjacency_list() method on an old style adjacency list.
        """
        adjlist = """
1 *2 {Cs,Cd} 0 {2,{S,D}} {3,S}
2 *1 {O2s,O2d}  0   {1,{S,D}}
3    R!H     {0,1} {1,S}
            """
        group = Group().from_adjacency_list(adjlist)

        atom1, atom2, atom3 = group.atoms
        self.assertTrue(group.has_bond(atom1, atom2))
        self.assertTrue(group.has_bond(atom1, atom3))
        self.assertFalse(group.has_bond(atom2, atom3))
        bond12 = atom1.bonds[atom2]
        bond13 = atom1.bonds[atom3]

        self.assertTrue(atom1.label == '*2')
        self.assertTrue(atom1.atomtype[0].label in ['Cs', 'Cd'])
        self.assertTrue(atom1.atomtype[1].label in ['Cs', 'Cd'])
        self.assertTrue(atom1.radical_electrons == [0])

        self.assertTrue(atom2.label == '*1')
        self.assertTrue(atom2.atomtype[0].label in ['O2s', 'O2d'])
        self.assertTrue(atom2.atomtype[1].label in ['O2s', 'O2d'])
        self.assertTrue(atom2.radical_electrons == [0])

        self.assertTrue(atom3.label == '')
        self.assertTrue(atom3.atomtype[0].label == 'R!H')
        self.assertTrue(atom3.radical_electrons == [0, 1])

        self.assertTrue(bond12.order == [1, 2])
        self.assertTrue(bond13.is_single())