test_class.declarator: smilesParser
test_class.modifier: private
test_class.original_string: private SmilesParser           smilesParser;
test_class.type: SmilesParser
test_class.var_name: smilesParser
test_class.declarator: tautomerGenerator = new InChITautomerGenerator()
test_class.modifier: private
test_class.original_string: private InChITautomerGenerator tautomerGenerator = new InChITautomerGenerator();
test_class.type: InChITautomerGenerator
test_class.var_name: tautomerGenerator
test_class.file: tool/tautomer/src/test/java/org/openscience/cdk/tautomers/InChITautomerGeneratorTest.java
test_class.identifier: InChITautomerGeneratorTest
test_class.superclass: extends CDKTestCase
test_case.body: @Test
      public void test_withJniInchi() throws Exception {
          String mdlInput = // same as NC1=CC(N)=NC(O)=N1
          "\n" + "  Mrv0541 02151109592D\n" + "\n" + "  9  9  0  0  0  0            999 V2000\n"
                  + "    2.1434   -0.4125    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n"
                  + "    1.4289   -0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n"
                  + "    0.7145   -0.4125    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n"
                  + "    0.0000   -0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n"
                  + "   -0.7145   -0.4125    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n"
                  + "    0.0000    0.8250    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n"
                  + "    0.7145    1.2375    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n"
                  + "    0.7145    2.0625    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0\n"
                  + "    1.4289    0.8250    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0\n" + "  1  2  1  0  0  0  0\n"
                  + "  2  3  2  0  0  0  0\n" + "  3  4  1  0  0  0  0\n" + "  4  5  1  0  0  0  0\n"
                  + "  4  6  2  0  0  0  0\n" + "  6  7  1  0  0  0  0\n" + "  7  8  1  0  0  0  0\n"
                  + "  7  9  2  0  0  0  0\n" + "  2  9  1  0  0  0  0\n" + "M  END\n";
  
          MDLV2000Reader reader = new MDLV2000Reader(new StringReader(mdlInput));
          IAtomContainer molecule = reader.read(new AtomContainer());
          AtomContainerManipulator.percieveAtomTypesAndConfigureAtoms(molecule);
          CDKHydrogenAdder hAdder = CDKHydrogenAdder.getInstance(molecule.getBuilder());
          hAdder.addImplicitHydrogens(molecule);
  
          List<IAtomContainer> tautomers = tautomerGenerator.getTautomers(molecule); // InChI will be calculated
          Assert.assertEquals(5, tautomers.size());
      }
test_case.class_method_signature: InChITautomerGeneratorTest.test_withJniInchi()
test_case.full_signature: @Test public void test_withJniInchi()
test_case.identifier: test_withJniInchi
test_case.invocations: read percieveAtomTypesAndConfigureAtoms getInstance getBuilder addImplicitHydrogens getTautomers assertEquals size
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void test_withJniInchi()
focal_class.declarator: LOGGER = LoggingToolFactory.createLoggingTool(InChITautomerGenerator.class)
focal_class.modifier: private final static
focal_class.original_string: private final static ILoggingTool LOGGER = LoggingToolFactory.createLoggingTool(InChITautomerGenerator.class);
focal_class.type: ILoggingTool
focal_class.var_name: LOGGER
focal_class.declarator: CANSMI = new SmilesGenerator(SmiFlavor.Canonical)
focal_class.modifier: private static final
focal_class.original_string: private static final SmilesGenerator CANSMI = new SmilesGenerator(SmiFlavor.Canonical);
focal_class.type: SmilesGenerator
focal_class.var_name: CANSMI
focal_class.declarator: KETO_ENOL      = 0x1
focal_class.modifier: public static final
focal_class.original_string: public static final int KETO_ENOL      = 0x1;
focal_class.type: int
focal_class.var_name: KETO_ENOL
focal_class.declarator: ONE_FIVE_SHIFT = 0x2
focal_class.modifier: public static final
focal_class.original_string: public static final int ONE_FIVE_SHIFT = 0x2;
focal_class.type: int
focal_class.var_name: ONE_FIVE_SHIFT
focal_class.declarator: flags
focal_class.modifier: private final
focal_class.original_string: private final int flags;
focal_class.type: int
focal_class.var_name: flags
focal_class.file: tool/tautomer/src/main/java/org/openscience/cdk/tautomers/InChITautomerGenerator.java
focal_class.identifier: InChITautomerGenerator
focal_class.class_method_signature: InChITautomerGenerator.InChITautomerGenerator(int flags)
focal_class.full_signature: public  InChITautomerGenerator(int flags)
focal_class.identifier: InChITautomerGenerator
focal_class.modifiers: public
focal_class.parameters: (int flags)
focal_class.signature:  InChITautomerGenerator(int flags)
focal_class.class_method_signature: InChITautomerGenerator.InChITautomerGenerator()
focal_class.full_signature: public  InChITautomerGenerator()
focal_class.identifier: InChITautomerGenerator
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  InChITautomerGenerator()
focal_class.class_method_signature: InChITautomerGenerator.getTautomers(IAtomContainer mol)
focal_class.full_signature: public List<IAtomContainer> getTautomers(IAtomContainer mol)
focal_class.identifier: getTautomers
focal_class.modifiers: public
focal_class.parameters: (IAtomContainer mol)
focal_class.return: List<IAtomContainer>
focal_class.signature: List<IAtomContainer> getTautomers(IAtomContainer mol)
focal_class.class_method_signature: InChITautomerGenerator.getTautomers(IAtomContainer mol, String inchi)
focal_class.full_signature: @Deprecated public List<IAtomContainer> getTautomers(IAtomContainer mol, String inchi)
focal_class.identifier: getTautomers
focal_class.modifiers: @Deprecated public
focal_class.parameters: (IAtomContainer mol, String inchi)
focal_class.return: List<IAtomContainer>
focal_class.signature: List<IAtomContainer> getTautomers(IAtomContainer mol, String inchi)
focal_class.class_method_signature: InChITautomerGenerator.getTautomers(IAtomContainer mol, String inchi, long[] amap)
focal_class.full_signature: private List<IAtomContainer> getTautomers(IAtomContainer mol, String inchi, long[] amap)
focal_class.identifier: getTautomers
focal_class.modifiers: private
focal_class.parameters: (IAtomContainer mol, String inchi, long[] amap)
focal_class.return: List<IAtomContainer>
focal_class.signature: List<IAtomContainer> getTautomers(IAtomContainer mol, String inchi, long[] amap)
focal_class.class_method_signature: InChITautomerGenerator.getElementsByPosition(String inputInchi, IAtomContainer inputMolecule)
focal_class.full_signature: private Map<Integer, IAtom> getElementsByPosition(String inputInchi, IAtomContainer inputMolecule)
focal_class.identifier: getElementsByPosition
focal_class.modifiers: private
focal_class.parameters: (String inputInchi, IAtomContainer inputMolecule)
focal_class.return: Map<Integer, IAtom>
focal_class.signature: Map<Integer, IAtom> getElementsByPosition(String inputInchi, IAtomContainer inputMolecule)
focal_class.class_method_signature: InChITautomerGenerator.connectAtoms(String inputInchi, IAtomContainer inputMolecule,
              Map<Integer, IAtom> inchiAtomsByPosition)
