Пример #1
0
    def testBondSymmetryNumber(self):

        testSet = [
            ['CC', 2],
            ['CCC', 1],
            ['CCCC', 2],
            ['C=C', 2],
            ['C#C', 2],
        ]
        failMessage = ''

        for SMILES, symmetry in testSet:
            molecule = Molecule().fromSMILES(SMILES)
            molecule.makeHydrogensExplicit()
            symmetryNumber = 1
            for atom1 in molecule.bonds:
                for atom2 in molecule.bonds[atom1]:
                    if molecule.atoms.index(atom1) < molecule.atoms.index(atom2):
                        symmetryNumber *= molecule.calculateBondSymmetryNumber(atom1, atom2)
            if symmetryNumber != symmetry:
                failMessage += 'Expected symmetry number of %i for %s, got %i\n' % (symmetry, SMILES, symmetryNumber)
        self.assertEqual(failMessage, '', failMessage)