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)