Exemple #1
0
  def testStruChkInMemoryLog(self):
    r = pyAvalonTools.InitializeCheckMol(STRUCHK_INIT_IN_MEMORY_LOGGING)
    try:
      (err, fixed_mol) = pyAvalonTools.CheckMoleculeString(atom_clash, False)
      log =  pyAvalonTools.GetCheckMolLog()
      self.assertTrue("of average bond length from bond" in log)
      
      # make sure that the log is cleared for the next molecule
      (err, fixed_mol) = pyAvalonTools.CheckMoleculeString("c1ccccc1", True)
      log =  pyAvalonTools.GetCheckMolLog()
      self.assertFalse(log)

    finally:
      pyAvalonTools.CloseCheckMolFiles()
    def testStruChk(self):
        smi_good = 'c1ccccc1C1(CC-C(C)C1)C'
        smi_bad = 'c1c(R)cccc1C1(CC-C(C)C1)C'
        r = pyAvalonTools.InitializeCheckMol(STRUCHK_INIT)
        self.assertEqual(r, 0)
        (err, fixed_mol) = pyAvalonTools.CheckMolecule(smi_good, True)
        self.assertEqual(err, 0)
        mol = Chem.MolFromSmiles(smi_good)
        (err, fixed_mol) = pyAvalonTools.CheckMolecule(mol)
        self.assertEqual(err, 0)

        (err, fixed_mol) = pyAvalonTools.CheckMoleculeString(smi_good, True)
        self.assertEqual(err, 0)
        self.assertNotEqual(fixed_mol, "")
        self.assertTrue(fixed_mol.find('M  END') > 0)

        (err, fixed_mol) = pyAvalonTools.CheckMolecule(smi_bad, False)
        self.assertNotEqual(err, 0)
        self.assertFalse(fixed_mol)

        (err, fixed_mol) = pyAvalonTools.CheckMoleculeString(smi_bad, False)
        self.assertNotEqual(err, 0)
        self.assertFalse(fixed_mol)
        pyAvalonTools.CloseCheckMolFiles()