focal_class.full_signature: private IAtomContainer connectAtoms(String inputInchi, IAtomContainer inputMolecule,
              Map<Integer, IAtom> inchiAtomsByPosition)
focal_class.identifier: connectAtoms
focal_class.modifiers: private
focal_class.parameters: (String inputInchi, IAtomContainer inputMolecule,
              Map<Integer, IAtom> inchiAtomsByPosition)
focal_class.return: IAtomContainer
focal_class.signature: IAtomContainer connectAtoms(String inputInchi, IAtomContainer inputMolecule,
              Map<Integer, IAtom> inchiAtomsByPosition)
focal_class.class_method_signature: InChITautomerGenerator.mapInputMoleculeToInchiMolgraph(IAtomContainer inchiMolGraph, IAtomContainer mol)
focal_class.full_signature: private void mapInputMoleculeToInchiMolgraph(IAtomContainer inchiMolGraph, IAtomContainer mol)
focal_class.identifier: mapInputMoleculeToInchiMolgraph
focal_class.modifiers: private
focal_class.parameters: (IAtomContainer inchiMolGraph, IAtomContainer mol)
focal_class.return: void
focal_class.signature: void mapInputMoleculeToInchiMolgraph(IAtomContainer inchiMolGraph, IAtomContainer mol)
focal_class.class_method_signature: InChITautomerGenerator.parseMobileHydrogens(List<Integer> mobHydrAttachPositions, String inputInchi)
focal_class.full_signature: private int parseMobileHydrogens(List<Integer> mobHydrAttachPositions, String inputInchi)
focal_class.identifier: parseMobileHydrogens
focal_class.modifiers: private
focal_class.parameters: (List<Integer> mobHydrAttachPositions, String inputInchi)
focal_class.return: int
focal_class.signature: int parseMobileHydrogens(List<Integer> mobHydrAttachPositions, String inputInchi)
focal_class.class_method_signature: InChITautomerGenerator.constructTautomers(IAtomContainer inputMolecule, List<Integer> mobHydrAttachPositions,
              int totalMobHydrCount)
focal_class.full_signature: private List<IAtomContainer> constructTautomers(IAtomContainer inputMolecule, List<Integer> mobHydrAttachPositions,
              int totalMobHydrCount)
focal_class.identifier: constructTautomers
focal_class.modifiers: private
focal_class.parameters: (IAtomContainer inputMolecule, List<Integer> mobHydrAttachPositions,
              int totalMobHydrCount)
