Exemple #1
0
    def test_requires_explicit_hydrogens(self):
        smirks = helium.Smirks()

        smirks.init('[C:1]', '[N:1]')
        self.assertFalse(smirks.requiresExplicitHydrogens())

        smirks.init('[C:1][H:2]', '[N:1][H:2]')
        self.assertTrue(smirks.requiresExplicitHydrogens())
Exemple #2
0
    def test_requires_ring_set(self):
        smirks = helium.Smirks()

        smirks.init('[C:1]', '[N:1]')
        self.assertFalse(smirks.requiresRingSet())

        smirks.init('[Nr5:1]', '[C:1]')
        self.assertTrue(smirks.requiresRingSet())
Exemple #3
0
    def test_valid_smirks(self):
        smirks = helium.Smirks()
        self.assertTrue(smirks.init('[C:1]', '[N:1]'))
        self.assertFalse(smirks.error())
        self.assertEqual(0, len(str(smirks.error())))

        self.assertTrue(smirks.init('[C:1]>>[N:1]'))
        self.assertFalse(smirks.error())
        self.assertEqual(0, len(str(smirks.error())))
Exemple #4
0
    def test_apply(self):
        smirks = helium.Smirks()
        self.assertTrue(smirks.init('[C:1]>>[N:1]'))
        mol = helium.Molecule()

        SMILES.read('C', mol)
        self.assertTrue(smirks.apply(mol, helium.RingSet(mol)))
        self.assertEqual('N', SMILES.write(mol))

        SMILES.read('O', mol)
        self.assertFalse(smirks.apply(mol, helium.RingSet(mol)))
        self.assertEqual('O', SMILES.write(mol))
Exemple #5
0
 def test_fix(self):
     smirks = helium.Smirks()
     smirks.setFixMass(True)
     smirks.setFixHydrogens(False)
Exemple #6
0
 def test_invalid_smirks(self):
     smirks = helium.Smirks()
     self.assertFalse(smirks.init('fas', '[C]'))
     self.assertTrue(smirks.error().__nonzero__())
     self.assertNotEqual(0, len(str(smirks.error())))