Coverage Report

Created: 2026-04-10 07:02

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/rdkit/Code/GraphMol/QueryOps.h
Line
Count
Source
1
//
2
//  Copyright (C) 2003-2021 Greg Landrum and other RDKit contributors
3
//
4
//   @@ All Rights Reserved @@
5
//  This file is part of the RDKit.
6
//  The contents are covered by the terms of the BSD license
7
//  which is included in the file license.txt, found at the root
8
//  of the RDKit source tree.
9
//
10
11
//! \file QueryOps.h
12
/*!
13
    \brief Includes a bunch of functionality for handling Atom and Bond queries.
14
*/
15
#include <RDGeneral/export.h>
16
#include <RDGeneral/Dict.h>
17
#ifndef RD_QUERY_OPS_H
18
#define RD_QUERY_OPS_H
19
20
#include <GraphMol/RDKitBase.h>
21
#include <Query/QueryObjects.h>
22
#include <Query/Query.h>
23
#include <DataStructs/BitVects.h>
24
#include <DataStructs/BitOps.h>
25
#include <functional>
26
27
#include <functional>
28
#include <limits>
29
30
#ifdef RDK_BUILD_THREADSAFE_SSS
31
#include <mutex>
32
#include <utility>
33
#endif
34
35
namespace RDKit {
36
typedef Queries::Query<bool, Atom const *, true> ATOM_BOOL_QUERY;
37
typedef Queries::Query<bool, Bond const *, true> BOND_BOOL_QUERY;
38
39
typedef Queries::AndQuery<int, Atom const *, true> ATOM_AND_QUERY;
40
typedef Queries::AndQuery<int, Bond const *, true> BOND_AND_QUERY;
41
42
typedef Queries::OrQuery<int, Atom const *, true> ATOM_OR_QUERY;
43
typedef Queries::OrQuery<int, Bond const *, true> BOND_OR_QUERY;
44
45
typedef Queries::XOrQuery<int, Atom const *, true> ATOM_XOR_QUERY;
46
typedef Queries::XOrQuery<int, Bond const *, true> BOND_XOR_QUERY;
47
48
typedef Queries::EqualityQuery<int, Atom const *, true> ATOM_EQUALS_QUERY;
49
typedef Queries::EqualityQuery<int, Bond const *, true> BOND_EQUALS_QUERY;
50
51
typedef Queries::GreaterQuery<int, Atom const *, true> ATOM_GREATER_QUERY;
52
typedef Queries::GreaterQuery<int, Bond const *, true> BOND_GREATER_QUERY;
53
54
typedef Queries::GreaterEqualQuery<int, Atom const *, true>
55
    ATOM_GREATEREQUAL_QUERY;
56
typedef Queries::GreaterEqualQuery<int, Bond const *, true>
57
    BOND_GREATEREQUAL_QUERY;
58
59
typedef Queries::LessQuery<int, Atom const *, true> ATOM_LESS_QUERY;
60
typedef Queries::LessQuery<int, Bond const *, true> BOND_LESS_QUERY;
61
62
typedef Queries::LessEqualQuery<int, Atom const *, true> ATOM_LESSEQUAL_QUERY;
63
typedef Queries::LessEqualQuery<int, Bond const *, true> BOND_LESSEQUAL_QUERY;
64
65
typedef Queries::RangeQuery<int, Atom const *, true> ATOM_RANGE_QUERY;
66
typedef Queries::RangeQuery<int, Bond const *, true> BOND_RANGE_QUERY;
67
68
typedef Queries::SetQuery<int, Atom const *, true> ATOM_SET_QUERY;
69
typedef Queries::SetQuery<int, Bond const *, true> BOND_SET_QUERY;
70
71
typedef Queries::Query<int, Bond const *, true> BOND_NULL_QUERY;
72
typedef Queries::Query<int, Atom const *, true> ATOM_NULL_QUERY;
73
74
// -------------------------------------------------
75
// common atom queries
76
77
0
static inline int queryAtomAromatic(Atom const *at) {
78
0
  return at->getIsAromatic();
79
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomAromatic(RDKit::Atom const*)
80
0
static inline int queryAtomAliphatic(Atom const *at) {
81
0
  return !(at->getIsAromatic());
82
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomAliphatic(RDKit::Atom const*)
83
0
static inline int queryAtomExplicitDegree(Atom const *at) {
84
0
  return at->getDegree();
85
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomExplicitDegree(RDKit::Atom const*)
86
0
static inline int queryAtomTotalDegree(Atom const *at) {
87
0
  return at->getTotalDegree();
88
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomTotalDegree(RDKit::Atom const*)
89
//! D and T are treated as "non-hydrogen" here
90
1.60k
static inline int queryAtomNonHydrogenDegree(Atom const *at) {
91
1.60k
  int res = 0;
92
1.60k
  for (const auto nbri :
93
1.79k
       boost::make_iterator_range(at->getOwningMol().getAtomNeighbors(at))) {
94
1.79k
    const auto nbr = at->getOwningMol()[nbri];
95
1.79k
    if (nbr->getAtomicNum() != 1 || nbr->getIsotope() > 1) {
96
1.75k
      res++;
97
1.75k
    }
98
1.79k
  }
99
100
1.60k
  return res;
101
1.60k
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
QueryOps.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Line
Count
Source
90
1.60k
static inline int queryAtomNonHydrogenDegree(Atom const *at) {
91
1.60k
  int res = 0;
92
1.60k
  for (const auto nbri :
93
1.79k
       boost::make_iterator_range(at->getOwningMol().getAtomNeighbors(at))) {
94
1.79k
    const auto nbr = at->getOwningMol()[nbri];
95
1.79k
    if (nbr->getAtomicNum() != 1 || nbr->getIsotope() > 1) {
96
1.75k
      res++;
97
1.75k
    }
98
1.79k
  }
99
100
1.60k
  return res;
101
1.60k
};
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomNonHydrogenDegree(RDKit::Atom const*)
102
//! D and T are not treated as heavy atoms here
103
0
static inline int queryAtomHeavyAtomDegree(Atom const *at) {
104
0
  int heavyDegree = 0;
105
0
  for (const auto nbri :
106
0
       boost::make_iterator_range(at->getOwningMol().getAtomNeighbors(at))) {
107
0
    const auto nbr = at->getOwningMol()[nbri];
108
0
    if (nbr->getAtomicNum() > 1) {
109
0
      heavyDegree++;
110
0
    }
111
0
  }
112
113
0
  return heavyDegree;
114
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomHeavyAtomDegree(RDKit::Atom const*)
115
0
static inline int queryAtomHCount(Atom const *at) {
116
0
  return at->getTotalNumHs(true);
117
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomHCount(RDKit::Atom const*)
118
0
static inline int queryAtomImplicitHCount(Atom const *at) {
119
0
  return at->getTotalNumHs(false);
120
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomImplicitHCount(RDKit::Atom const*)
121
0
static inline int queryAtomHasImplicitH(Atom const *at) {
122
0
  return int(at->getTotalNumHs(false) > 0);
123
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomHasImplicitH(RDKit::Atom const*)
124
0
static inline int queryAtomImplicitValence(Atom const *at) {
125
0
  return at->getValence(Atom::ValenceType::IMPLICIT);
126
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomImplicitValence(RDKit::Atom const*)
127
0
static inline int queryAtomExplicitValence(Atom const *at) {
128
0
  return at->getValence(Atom::ValenceType::EXPLICIT) - at->getNumExplicitHs();
129
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomExplicitValence(RDKit::Atom const*)
130
0
static inline int queryAtomTotalValence(Atom const *at) {
131
0
  return at->getTotalValence();
132
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomTotalValence(RDKit::Atom const*)
133
0
static inline int queryAtomUnsaturated(Atom const *at) {
134
0
  return at->getTotalDegree() < at->getTotalValence();
135
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomUnsaturated(RDKit::Atom const*)
136
32.9M
static inline int queryAtomNum(Atom const *at) { return at->getAtomicNum(); }
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
QueryOps.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Line
Count
Source
136
32.9M
static inline int queryAtomNum(Atom const *at) { return at->getAtomicNum(); }
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomNum(RDKit::Atom const*)
137
259k
static inline int makeAtomType(int atomic_num, bool aromatic) {
138
259k
  return atomic_num + 1000 * static_cast<int>(aromatic);
139
259k
}
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: ROMol.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: MolPickler.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: AtomIterators.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: Chirality.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: new_canon.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: FindStereo.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: Atom.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: QueryAtom.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: QueryBond.cpp:RDKit::makeAtomType(int, bool)
QueryOps.cpp:RDKit::makeAtomType(int, bool)
Line
Count
Source
137
259k
static inline int makeAtomType(int atomic_num, bool aromatic) {
138
259k
  return atomic_num + 1000 * static_cast<int>(aromatic);
139
259k
}
Unexecuted instantiation: MolOps.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: Aromaticity.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: Kekulize.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: AddHs.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: Subset.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: SmilesParse.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: smarts.tab.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: Canon.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: MolFileParser.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: GenericGroups.cpp:RDKit::makeAtomType(int, bool)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::makeAtomType(int, bool)
140
0
static inline void parseAtomType(int val, int &atomic_num, bool &aromatic) {
141
0
  if (val > 1000) {
142
0
    aromatic = true;
143
0
    atomic_num = val - 1000;
144
0
  } else {
145
0
    aromatic = false;
146
0
    atomic_num = val;
147
0
  }
148
0
}
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: ROMol.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: MolPickler.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: AtomIterators.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: Chirality.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: new_canon.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: FindStereo.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: Atom.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: QueryAtom.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: QueryBond.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: QueryOps.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: MolOps.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: Aromaticity.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: Kekulize.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: AddHs.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: Subset.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: SmilesParse.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: smarts.tab.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: Canon.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: MolFileParser.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: GenericGroups.cpp:RDKit::parseAtomType(int, int&, bool&)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::parseAtomType(int, int&, bool&)
149
0
static inline bool getAtomTypeIsAromatic(int val) { return val > 1000; }
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: ROMol.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: MolPickler.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: AtomIterators.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: Chirality.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: new_canon.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: FindStereo.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: Atom.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: QueryAtom.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: QueryBond.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: QueryOps.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: MolOps.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: Aromaticity.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: Kekulize.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: AddHs.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: Subset.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: SmilesParse.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: smarts.tab.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: Canon.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: MolFileParser.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: GenericGroups.cpp:RDKit::getAtomTypeIsAromatic(int)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::getAtomTypeIsAromatic(int)
150
0
static inline int getAtomTypeAtomicNum(int val) {
151
0
  if (val > 1000) {
152
0
    return val - 1000;
153
0
  }
154
0
  return val;
155
0
}
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: ROMol.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: MolPickler.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: AtomIterators.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: Chirality.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: new_canon.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: FindStereo.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: Atom.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: QueryAtom.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: QueryBond.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: QueryOps.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: MolOps.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: Aromaticity.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: Kekulize.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: AddHs.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: Subset.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: SmilesParse.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: smarts.tab.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: Canon.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: MolFileParser.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: GenericGroups.cpp:RDKit::getAtomTypeAtomicNum(int)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::getAtomTypeAtomicNum(int)
156
157
0
static inline int queryAtomType(Atom const *at) {
158
0
  return makeAtomType(at->getAtomicNum(), at->getIsAromatic());
159
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomType(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomType(RDKit::Atom const*)
160
const int massIntegerConversionFactor = 1000;
161
0
static inline int queryAtomMass(Atom const *at) {
162
0
  return static_cast<int>(
163
0
      std::round(massIntegerConversionFactor * at->getMass()));
164
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomMass(RDKit::Atom const*)
165
0
static inline int queryAtomIsotope(Atom const *at) {
166
0
  return static_cast<int>(at->getIsotope());
167
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomIsotope(RDKit::Atom const*)
168
0
static inline int queryAtomFormalCharge(Atom const *at) {
169
0
  return static_cast<int>(at->getFormalCharge());
170
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomFormalCharge(RDKit::Atom const*)
171
0
static inline int queryAtomNegativeFormalCharge(Atom const *at) {
172
0
  return static_cast<int>(-1 * at->getFormalCharge());
173
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomNegativeFormalCharge(RDKit::Atom const*)
174
0
static inline int queryAtomHybridization(Atom const *at) {
175
0
  return at->getHybridization();
176
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomHybridization(RDKit::Atom const*)
177
0
static inline int queryAtomNumRadicalElectrons(Atom const *at) {
178
0
  return at->getNumRadicalElectrons();
179
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomNumRadicalElectrons(RDKit::Atom const*)
180
0
static inline int queryAtomHasChiralTag(Atom const *at) {
181
0
  return at->getChiralTag() != Atom::CHI_UNSPECIFIED;
182
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomHasChiralTag(RDKit::Atom const*)
183
0
static inline int queryAtomMissingChiralTag(Atom const *at) {
184
0
  return at->getChiralTag() == Atom::CHI_UNSPECIFIED &&
185
0
         at->hasProp(common_properties::_ChiralityPossible);
186
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomMissingChiralTag(RDKit::Atom const*)
187
188
0
static inline int queryAtomHasHeteroatomNbrs(Atom const *at) {
189
0
  ROMol::ADJ_ITER nbrIdx, endNbrs;
190
0
  boost::tie(nbrIdx, endNbrs) = at->getOwningMol().getAtomNeighbors(at);
191
0
  while (nbrIdx != endNbrs) {
192
0
    const Atom *nbr = at->getOwningMol()[*nbrIdx];
193
0
    if (nbr->getAtomicNum() != 6 && nbr->getAtomicNum() != 1) {
194
0
      return 1;
195
0
    }
196
0
    ++nbrIdx;
197
0
  }
198
0
  return 0;
199
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomHasHeteroatomNbrs(RDKit::Atom const*)
200
201
0
static inline int queryAtomNumHeteroatomNbrs(Atom const *at) {
202
0
  int res = 0;
203
0
  ROMol::ADJ_ITER nbrIdx, endNbrs;
204
0
  boost::tie(nbrIdx, endNbrs) = at->getOwningMol().getAtomNeighbors(at);
205
0
  while (nbrIdx != endNbrs) {
206
0
    const Atom *nbr = at->getOwningMol()[*nbrIdx];
207
0
    if (nbr->getAtomicNum() != 6 && nbr->getAtomicNum() != 1) {
208
0
      ++res;
209
0
    }
210
0
    ++nbrIdx;
211
0
  }
212
0
  return res;
213
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomNumHeteroatomNbrs(RDKit::Atom const*)
214
215
0
static inline int queryAtomHasAliphaticHeteroatomNbrs(Atom const *at) {
216
0
  ROMol::ADJ_ITER nbrIdx, endNbrs;
217
0
  boost::tie(nbrIdx, endNbrs) = at->getOwningMol().getAtomNeighbors(at);
218
0
  while (nbrIdx != endNbrs) {
219
0
    const Atom *nbr = at->getOwningMol()[*nbrIdx];
220
0
    if ((!nbr->getIsAromatic()) && nbr->getAtomicNum() != 6 &&
221
0
        nbr->getAtomicNum() != 1) {
222
0
      return 1;
223
0
    }
224
0
    ++nbrIdx;
225
0
  }
226
0
  return 0;
227
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomHasAliphaticHeteroatomNbrs(RDKit::Atom const*)
228
229
0
static inline int queryAtomNumAliphaticHeteroatomNbrs(Atom const *at) {
230
0
  int res = 0;
231
0
  ROMol::ADJ_ITER nbrIdx, endNbrs;
232
0
  boost::tie(nbrIdx, endNbrs) = at->getOwningMol().getAtomNeighbors(at);
233
0
  while (nbrIdx != endNbrs) {
234
0
    const Atom *nbr = at->getOwningMol()[*nbrIdx];
235
0
    if ((!nbr->getIsAromatic()) && nbr->getAtomicNum() != 6 &&
236
0
        nbr->getAtomicNum() != 1) {
237
0
      ++res;
238
0
    }
239
0
    ++nbrIdx;
240
0
  }
241
0
  return res;
242
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomNumAliphaticHeteroatomNbrs(RDKit::Atom const*)
243
244
RDKIT_GRAPHMOL_EXPORT unsigned int queryAtomBondProduct(Atom const *at);
245
RDKIT_GRAPHMOL_EXPORT unsigned int queryAtomAllBondProduct(Atom const *at);
246
247
// -------------------------------------------------
248
// common bond queries
249
250
0
static inline int queryBondOrder(Bond const *bond) {
251
0
  return static_cast<int>(bond->getBondType());
252
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryBondOrder(RDKit::Bond const*)
253
0
static inline int queryBondIsSingleOrAromatic(Bond const *bond) {
254
0
  return static_cast<int>(bond->getBondType() == Bond::SINGLE ||
255
0
                          bond->getBondType() == Bond::AROMATIC);
256
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryBondIsSingleOrAromatic(RDKit::Bond const*)
257
0
static inline int queryBondIsDoubleOrAromatic(Bond const *bond) {
258
0
  return static_cast<int>(bond->getBondType() == Bond::DOUBLE ||
259
0
                          bond->getBondType() == Bond::AROMATIC);
260
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryBondIsDoubleOrAromatic(RDKit::Bond const*)
261
0
static inline int queryBondIsSingleOrDouble(Bond const *bond) {
262
0
  return static_cast<int>(bond->getBondType() == Bond::SINGLE ||
263
0
                          bond->getBondType() == Bond::DOUBLE);
264
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryBondIsSingleOrDouble(RDKit::Bond const*)
265
0
static inline int queryBondIsSingleOrDoubleOrAromatic(Bond const *bond) {
266
0
  return static_cast<int>(bond->getBondType() == Bond::SINGLE ||
267
0
                          bond->getBondType() == Bond::DOUBLE ||
268
0
                          bond->getBondType() == Bond::AROMATIC);
269
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryBondIsSingleOrDoubleOrAromatic(RDKit::Bond const*)
270
0
static inline int queryBondDir(Bond const *bond) {
271
0
  return static_cast<int>(bond->getBondDir());
272
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryBondDir(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryBondDir(RDKit::Bond const*)
273
0
static inline int queryIsBondInNRings(Bond const *at) {
274
0
  return at->getOwningMol().getRingInfo()->numBondRings(at->getIdx());
275
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryIsBondInNRings(RDKit::Bond const*)
276
0
static inline int queryBondHasStereo(Bond const *bnd) {
277
0
  return bnd->getStereo() > Bond::STEREONONE;
278
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryBondHasStereo(RDKit::Bond const*)
279
280
// -------------------------------------------------
281
// ring queries
282
283
0
static inline int queryIsAtomInNRings(Atom const *at) {
284
0
  return at->getOwningMol().getRingInfo()->numAtomRings(at->getIdx());
285
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryIsAtomInNRings(RDKit::Atom const*)
286
1.11M
static inline int queryIsAtomInRing(Atom const *at) {
287
1.11M
  return at->getOwningMol().getRingInfo()->numAtomRings(at->getIdx()) != 0;
288
1.11M
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
new_canon.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Line
Count
Source
286
1.11M
static inline int queryIsAtomInRing(Atom const *at) {
287
1.11M
  return at->getOwningMol().getRingInfo()->numAtomRings(at->getIdx()) != 0;
288
1.11M
};
Unexecuted instantiation: FindStereo.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryIsAtomInRing(RDKit::Atom const*)
289
0
static inline int queryAtomHasRingBond(Atom const *at) {
290
0
  ROMol::OBOND_ITER_PAIR atomBonds = at->getOwningMol().getAtomBonds(at);
291
0
  while (atomBonds.first != atomBonds.second) {
292
0
    unsigned int bondIdx =
293
0
        at->getOwningMol().getTopology()[*atomBonds.first]->getIdx();
294
0
    if (at->getOwningMol().getRingInfo()->numBondRings(bondIdx)) {
295
0
      return 1;
296
0
    }
297
0
    ++atomBonds.first;
298
0
  }
299
0
  return 0;
300
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomHasRingBond(RDKit::Atom const*)
301
RDKIT_GRAPHMOL_EXPORT int queryIsAtomBridgehead(Atom const *at);
302
303
0
static inline int queryIsBondInRing(Bond const *bond) {
304
0
  return bond->getOwningMol().getRingInfo()->numBondRings(bond->getIdx()) != 0;
305
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryIsBondInRing(RDKit::Bond const*)
306
0
static inline int queryAtomMinRingSize(Atom const *at) {
307
0
  return at->getOwningMol().getRingInfo()->minAtomRingSize(at->getIdx());
308
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomMinRingSize(RDKit::Atom const*)
309
0
static inline int queryBondMinRingSize(Bond const *bond) {
310
0
  return bond->getOwningMol().getRingInfo()->minBondRingSize(bond->getIdx());
311
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryBondMinRingSize(RDKit::Bond const*)
312
313
2.45k
static inline int queryAtomRingBondCount(Atom const *at) {
314
  // EFF: cache this result
315
2.45k
  int res = 0;
316
2.45k
  ROMol::OBOND_ITER_PAIR atomBonds = at->getOwningMol().getAtomBonds(at);
317
7.35k
  while (atomBonds.first != atomBonds.second) {
318
4.90k
    unsigned int bondIdx =
319
4.90k
        at->getOwningMol().getTopology()[*atomBonds.first]->getIdx();
320
4.90k
    if (at->getOwningMol().getRingInfo()->numBondRings(bondIdx)) {
321
732
      res++;
322
732
    }
323
4.90k
    ++atomBonds.first;
324
4.90k
  }
325
2.45k
  return res;
326
2.45k
}
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
QueryOps.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Line
Count
Source
313
2.45k
static inline int queryAtomRingBondCount(Atom const *at) {
314
  // EFF: cache this result
315
2.45k
  int res = 0;
316
2.45k
  ROMol::OBOND_ITER_PAIR atomBonds = at->getOwningMol().getAtomBonds(at);
317
7.35k
  while (atomBonds.first != atomBonds.second) {
318
4.90k
    unsigned int bondIdx =
319
4.90k
        at->getOwningMol().getTopology()[*atomBonds.first]->getIdx();
320
4.90k
    if (at->getOwningMol().getRingInfo()->numBondRings(bondIdx)) {
321
732
      res++;
322
732
    }
323
4.90k
    ++atomBonds.first;
324
4.90k
  }
325
2.45k
  return res;
326
2.45k
}
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomRingBondCount(RDKit::Atom const*)
327
328
0
static inline int queryAtomIsInRingOfSize(Atom const *at, int tgt) {
329
0
  if (at->getOwningMol().getRingInfo()->isAtomInRingOfSize(at->getIdx(), tgt)) {
330
0
    return tgt;
331
0
  } else {
332
0
    return 0;
333
0
  }
334
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int)
335
//! returns the size of an SSSR ring the atom is in that's within the specified
336
//! range, or a value outside the range if there are no rings with a size in the
337
//!   range. passing -1 for a bound leaves the range without a limit in that
338
//!   direction
339
//! always returns a value outside the range for atoms that are not in a ring
340
static inline int queryAtomIsInRingOfSize(Atom const *at, int lower, int upper,
341
                                          bool lowerOpen = false,
342
0
                                          bool upperOpen = false) {
343
0
  const auto ri = at->getOwningMol().getRingInfo();
344
0
  for (const auto ringSize : ri->atomRingSizes(at->getIdx())) {
345
0
    if ((ringSize > lower || (ringSize == lower && !lowerOpen)) &&
346
0
        (upper < 0 ||
347
0
         (ringSize < upper || (ringSize == upper && !upperOpen)))) {
348
0
      return ringSize;
349
0
    }
350
0
  }
351
  // we didn't find it, return a result that's not in the acceptable range:
352
0
  if (lower > -1) {
353
0
    return -1;
354
0
  } else if (upper > -1) {
355
0
    return std::numeric_limits<int>::max();
356
0
  } else {
357
0
    return 0;
358
0
  }
359
0
};
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomIsInRingOfSize(RDKit::Atom const*, int, int, bool, bool)
360
template <int tgt>
361
int queryAtomIsInRingOfSize(Atom const *at) {
362
  if (at->getOwningMol().getRingInfo()->isAtomInRingOfSize(at->getIdx(), tgt)) {
363
    return tgt;
364
  } else {
365
    return 0;
366
  }
367
};
368
template <int tgt>
369
0
int queryBondIsInRingOfSize(Bond const *bond) {
370
0
  if (bond->getOwningMol().getRingInfo()->isBondInRingOfSize(bond->getIdx(),
371
0
                                                             tgt)) {
372
0
    return tgt;
373
0
  } else {
374
0
    return 0;
375
0
  }
376
0
};
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<3>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<4>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<5>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<6>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<7>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<8>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<9>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<10>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<11>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<12>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<13>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<14>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<15>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<16>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<17>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<18>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<19>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::queryBondIsInRingOfSize<20>(RDKit::Bond const*)
377
378
template <class T>
379
T *makeAtomSimpleQuery(int what, std::function<int(Atom const *)> func,
380
3.71M
                       const std::string &description = "Atom Simple") {
381
3.71M
  T *res = new T;
382
3.71M
  res->setVal(what);
383
3.71M
  res->setDataFunc(func);
384
3.71M
  res->setDescription(description);
385
3.71M
  return res;
386
3.71M
}
Queries::EqualityQuery<int, RDKit::Atom const*, true>* RDKit::makeAtomSimpleQuery<Queries::EqualityQuery<int, RDKit::Atom const*, true> >(int, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
380
3.70M
                       const std::string &description = "Atom Simple") {
381
3.70M
  T *res = new T;
382
3.70M
  res->setVal(what);
383
3.70M
  res->setDataFunc(func);
384
3.70M
  res->setDescription(description);
385
3.70M
  return res;
386
3.70M
}
Queries::GreaterEqualQuery<int, RDKit::Atom const*, true>* RDKit::makeAtomSimpleQuery<Queries::GreaterEqualQuery<int, RDKit::Atom const*, true> >(int, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
380
398
                       const std::string &description = "Atom Simple") {
381
398
  T *res = new T;
382
398
  res->setVal(what);
383
398
  res->setDataFunc(func);
384
398
  res->setDescription(description);
385
398
  return res;
386
398
}
Queries::LessEqualQuery<int, RDKit::Atom const*, true>* RDKit::makeAtomSimpleQuery<Queries::LessEqualQuery<int, RDKit::Atom const*, true> >(int, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
380
9.78k
                       const std::string &description = "Atom Simple") {
381
9.78k
  T *res = new T;
382
9.78k
  res->setVal(what);
383
9.78k
  res->setDataFunc(func);
384
9.78k
  res->setDescription(description);
385
9.78k
  return res;
386
9.78k
}
387
388
static inline ATOM_RANGE_QUERY *makeAtomRangeQuery(
389
    int lower, int upper, bool lowerOpen, bool upperOpen,
390
    std::function<int(Atom const *)> func,
391
60
    const std::string &description = "Atom Range") {
392
60
  ATOM_RANGE_QUERY *res = new ATOM_RANGE_QUERY(lower, upper);
393
60
  res->setDataFunc(func);
394
60
  res->setDescription(description);
395
60
  res->setEndsOpen(lowerOpen, upperOpen);
396
60
  return res;
397
60
}
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: ROMol.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: MolPickler.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: AtomIterators.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: Chirality.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: new_canon.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: FindStereo.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: Atom.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: QueryAtom.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: QueryBond.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: QueryOps.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: MolOps.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: Aromaticity.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: Kekulize.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: AddHs.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: Subset.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: SmilesParse.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
smarts.tab.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
391
60
    const std::string &description = "Atom Range") {
392
60
  ATOM_RANGE_QUERY *res = new ATOM_RANGE_QUERY(lower, upper);
393
60
  res->setDataFunc(func);
394
60
  res->setDescription(description);
395
60
  res->setEndsOpen(lowerOpen, upperOpen);
396
60
  return res;
397
60
}
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: Canon.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: MolFileParser.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: GenericGroups.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::makeAtomRangeQuery(int, int, bool, bool, std::__1::function<int (RDKit::Atom const*)>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
398
399
//! returns a Query for matching atomic number
400
template <class T>
401
T *makeAtomNumQuery(int what, const std::string &descr) {
402
  return makeAtomSimpleQuery<T>(what, queryAtomNum, descr);
403
}
404
//! \overload
405
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomNumQuery(int what);
406
407
//! returns a Query for matching atomic number and aromaticity
408
template <class T>
409
T *makeAtomTypeQuery(int num, int aromatic, const std::string &descr) {
410
  return makeAtomSimpleQuery<T>(makeAtomType(num, aromatic), queryAtomType,
411
                                descr);
412
}
413
//! \overload
414
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomTypeQuery(int num,
415
                                                           int aromatic);
416
417
//! returns a Query for matching implicit valence
418
template <class T>
419
T *makeAtomImplicitValenceQuery(int what, const std::string &descr) {
420
  return makeAtomSimpleQuery<T>(what, queryAtomImplicitValence, descr);
421
}
422
//! \overload
423
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomImplicitValenceQuery(int what);
424
425
//! returns a Query for matching explicit valence
426
template <class T>
427
T *makeAtomExplicitValenceQuery(int what, const std::string &descr) {
428
  return makeAtomSimpleQuery<T>(what, queryAtomExplicitValence, descr);
429
}
430
//! \overload
431
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomExplicitValenceQuery(int what);
432
433
//! returns a Query for matching total valence
434
template <class T>
435
T *makeAtomTotalValenceQuery(int what, const std::string &descr) {
436
  return makeAtomSimpleQuery<T>(what, queryAtomTotalValence, descr);
437
}
438
//! \overload
439
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomTotalValenceQuery(int what);
440
441
//! returns a Query for matching explicit degree
442
template <class T>
443
T *makeAtomExplicitDegreeQuery(int what, const std::string &descr) {
444
  return makeAtomSimpleQuery<T>(what, queryAtomExplicitDegree, descr);
445
}
446
//! \overload
447
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomExplicitDegreeQuery(int what);
448
449
//! returns a Query for matching atomic degree
450
template <class T>
451
T *makeAtomTotalDegreeQuery(int what, const std::string &descr) {
452
  return makeAtomSimpleQuery<T>(what, queryAtomTotalDegree, descr);
453
}
454
//! \overload
455
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomTotalDegreeQuery(int what);
456
457
//! returns a Query for matching heavy atom degree
458
template <class T>
459
T *makeAtomHeavyAtomDegreeQuery(int what, const std::string &descr) {
460
  return makeAtomSimpleQuery<T>(what, queryAtomHeavyAtomDegree, descr);
461
}
462
//! \overload
463
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomHeavyAtomDegreeQuery(int what);
464
465
//! returns a Query for matching hydrogen count
466
template <class T>
467
T *makeAtomHCountQuery(int what, const std::string &descr) {
468
  return makeAtomSimpleQuery<T>(what, queryAtomHCount, descr);
469
}
470
//! \overload
471
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomHCountQuery(int what);
472
473
//! returns a Query for matching ring atoms
474
template <class T>
475
T *makeAtomHasImplicitHQuery(const std::string &descr) {
476
  return makeAtomSimpleQuery<T>(true, queryAtomHasImplicitH, descr);
477
}
478
//! \overload
479
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomHasImplicitHQuery();
480
481
//! returns a Query for matching implicit hydrogen count
482
template <class T>
483
T *makeAtomImplicitHCountQuery(int what, const std::string &descr) {
484
  return makeAtomSimpleQuery<T>(what, queryAtomImplicitHCount, descr);
485
}
486
//! \overload
487
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomImplicitHCountQuery(int what);
488
489
//! returns a Query for matching the \c isAromatic flag
490
template <class T>
491
T *makeAtomAromaticQuery(const std::string &descr) {
492
  return makeAtomSimpleQuery<T>(true, queryAtomAromatic, descr);
493
}
494
//! \overload
495
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomAromaticQuery();
496
497
//! returns a Query for matching aliphatic atoms
498
template <class T>
499
T *makeAtomAliphaticQuery(const std::string &descr) {
500
  return makeAtomSimpleQuery<T>(true, queryAtomAliphatic, descr);
501
}
502
//! \overload
503
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomAliphaticQuery();
504
505
//! returns a Query for matching atoms with a particular mass
506
template <class T>
507
T *makeAtomMassQuery(int what, const std::string &descr) {
508
  return makeAtomSimpleQuery<T>(massIntegerConversionFactor * what,
509
                                queryAtomMass, descr);
510
}
511
//! \overload
512
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomMassQuery(int what);
513
514
//! returns a Query for matching atoms with a particular isotope
515
template <class T>
516
T *makeAtomIsotopeQuery(int what, const std::string &descr) {
517
  return makeAtomSimpleQuery<T>(what, queryAtomIsotope, descr);
518
}
519
//! \overload
520
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomIsotopeQuery(int what);
521
522
//! returns a Query for matching formal charge
523
template <class T>
524
T *makeAtomFormalChargeQuery(int what, const std::string &descr) {
525
  return makeAtomSimpleQuery<T>(what, queryAtomFormalCharge, descr);
526
}
527
//! \overload
528
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomFormalChargeQuery(int what);
529
530
//! returns a Query for matching negative formal charges (i.e. a query val of 1
531
//! matches a formal charge of -1)
532
template <class T>
533
T *makeAtomNegativeFormalChargeQuery(int what, const std::string &descr) {
534
  return makeAtomSimpleQuery<T>(what, queryAtomNegativeFormalCharge, descr);
535
}
536
//! \overload
537
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomNegativeFormalChargeQuery(
538
    int what);
539
540
//! returns a Query for matching hybridization
541
template <class T>
542
T *makeAtomHybridizationQuery(int what, const std::string &descr) {
543
  return makeAtomSimpleQuery<T>(what, queryAtomHybridization, descr);
544
}
545
//! \overload
546
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomHybridizationQuery(int what);
547
548
//! returns a Query for matching the number of radical electrons
549
template <class T>
550
T *makeAtomNumRadicalElectronsQuery(int what, const std::string &descr) {
551
  return makeAtomSimpleQuery<T>(what, queryAtomNumRadicalElectrons, descr);
552
}
553
//! \overload
554
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomNumRadicalElectronsQuery(
555
    int what);
556
557
//! returns a Query for matching whether or not chirality has been set on the
558
//! atom
559
template <class T>
560
T *makeAtomHasChiralTagQuery(const std::string &descr) {
561
  return makeAtomSimpleQuery<T>(true, queryAtomHasChiralTag, descr);
562
}
563
//! \overloadquery
564
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomHasChiralTagQuery();
565
566
//! returns a Query for matching whether or not a potentially chiral atom is
567
//! missing a chiral tag
568
template <class T>
569
T *makeAtomMissingChiralTagQuery(const std::string &descr) {
570
  return makeAtomSimpleQuery<T>(true, queryAtomMissingChiralTag, descr);
571
}
572
//! \overloadquery
573
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomMissingChiralTagQuery();
574
575
//! returns a Query for matching atoms with unsaturation:
576
template <class T>
577
T *makeAtomUnsaturatedQuery(const std::string &descr) {
578
  return makeAtomSimpleQuery<T>(true, queryAtomUnsaturated, descr);
579
}
580
//! \overload
581
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomUnsaturatedQuery();
582
583
//! returns a Query for matching ring atoms
584
template <class T>
585
T *makeAtomInRingQuery(const std::string &descr) {
586
  return makeAtomSimpleQuery<T>(true, queryIsAtomInRing, descr);
587
}
588
//! \overload
589
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomInRingQuery();
590
591
//! returns a Query for matching atoms in a particular number of rings
592
template <class T>
593
T *makeAtomInNRingsQuery(int what, const std::string &descr) {
594
  return makeAtomSimpleQuery<T>(what, queryIsAtomInNRings, descr);
595
}
596
//! \overload
597
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomInNRingsQuery(int what);
598
599
//! returns a Query for matching atoms in rings of a particular size
600
template <class T>
601
T *makeAtomInRingOfSizeQuery(int tgt, const std::string &descr);
602
//! \overload
603
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomInRingOfSizeQuery(int tgt);
604
//! \overload
605
RDKIT_GRAPHMOL_EXPORT ATOM_RANGE_QUERY *makeAtomInRingOfSizeQuery(
606
    int lower, int upper, bool lowerOpen = false, bool upperOpen = false);
607
608
//! returns a Query for matching an atom's minimum ring size
609
template <class T>
610
T *makeAtomMinRingSizeQuery(int tgt, const std::string &descr) {
611
  return makeAtomSimpleQuery<T>(tgt, queryAtomMinRingSize, descr);
612
}
613
//! \overload
614
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomMinRingSizeQuery(int tgt);
615
616
//! returns a Query for matching atoms with a particular number of ring bonds
617
template <class T>
618
T *makeAtomRingBondCountQuery(int what, const std::string &descr) {
619
  return makeAtomSimpleQuery<T>(what, queryAtomRingBondCount, descr);
620
}
621
//! \overload
622
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomRingBondCountQuery(int what);
623
624
//! returns a Query for matching generic A atoms (heavy atoms)
625
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAAtomQuery();
626
//! returns a Query for matching generic AH atoms (any atom)
627
RDKIT_GRAPHMOL_EXPORT ATOM_NULL_QUERY *makeAHAtomQuery();
628
//! returns a Query for matching generic Q atoms (heteroatoms)
629
RDKIT_GRAPHMOL_EXPORT ATOM_OR_QUERY *makeQAtomQuery();
630
//! returns a Query for matching generic QH atoms (heteroatom or H)
631
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeQHAtomQuery();
632
//! returns a Query for matching generic X atoms (halogens)
633
RDKIT_GRAPHMOL_EXPORT ATOM_OR_QUERY *makeXAtomQuery();
634
//! returns a Query for matching generic XH atoms (halogen or H)
635
RDKIT_GRAPHMOL_EXPORT ATOM_OR_QUERY *makeXHAtomQuery();
636
//! returns a Query for matching generic M atoms (metals)
637
RDKIT_GRAPHMOL_EXPORT ATOM_OR_QUERY *makeMAtomQuery();
638
//! returns a Query for matching generic MH atoms (metals or H)
639
RDKIT_GRAPHMOL_EXPORT ATOM_OR_QUERY *makeMHAtomQuery();
640
641
// We support the same special atom queries that we can read from
642
// CXSMILES
643
const std::vector<std::string> complexQueries = {"A", "AH", "Q", "QH",
644
                                                 "X", "XH", "M", "MH"};
645
RDKIT_GRAPHMOL_EXPORT void convertComplexNameToQuery(Atom *query,
646
                                                     std::string_view symb);
647
648
//! returns a Query for matching atoms that have ring bonds
649
template <class T>
650
T *makeAtomHasRingBondQuery(const std::string &descr) {
651
  return makeAtomSimpleQuery<T>(1, queryAtomHasRingBond, descr);
652
}
653
//! \overload
654
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomHasRingBondQuery();
655
656
//! returns a Query for matching the number of heteroatom neighbors
657
template <class T>
658
T *makeAtomNumHeteroatomNbrsQuery(int what, const std::string &descr) {
659
  return makeAtomSimpleQuery<T>(what, queryAtomNumHeteroatomNbrs, descr);
660
}
661
//! \overload
662
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomNumHeteroatomNbrsQuery(
663
    int what);
664
665
//! returns a Query for matching atoms that have heteroatom neighbors
666
template <class T>
667
T *makeAtomHasHeteroatomNbrsQuery(const std::string &descr) {
668
  return makeAtomSimpleQuery<T>(1, queryAtomHasHeteroatomNbrs, descr);
669
}
670
//! \overload
671
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomHasHeteroatomNbrsQuery();
672
673
//! returns a Query for matching the number of aliphatic heteroatom neighbors
674
template <class T>
675
T *makeAtomNumAliphaticHeteroatomNbrsQuery(int what, const std::string &descr) {
676
  return makeAtomSimpleQuery<T>(what, queryAtomNumAliphaticHeteroatomNbrs,
677
                                descr);
678
}
679
//! \overload
680
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *
681
makeAtomNumAliphaticHeteroatomNbrsQuery(int what);
682
683
//! returns a Query for matching atoms that have heteroatom neighbors
684
template <class T>
685
T *makeAtomHasAliphaticHeteroatomNbrsQuery(const std::string &descr) {
686
  return makeAtomSimpleQuery<T>(1, queryAtomHasAliphaticHeteroatomNbrs, descr);
687
}
688
//! \overload
689
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *
690
makeAtomHasAliphaticHeteroatomNbrsQuery();
691
692
//! returns a Query for matching the number of non-hydrogen neighbors
693
template <class T>
694
T *makeAtomNonHydrogenDegreeQuery(int what, const std::string &descr) {
695
  return makeAtomSimpleQuery<T>(what, queryAtomNonHydrogenDegree, descr);
696
}
697
//! \overload
698
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomNonHydrogenDegreeQuery(
699
    int what);
700
701
//! returns a Query for matching bridgehead atoms
702
template <class T>
703
T *makeAtomIsBridgeheadQuery(const std::string &descr) {
704
  return makeAtomSimpleQuery<T>(true, queryIsAtomBridgehead, descr);
705
}
706
//! \overload
707
RDKIT_GRAPHMOL_EXPORT ATOM_EQUALS_QUERY *makeAtomIsBridgeheadQuery();
708
709
//! returns a Query for matching bond orders
710
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeBondOrderEqualsQuery(
711
    Bond::BondType what);
712
//! returns a Query for unspecified SMARTS bonds
713
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeSingleOrAromaticBondQuery();
714
//! returns a Query for double|aromatic bonds
715
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeDoubleOrAromaticBondQuery();
716
//! returns a Query for single|double bonds
717
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeSingleOrDoubleBondQuery();
718
//! returns a Query for tautomeric bonds
719
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *
720
makeSingleOrDoubleOrAromaticBondQuery();
721
722
//! returns a Query for matching bond directions
723
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeBondDirEqualsQuery(
724
    Bond::BondDir what);
725
//! returns a Query for matching bonds with stereo set
726
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeBondHasStereoQuery();
727
//! returns a Query for matching ring bonds
728
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeBondIsInRingQuery();
729
//! returns a Query for matching bonds in rings of a particular size
730
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeBondInRingOfSizeQuery(int what);
731
//! returns a Query for matching a bond's minimum ring size
732
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeBondMinRingSizeQuery(int what);
733
//! returns a Query for matching bonds in a particular number of rings
734
RDKIT_GRAPHMOL_EXPORT BOND_EQUALS_QUERY *makeBondInNRingsQuery(int tgt);
735
736
//! returns a Query for matching any bond
737
RDKIT_GRAPHMOL_EXPORT BOND_NULL_QUERY *makeBondNullQuery();
738
//! returns a Query for matching any atom
739
RDKIT_GRAPHMOL_EXPORT ATOM_NULL_QUERY *makeAtomNullQuery();
740
741
0
static inline int queryAtomRingMembership(Atom const *at) {
742
0
  return static_cast<int>(
743
0
      at->getOwningMol().getRingInfo()->numAtomRings(at->getIdx()));
744
0
}
Unexecuted instantiation: mol_deserialization_fuzzer.cc:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: ROMol.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: MolPickler.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: AtomIterators.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: Chirality.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: new_canon.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: FindStereo.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: Atom.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: QueryAtom.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: QueryBond.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: QueryOps.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: MolOps.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: Aromaticity.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: Kekulize.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: AddHs.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: Subset.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: SmilesParse.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: SmilesParseOps.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: CXSmilesOps.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: smarts.tab.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmarts.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: lex.yysmiles.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: Canon.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: MolFileParser.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: GenericGroups.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
Unexecuted instantiation: AdjustQuery.cpp:RDKit::queryAtomRingMembership(RDKit::Atom const*)
745
// I'm pretty sure that this typedef shouldn't be necessary,
746
// but VC++ generates a warning about const Atom const * in
747
// the definition of Match, then complains about an override
748
// that differs only by const/volatile (c4301), then generates
749
// incorrect code if we don't do this... so let's do it.
750
typedef Atom const *ConstAtomPtr;
751
752
class RDKIT_GRAPHMOL_EXPORT AtomRingQuery
753
    : public Queries::EqualityQuery<int, ConstAtomPtr, true> {
754
 public:
755
0
  AtomRingQuery() : Queries::EqualityQuery<int, ConstAtomPtr, true>(-1) {
756
    // default is to just do a number of rings query:
757
0
    this->setDescription("AtomInNRings");
758
0
    this->setDataFunc(queryAtomRingMembership);
759
0
  }
760
  explicit AtomRingQuery(int v)
761
93.0k
      : Queries::EqualityQuery<int, ConstAtomPtr, true>(v) {
762
    // default is to just do a number of rings query:
763
93.0k
    this->setDescription("AtomInNRings");
764
93.0k
    this->setDataFunc(queryAtomRingMembership);
765
93.0k
  }
766
767
0
  bool Match(const ConstAtomPtr what) const override {
768
0
    int v = this->TypeConvert(what, Queries::Int2Type<true>());
769
0
    bool res;
770
0
    if (this->d_val < 0) {
771
0
      res = v != 0;
772
0
    } else {
773
0
      res = !Queries::queryCmp(v, this->d_val, this->d_tol);
774
0
    }
775
0
    if (this->getNegation()) {
776
0
      res = !res;
777
0
    }
778
0
    return res;
779
0
  }
780
781
  //! returns a copy of this query
782
56.3k
  Queries::Query<int, ConstAtomPtr, true> *copy() const override {
783
56.3k
    AtomRingQuery *res = new AtomRingQuery(this->d_val);
784
56.3k
    res->setNegation(getNegation());
785
56.3k
    res->setTol(this->getTol());
786
56.3k
    res->d_description = this->d_description;
787
56.3k
    res->d_dataFunc = this->d_dataFunc;
788
56.3k
    return res;
789
56.3k
  }
790
};
791
792
//! allows use of recursive structure queries (e.g. recursive SMARTS)
793
class RDKIT_GRAPHMOL_EXPORT RecursiveStructureQuery
794
    : public Queries::SetQuery<int, Atom const *, true> {
795
 public:
796
147k
  RecursiveStructureQuery() : Queries::SetQuery<int, Atom const *, true>() {
797
147k
    setDataFunc(getAtIdx);
798
147k
    setDescription("RecursiveStructure");
799
147k
  }
800
  //! initialize from an ROMol pointer
801
  /*!
802
    <b>Notes</b>
803
      - this takes over ownership of the pointer
804
  */
805
  RecursiveStructureQuery(ROMol const *query, unsigned int serialNumber = 0)
806
27.7k
      : Queries::SetQuery<int, Atom const *, true>(),
807
27.7k
        d_serialNumber(serialNumber) {
808
27.7k
    setQueryMol(query);
809
27.7k
    setDataFunc(getAtIdx);
810
27.7k
    setDescription("RecursiveStructure");
811
27.7k
  }
812
  //! returns the index of an atom
813
0
  static inline int getAtIdx(Atom const *at) {
814
0
    PRECONDITION(at, "bad atom argument");
815
0
    return at->getIdx();
816
0
  }
817
818
  //! sets the molecule we'll use recursively
819
  /*!
820
    <b>Notes</b>
821
      - this takes over ownership of the pointer
822
  */
823
27.7k
  void setQueryMol(ROMol const *query) { dp_queryMol.reset(query); }
824
  //! returns a pointer to our query molecule
825
0
  ROMol const *getQueryMol() const { return dp_queryMol.get(); }
826
827
  //! returns a copy of this query
828
147k
  Queries::Query<int, Atom const *, true> *copy() const override {
829
147k
    RecursiveStructureQuery *res = new RecursiveStructureQuery();
830
147k
    res->dp_queryMol.reset(new ROMol(*dp_queryMol, true));
831
832
147k
    std::set<int>::const_iterator i;
833
147k
    for (i = d_set.begin(); i != d_set.end(); i++) {
834
0
      res->insert(*i);
835
0
    }
836
147k
    res->setNegation(getNegation());
837
147k
    res->d_description = d_description;
838
147k
    res->d_serialNumber = d_serialNumber;
839
147k
    return res;
840
147k
  }
841
0
  unsigned int getSerialNumber() const { return d_serialNumber; }
842
843
#ifdef RDK_BUILD_THREADSAFE_SSS
844
  std::mutex d_mutex;
845
#endif
846
 private:
847
  boost::shared_ptr<const ROMol> dp_queryMol;
848
  unsigned int d_serialNumber{0};
849
};
850
851
template <typename T>
852
0
int nullDataFun(T) {
853
0
  return 1;
854
0
}
Unexecuted instantiation: int RDKit::nullDataFun<RDKit::Bond const*>(RDKit::Bond const*)
Unexecuted instantiation: int RDKit::nullDataFun<RDKit::Atom const*>(RDKit::Atom const*)
855
template <typename T>
856
0
bool nullQueryFun(T) {
857
0
  return true;
858
0
}
859
860
typedef Bond const *ConstBondPtr;
861
862
// ! Query whether an atom has a property
863
template <class TargetPtr>
864
class HasPropQuery : public Queries::EqualityQuery<int, TargetPtr, true> {
865
  std::string propname;
866
867
 public:
868
  HasPropQuery() : Queries::EqualityQuery<int, TargetPtr, true>(), propname() {
869
    this->setDescription("HasProp");
870
    this->setDataFunc(nullptr);
871
  }
872
  explicit HasPropQuery(std::string v)
873
0
      : Queries::EqualityQuery<int, TargetPtr, true>(), propname(std::move(v)) {
874
0
    this->setDescription("HasProp");
875
0
    this->setDataFunc(nullptr);
876
0
  }
Unexecuted instantiation: RDKit::HasPropQuery<RDKit::Atom const*>::HasPropQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)
Unexecuted instantiation: RDKit::HasPropQuery<RDKit::Bond const*>::HasPropQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >)
877
878
0
  bool Match(const TargetPtr what) const override {
879
0
    bool res = what->hasProp(propname);
880
0
    if (this->getNegation()) {
881
0
      res = !res;
882
0
    }
883
0
    return res;
884
0
  }
Unexecuted instantiation: RDKit::HasPropQuery<RDKit::Atom const*>::Match(RDKit::Atom const*) const
Unexecuted instantiation: RDKit::HasPropQuery<RDKit::Bond const*>::Match(RDKit::Bond const*) const
885
886
  //! returns a copy of this query
887
0
  Queries::Query<int, TargetPtr, true> *copy() const override {
888
0
    HasPropQuery *res = new HasPropQuery(this->propname);
889
0
    res->setNegation(this->getNegation());
890
0
    res->d_description = this->d_description;
891
0
    return res;
892
0
  }
Unexecuted instantiation: RDKit::HasPropQuery<RDKit::Atom const*>::copy() const
Unexecuted instantiation: RDKit::HasPropQuery<RDKit::Bond const*>::copy() const
893
894
0
  const std::string &getPropName() const { return propname; }
Unexecuted instantiation: RDKit::HasPropQuery<RDKit::Atom const*>::getPropName() const
Unexecuted instantiation: RDKit::HasPropQuery<RDKit::Bond const*>::getPropName() const
895
};
896
897
typedef Queries::EqualityQuery<int, Atom const *, true> ATOM_PROP_QUERY;
898
typedef Queries::EqualityQuery<int, Bond const *, true> BOND_PROP_QUERY;
899
900
//! returns a Query for matching atoms that have a particular property
901
template <class Target>
902
Queries::EqualityQuery<int, const Target *, true> *makeHasPropQuery(
903
0
    const std::string &property) {
904
0
  return new HasPropQuery<const Target *>(property);
905
0
}
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Atom const*, true>* RDKit::makeHasPropQuery<RDKit::Atom>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Bond const*, true>* RDKit::makeHasPropQuery<RDKit::Bond>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
906
907
// ! Query whether an atom has a property with a value
908
class HasPropWithValueQueryBase {
909
 public:
910
0
  HasPropWithValueQueryBase() = default;
911
0
  virtual ~HasPropWithValueQueryBase() = default;
912
  virtual PairHolder getPair() const = 0;
913
  virtual double getTolerance() const = 0;
914
};
915
916
template <class TargetPtr, class T>
917
class HasPropWithValueQuery
918
    : public HasPropWithValueQueryBase,
919
      public Queries::EqualityQuery<int, TargetPtr, true> {
920
  std::string propname;
921
  T val;
922
  double tolerance{0.0};
923
924
 public:
925
  HasPropWithValueQuery()
926
      : Queries::EqualityQuery<int, TargetPtr, true>(), propname(), val() {
927
    // default is to just do a number of rings query:
928
    this->setDescription("HasPropWithValue");
929
    this->setDataFunc(0);
930
  }
931
932
0
  PairHolder getPair() const override {
933
0
    return PairHolder(Dict::Pair(propname, val));
934
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, int>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, unsigned int>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, bool>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, float>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, double>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, int>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, unsigned int>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, bool>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, float>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, double>::getPair() const
935
936
0
  double getTolerance() const override { return tolerance; }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, int>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, unsigned int>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, bool>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, float>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, double>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, int>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, unsigned int>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, bool>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, float>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, double>::getTolerance() const
937
938
  explicit HasPropWithValueQuery(std::string prop, const T &v,
939
                                 const T &tol = 0.0)
940
0
      : Queries::EqualityQuery<int, TargetPtr, true>(),
941
0
        propname(std::move(prop)),
942
0
        val(v),
943
0
        tolerance(tol) {
944
    // default is to just do a number of rings query:
945
0
    this->setDescription("HasPropWithValue");
946
0
    this->setDataFunc(nullptr);
947
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, int>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int const&, int const&)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, unsigned int>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned int const&, unsigned int const&)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, bool>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool const&, bool const&)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, float>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, float const&, float const&)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, double>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, double const&, double const&)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, int>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, int const&, int const&)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, unsigned int>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, unsigned int const&, unsigned int const&)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, bool>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool const&, bool const&)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, float>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, float const&, float const&)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, double>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, double const&, double const&)
948
949
0
  bool Match(const TargetPtr what) const override {
950
0
    bool res = what->hasProp(propname);
951
0
    if (res) {
952
0
      try {
953
0
        T atom_val = what->template getProp<T>(propname);
954
0
        res = Queries::queryCmp(atom_val, this->val,
955
0
                                static_cast<T>(this->tolerance)) == 0;
956
0
      } catch (KeyErrorException &) {
957
0
        res = false;
958
0
      } catch (std::bad_any_cast &) {
959
0
        res = false;
960
0
      }
961
0
#ifdef __GNUC__
962
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2))
963
      catch (...) {
964
        // catch all -- this is currently necessary to
965
        //  trap some bugs in boost+gcc configurations
966
        //  Normally, this is not the correct thing to
967
        //  do, but the only exception above is due
968
        //  to the boost any_cast which is trapped
969
        //  by the Boost python wrapper when it shouldn't
970
        //  be.
971
        res = false;
972
      }
973
#endif
974
0
#endif
975
0
    }
976
0
    if (this->getNegation()) {
977
0
      res = !res;
978
0
    }
979
0
    return res;
980
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, int>::Match(RDKit::Atom const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, unsigned int>::Match(RDKit::Atom const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, bool>::Match(RDKit::Atom const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, float>::Match(RDKit::Atom const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, double>::Match(RDKit::Atom const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, int>::Match(RDKit::Bond const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, unsigned int>::Match(RDKit::Bond const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, bool>::Match(RDKit::Bond const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, float>::Match(RDKit::Bond const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, double>::Match(RDKit::Bond const*) const
981
982
  //! returns a copy of this query
983
0
  Queries::Query<int, TargetPtr, true> *copy() const override {
984
0
    HasPropWithValueQuery *res =
985
0
        new HasPropWithValueQuery(this->propname, this->val, this->tolerance);
986
0
    res->setNegation(this->getNegation());
987
0
    res->d_description = this->d_description;
988
0
    return res;
989
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, int>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, unsigned int>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, bool>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, float>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, double>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, int>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, unsigned int>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, bool>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, float>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, double>::copy() const
990
};
991
992
template <class TargetPtr>
993
class HasPropWithValueQuery<TargetPtr, std::string>
994
    : public HasPropWithValueQueryBase,
995
      public Queries::EqualityQuery<int, TargetPtr, true> {
996
  std::string propname;
997
  std::string val;
998
999
 public:
1000
  HasPropWithValueQuery()
1001
      : Queries::EqualityQuery<int, TargetPtr, true>(), propname(), val() {
1002
    // default is to just do a number of rings query:
1003
    this->setDescription("HasPropWithValue");
1004
    this->setDataFunc(0);
1005
  }
1006
  explicit HasPropWithValueQuery(std::string prop, std::string v,
1007
                                 const double /*tol*/ = 0.0)
1008
0
      : Queries::EqualityQuery<int, TargetPtr, true>(),
1009
0
        propname(std::move(prop)),
1010
0
        val(std::move(v)) {
1011
    // default is to just do a number of rings query:
1012
0
    this->setDescription("HasPropWithValue");
1013
0
    this->setDataFunc(nullptr);
1014
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, double)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, double)
1015
1016
0
  PairHolder getPair() const override {
1017
0
    return PairHolder(Dict::Pair(propname, val));
1018
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::getPair() const
1019
1020
0
  double getTolerance() const override { return 0.0; }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::getTolerance() const
1021
1022
0
  bool Match(const TargetPtr what) const override {
1023
0
    bool res = what->hasProp(propname);
1024
0
    if (res) {
1025
0
      try {
1026
0
        std::string atom_val = what->template getProp<std::string>(propname);
1027
0
        res = atom_val == this->val;
1028
0
      } catch (KeyErrorException &) {
1029
0
        res = false;
1030
0
      } catch (std::bad_any_cast &) {
1031
0
        res = false;
1032
0
      }
1033
0
#ifdef __GNUC__
1034
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2))
1035
      catch (...) {
1036
        // catch all -- this is currently necessary to
1037
        //  trap some bugs in boost+gcc configurations
1038
        //  Normally, this is not the correct thing to
1039
        //  do, but the only exception above is due
1040
        //  to the boost any_cast which is trapped
1041
        //  by the Boost python wrapper when it shouldn't
1042
        //  be.
1043
        res = false;
1044
      }
1045
#endif
1046
0
#endif
1047
0
    }
1048
0
    if (this->getNegation()) {
1049
0
      res = !res;
1050
0
    }
1051
0
    return res;
1052
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::Match(RDKit::Atom const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::Match(RDKit::Bond const*) const
1053
1054
  //! returns a copy of this query
1055
0
  Queries::Query<int, TargetPtr, true> *copy() const override {
1056
0
    HasPropWithValueQuery<TargetPtr, std::string> *res =
1057
0
        new HasPropWithValueQuery<TargetPtr, std::string>(this->propname,
1058
0
                                                          this->val);
1059
0
    res->setNegation(this->getNegation());
1060
0
    res->d_description = this->d_description;
1061
0
    return res;
1062
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >::copy() const
1063
};
1064
1065
template <class TargetPtr>
1066
class HasPropWithValueQuery<TargetPtr, ExplicitBitVect>
1067
    : public HasPropWithValueQueryBase,
1068
      public Queries::EqualityQuery<int, TargetPtr, true> {
1069
  std::string propname;
1070
  ExplicitBitVect val;
1071
  double tol{0.0};
1072
1073
 public:
1074
  HasPropWithValueQuery()
1075
      : Queries::EqualityQuery<int, TargetPtr, true>(), propname(), val() {
1076
    this->setDescription("HasPropWithValue");
1077
    this->setDataFunc(0);
1078
  }
1079
1080
  explicit HasPropWithValueQuery(std::string prop, const ExplicitBitVect &v,
1081
                                 double tol = 0.0)
1082
0
      : Queries::EqualityQuery<int, TargetPtr, true>(),
1083
0
        propname(std::move(prop)),
1084
0
        val(v),
1085
0
        tol(tol) {
1086
0
    this->setDescription("HasPropWithValue");
1087
0
    this->setDataFunc(nullptr);
1088
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, ExplicitBitVect>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, ExplicitBitVect const&, double)
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, ExplicitBitVect>::HasPropWithValueQuery(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, ExplicitBitVect const&, double)
1089
1090
0
  PairHolder getPair() const override {
1091
0
    return PairHolder(Dict::Pair(propname, val));
1092
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, ExplicitBitVect>::getPair() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, ExplicitBitVect>::getPair() const
1093
1094
0
  double getTolerance() const override { return tol; }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, ExplicitBitVect>::getTolerance() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, ExplicitBitVect>::getTolerance() const
1095
1096
0
  bool Match(const TargetPtr what) const override {
1097
0
    bool res = what->hasProp(propname);
1098
0
    if (res) {
1099
0
      try {
1100
0
        const ExplicitBitVect &bv =
1101
0
            what->template getProp<const ExplicitBitVect &>(propname);
1102
0
        const double tani = TanimotoSimilarity(val, bv);
1103
0
        res = (1.0 - tani) <= tol;
1104
0
      } catch (KeyErrorException &) {
1105
0
        res = false;
1106
0
      } catch (std::bad_any_cast &) {
1107
0
        res = false;
1108
0
      }
1109
0
#ifdef __GNUC__
1110
#if (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 2))
1111
      catch (...) {
1112
        // catch all -- this is currently necessary to
1113
        //  trap some bugs in boost+gcc configurations
1114
        //  Normally, this is not the correct thing to
1115
        //  do, but the only exception above is due
1116
        //  to the boost any_cast which is trapped
1117
        //  by the Boost python wrapper when it shouldn't
1118
        //  be.
1119
        res = false;
1120
      }
1121
#endif
1122
0
#endif
1123
0
    }
1124
0
    if (this->getNegation()) {
1125
0
      res = !res;
1126
0
    }
1127
0
    return res;
1128
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, ExplicitBitVect>::Match(RDKit::Atom const*) const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, ExplicitBitVect>::Match(RDKit::Bond const*) const
1129
1130
  //! returns a copy of this query
1131
0
  Queries::Query<int, TargetPtr, true> *copy() const override {
1132
0
    HasPropWithValueQuery<TargetPtr, ExplicitBitVect> *res =
1133
0
        new HasPropWithValueQuery<TargetPtr, ExplicitBitVect>(
1134
0
            this->propname, this->val, this->tol);
1135
0
    res->setNegation(this->getNegation());
1136
0
    res->d_description = this->d_description;
1137
0
    return res;
1138
0
  }
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Atom const*, ExplicitBitVect>::copy() const
Unexecuted instantiation: RDKit::HasPropWithValueQuery<RDKit::Bond const*, ExplicitBitVect>::copy() const
1139
};
1140
1141
template <class Target, class T>
1142
Queries::EqualityQuery<int, const Target *, true> *makePropQuery(
1143
0
    const std::string &propname, const T &val, double tolerance = 0.0) {
1144
0
  return new HasPropWithValueQuery<const Target *, T>(propname, val, tolerance);
1145
0
}
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Atom const*, true>* RDKit::makePropQuery<RDKit::Atom, int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Atom const*, true>* RDKit::makePropQuery<RDKit::Atom, unsigned int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned int const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Atom const*, true>* RDKit::makePropQuery<RDKit::Atom, bool>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Atom const*, true>* RDKit::makePropQuery<RDKit::Atom, float>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, float const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Atom const*, true>* RDKit::makePropQuery<RDKit::Atom, double>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, double const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Atom const*, true>* RDKit::makePropQuery<RDKit::Atom, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Atom const*, true>* RDKit::makePropQuery<RDKit::Atom, ExplicitBitVect>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, ExplicitBitVect const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Bond const*, true>* RDKit::makePropQuery<RDKit::Bond, int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Bond const*, true>* RDKit::makePropQuery<RDKit::Bond, unsigned int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, unsigned int const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Bond const*, true>* RDKit::makePropQuery<RDKit::Bond, bool>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Bond const*, true>* RDKit::makePropQuery<RDKit::Bond, float>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, float const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Bond const*, true>* RDKit::makePropQuery<RDKit::Bond, double>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, double const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Bond const*, true>* RDKit::makePropQuery<RDKit::Bond, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, double)
Unexecuted instantiation: Queries::EqualityQuery<int, RDKit::Bond const*, true>* RDKit::makePropQuery<RDKit::Bond, ExplicitBitVect>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, ExplicitBitVect const&, double)
1146
1147
template <class Target>
1148
Queries::EqualityQuery<int, const Target *, true> *makePropQuery(
1149
    const std::string &propname, const ExplicitBitVect &val,
1150
    double tolerance = 0.0) {
1151
  return new HasPropWithValueQuery<const Target *, ExplicitBitVect>(
1152
      propname, val, tolerance);
1153
}
1154
1155
RDKIT_GRAPHMOL_EXPORT bool isComplexQuery(const Bond *b);
1156
RDKIT_GRAPHMOL_EXPORT bool isComplexQuery(const Atom *a);
1157
RDKIT_GRAPHMOL_EXPORT bool isAtomAromatic(const Atom *a);
1158
RDKIT_GRAPHMOL_EXPORT bool isAtomListQuery(const Atom *a);
1159
RDKIT_GRAPHMOL_EXPORT void getAtomListQueryVals(const Atom::QUERYATOM_QUERY *q,
1160
                                                std::vector<int> &vals);
1161
1162
// Checks if an atom is dummy or not.
1163
// 1. A dummy non-query atom (e.g., "*" in SMILES) is defined by its zero atomic
1164
//    number. This rule breaks for query atoms because a COMPOSITE_OR query atom
1165
//    also has a zero atomic number (#6349).
1166
// 2. A dummy query atom (e.g., "*" in SMARTS) is defined by its explicit
1167
//    description: "AtomNull".
1168
97.4k
inline bool isAtomDummy(const Atom *a) {
1169
97.4k
  return (!a->hasQuery() && a->getAtomicNum() == 0) ||
1170
63.1k
         (a->hasQuery() && !a->getQuery()->getNegation() &&
1171
3.05k
          a->getQuery()->getDescription() == "AtomNull");
1172
97.4k
}
1173
1174
namespace QueryOps {
1175
RDKIT_GRAPHMOL_EXPORT void completeMolQueries(
1176
    RWMol *mol, unsigned int magicVal = 0xDEADBEEF);
1177
// Replaces the given atom in the molecule with a QueryAtom that is otherwise
1178
// a copy of the given atom.  Returns a pointer to that atom.
1179
// if the atom already has a query, nothing will be changed
1180
RDKIT_GRAPHMOL_EXPORT Atom *replaceAtomWithQueryAtom(RWMol *mol, Atom *atom);
1181
1182
RDKIT_GRAPHMOL_EXPORT void finalizeQueryFromDescription(
1183
    Queries::Query<int, Atom const *, true> *query, Atom const *owner);
1184
RDKIT_GRAPHMOL_EXPORT void finalizeQueryFromDescription(
1185
    Queries::Query<int, Bond const *, true> *query, Bond const *owner);
1186
1187
RDKIT_GRAPHMOL_EXPORT bool hasBondTypeQuery(
1188
    const Queries::Query<int, Bond const *, true> &qry);
1189
4.16M
inline bool hasBondTypeQuery(const Bond &bond) {
1190
4.16M
  if (!bond.hasQuery()) {
1191
4.14M
    return false;
1192
4.14M
  }
1193
16.5k
  return hasBondTypeQuery(*bond.getQuery());
1194
4.16M
}
1195
RDKIT_GRAPHMOL_EXPORT bool hasComplexBondTypeQuery(
1196
    const Queries::Query<int, Bond const *, true> &qry);
1197
45.6M
inline bool hasComplexBondTypeQuery(const Bond &bond) {
1198
45.6M
  if (!bond.hasQuery()) {
1199
45.5M
    return false;
1200
45.5M
  }
1201
129k
  return hasComplexBondTypeQuery(*bond.getQuery());
1202
45.6M
}
1203
1204
RDKIT_GRAPHMOL_EXPORT bool isMetal(const Atom &atom);
1205
}  // namespace QueryOps
1206
}  // namespace RDKit
1207
#endif