File: run_tests.py

package info (click to toggle)
rdkit 202503.6-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 222,000 kB
  • sloc: cpp: 411,111; python: 78,482; ansic: 26,181; java: 8,285; javascript: 4,404; sql: 2,393; yacc: 1,626; lex: 1,267; cs: 1,090; makefile: 581; xml: 229; fortran: 183; sh: 121
file content (39 lines) | stat: -rw-r--r-- 1,231 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#
# Copyright (C) 2015 Greg Landrum
#   This file is part of the RDKit.
#   The contents are covered by the terms of the BSD license
#   which is included in the file license.txt, found at the root
#   of the RDKit source tree.
#

import csv
import os
import unittest

from rdkit import Chem, RDConfig


class TestCase(unittest.TestCase):

  def setUp(self):
    self.basePath = os.path.join(RDConfig.RDDataDir, 'Pains')
    self.painsFile = os.path.join(self.basePath, 'wehi_pains.csv')
    with open(self.painsFile, 'r') as inf:
      self.painsDefs = [x for x in csv.reader(inf)]
    self.matchers = [Chem.MolFromSmarts(x[0], mergeHs=True) for x in self.painsDefs]

  def test1(self):
    " molecules that we know should match "
    with open(os.path.join(self.basePath, 'test_data', 'test_set3.txt'), 'r') as inf:
      testData = [x.strip().split() for x in inf if x[0] != '#']
    for line in testData:
      self.assertEqual(len(line), 5)
      id_ = int(line[0])
      m = Chem.MolFromSmiles(line[2])
      self.assertTrue(m is not None)
      self.assertTrue(m.HasSubstructMatch(self.matchers[id_]))
      self.assertTrue(Chem.AddHs(m).HasSubstructMatch(self.matchers[id_]))


if __name__ == '__main__':
  unittest.main()