focal_class.return: List<IAtomContainer>
focal_class.signature: List<IAtomContainer> constructTautomers(IAtomContainer inputMolecule, List<Integer> mobHydrAttachPositions,
              int totalMobHydrCount)
focal_class.class_method_signature: InChITautomerGenerator.removeDuplicates(List<IAtomContainer> tautomers)
focal_class.full_signature: private List<IAtomContainer> removeDuplicates(List<IAtomContainer> tautomers)
focal_class.identifier: removeDuplicates
focal_class.modifiers: private
focal_class.parameters: (List<IAtomContainer> tautomers)
focal_class.return: List<IAtomContainer>
focal_class.signature: List<IAtomContainer> removeDuplicates(List<IAtomContainer> tautomers)
focal_class.class_method_signature: InChITautomerGenerator.combineHydrogenPositions(List<Integer> taken, List<List<Integer>> combinations,
              IAtomContainer skeleton, int totalMobHydrCount, List<Integer> mobHydrAttachPositions)
focal_class.full_signature: private void combineHydrogenPositions(List<Integer> taken, List<List<Integer>> combinations,
              IAtomContainer skeleton, int totalMobHydrCount, List<Integer> mobHydrAttachPositions)
focal_class.identifier: combineHydrogenPositions
focal_class.modifiers: private
focal_class.parameters: (List<Integer> taken, List<List<Integer>> combinations,
              IAtomContainer skeleton, int totalMobHydrCount, List<Integer> mobHydrAttachPositions)
focal_class.return: void
focal_class.signature: void combineHydrogenPositions(List<Integer> taken, List<List<Integer>> combinations,
              IAtomContainer skeleton, int totalMobHydrCount, List<Integer> mobHydrAttachPositions)
focal_class.class_method_signature: InChITautomerGenerator.findAtomByPosition(IAtomContainer container, int position)
focal_class.full_signature: private IAtom findAtomByPosition(IAtomContainer container, int position)
focal_class.identifier: findAtomByPosition
focal_class.modifiers: private
focal_class.parameters: (IAtomContainer container, int position)
focal_class.return: IAtom
focal_class.signature: IAtom findAtomByPosition(IAtomContainer container, int position)
focal_class.class_method_signature: InChITautomerGenerator.tryDoubleBondCombinations(IAtomContainer container, int dblBondsAdded, int bondOffSet,
              int doubleBondMax, List<IAtom> atomsInNeedOfFix)
focal_class.full_signature: private List<Integer> tryDoubleBondCombinations(IAtomContainer container, int dblBondsAdded, int bondOffSet,
              int doubleBondMax, List<IAtom> atomsInNeedOfFix)
focal_class.identifier: tryDoubleBondCombinations
focal_class.modifiers: private
focal_class.parameters: (IAtomContainer container, int dblBondsAdded, int bondOffSet,
              int doubleBondMax, List<IAtom> atomsInNeedOfFix)
focal_class.return: List<Integer>
focal_class.signature: List<Integer> tryDoubleBondCombinations(IAtomContainer container, int dblBondsAdded, int bondOffSet,
              int doubleBondMax, List<IAtom> atomsInNeedOfFix)
focal_class.class_method_signature: InChITautomerGenerator.getConnectivity(IAtom atom, IAtomContainer container)
focal_class.full_signature: private int getConnectivity(IAtom atom, IAtomContainer container)
focal_class.identifier: getConnectivity
focal_class.modifiers: private
focal_class.parameters: (IAtom atom, IAtomContainer container)
focal_class.return: int
focal_class.signature: int getConnectivity(IAtom atom, IAtomContainer container)
focal_method.body: public List<IAtomContainer> getTautomers(IAtomContainer mol) throws CDKException, CloneNotSupportedException {
  
          String opt = "";
          if ((flags & KETO_ENOL) != 0)
              opt += " -KET";
          if ((flags & ONE_FIVE_SHIFT) != 0)
              opt += " -15T";
  
          InChIGenerator gen   = InChIGeneratorFactory.getInstance().getInChIGenerator(mol, opt);
          String         inchi = gen.getInchi();
          String         aux   = gen.getAuxInfo();
  
          long[] amap = new long[mol.getAtomCount()];
          InChINumbersTools.parseAuxInfo(aux, amap);
  
          if (inchi == null)
              throw new CDKException(InChIGenerator.class
                      + " failed to create an InChI for the provided molecule, InChI -> null.");
          return getTautomers(mol, inchi, amap);
      }
focal_method.class_method_signature: InChITautomerGenerator.getTautomers(IAtomContainer mol)
focal_method.full_signature: public List<IAtomContainer> getTautomers(IAtomContainer mol)
focal_method.identifier: getTautomers
focal_method.invocations: getInChIGenerator getInstance getInchi getAuxInfo getAtomCount parseAuxInfo getTautomers
focal_method.modifiers: public
focal_method.parameters: (IAtomContainer mol)
focal_method.return: List<IAtomContainer>
focal_method.signature: List<IAtomContainer> getTautomers(IAtomContainer mol)