File: run_tests.py

package info (click to toggle)
rdkit 201809.1%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 123,688 kB
  • sloc: cpp: 230,509; python: 70,501; java: 6,329; ansic: 5,427; sql: 1,899; yacc: 1,739; lex: 1,243; makefile: 445; xml: 229; fortran: 183; sh: 123; cs: 93
file content (37 lines) | stat: -rw-r--r-- 1,256 bytes parent folder | download
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
#
# 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.
#
from __future__ import print_function

import unittest, os, csv
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()