test_class.file: base/isomorphism/src/test/java/org/openscience/cdk/isomorphism/StereoMatchTest.java
test_class.identifier: StereoMatchTest
test_case.body: @Test
      public void geometric_mismatch_together() {
          IAtomContainer query = but2ene();
          IAtomContainer target = but2ene();
          query.addStereoElement(new DoubleBondStereochemistry(query.getBond(0), new IBond[]{query.getBond(1),
                  query.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER));
          target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1),
                  target.getBond(2)}, IDoubleBondStereochemistry.Conformation.OPPOSITE));
          assertFalse(new StereoMatch(query, target).apply(new int[]{0, 1, 2, 3}));
      }
test_case.class_method_signature: StereoMatchTest.geometric_mismatch_together()
test_case.full_signature: @Test public void geometric_mismatch_together()
test_case.identifier: geometric_mismatch_together
test_case.invocations: but2ene but2ene addStereoElement getBond getBond getBond addStereoElement getBond getBond getBond assertFalse apply
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void geometric_mismatch_together()
focal_class.declarator: query
focal_class.modifier: private final
focal_class.original_string: private final IAtomContainer query, target;
focal_class.type: IAtomContainer
focal_class.var_name: query
focal_class.declarator: queryMap
focal_class.modifier: private final
focal_class.original_string: private final Map<IAtom, Integer> queryMap, targetMap;
focal_class.type: Map<IAtom, Integer>
focal_class.var_name: queryMap
focal_class.declarator: queryElements
focal_class.modifier: private final
focal_class.original_string: private final IStereoElement[]    queryElements, targetElements;
focal_class.type: IStereoElement[]
focal_class.var_name: queryElements
focal_class.declarator: queryTypes
focal_class.modifier: private final
focal_class.original_string: private final Type[]              queryTypes, targetTypes;
focal_class.type: Type[]
focal_class.var_name: queryTypes
focal_class.declarator: queryStereoIndices
focal_class.modifier: private final
focal_class.original_string: private final int[]               queryStereoIndices, targetStereoIndices;
focal_class.type: int[]
focal_class.var_name: queryStereoIndices
focal_class.file: base/isomorphism/src/main/java/org/openscience/cdk/isomorphism/StereoMatch.java
focal_class.identifier: StereoMatch
focal_class.interfaces: implements Predicate<int[]>
focal_class.class_method_signature: StereoMatch.StereoMatch(IAtomContainer query, IAtomContainer target)
focal_class.full_signature:   StereoMatch(IAtomContainer query, IAtomContainer target)
focal_class.identifier: StereoMatch
focal_class.parameters: (IAtomContainer query, IAtomContainer target)
focal_class.signature:  StereoMatch(IAtomContainer query, IAtomContainer target)
focal_class.class_method_signature: StereoMatch.apply(final int[] mapping)
focal_class.full_signature: @Override public boolean apply(final int[] mapping)
focal_class.identifier: apply
focal_class.modifiers: @Override public
focal_class.parameters: (final int[] mapping)
focal_class.return: boolean
focal_class.signature: boolean apply(final int[] mapping)
focal_class.class_method_signature: StereoMatch.checkTetrahedral(int u, int[] mapping)
focal_class.full_signature: private boolean checkTetrahedral(int u, int[] mapping)
focal_class.identifier: checkTetrahedral
focal_class.modifiers: private
focal_class.parameters: (int u, int[] mapping)
focal_class.return: boolean
focal_class.signature: boolean checkTetrahedral(int u, int[] mapping)
focal_class.class_method_signature: StereoMatch.map(int u, int v, int[] us, int[] mapping)
focal_class.full_signature: private int[] map(int u, int v, int[] us, int[] mapping)
focal_class.identifier: map
focal_class.modifiers: private
focal_class.parameters: (int u, int v, int[] us, int[] mapping)
focal_class.return: int[]
focal_class.signature: int[] map(int u, int v, int[] us, int[] mapping)
focal_class.class_method_signature: StereoMatch.checkGeometric(int u1, int u2, int[] mapping)
focal_class.full_signature: private boolean checkGeometric(int u1, int u2, int[] mapping)
focal_class.identifier: checkGeometric
focal_class.modifiers: private
focal_class.parameters: (int u1, int u2, int[] mapping)
focal_class.return: boolean
focal_class.signature: boolean checkGeometric(int u1, int u2, int[] mapping)
focal_class.class_method_signature: StereoMatch.neighbors(ITetrahedralChirality element, Map<IAtom, Integer> map)
focal_class.full_signature: private int[] neighbors(ITetrahedralChirality element, Map<IAtom, Integer> map)
focal_class.identifier: neighbors
focal_class.modifiers: private
focal_class.parameters: (ITetrahedralChirality element, Map<IAtom, Integer> map)
focal_class.return: int[]
focal_class.signature: int[] neighbors(ITetrahedralChirality element, Map<IAtom, Integer> map)
focal_class.class_method_signature: StereoMatch.findHydrogen(final IAtom[] atoms)
focal_class.full_signature: private IAtom findHydrogen(final IAtom[] atoms)
focal_class.identifier: findHydrogen
focal_class.modifiers: private
focal_class.parameters: (final IAtom[] atoms)
focal_class.return: IAtom
focal_class.signature: IAtom findHydrogen(final IAtom[] atoms)
focal_class.class_method_signature: StereoMatch.permutationParity(int[] vs)
focal_class.full_signature: private int permutationParity(int[] vs)
focal_class.identifier: permutationParity
focal_class.modifiers: private
focal_class.parameters: (int[] vs)
focal_class.return: int
focal_class.signature: int permutationParity(int[] vs)
focal_class.class_method_signature: StereoMatch.otherIndex(int i)
focal_class.full_signature: private int otherIndex(int i)
focal_class.identifier: otherIndex
focal_class.modifiers: private
focal_class.parameters: (int i)
focal_class.return: int
focal_class.signature: int otherIndex(int i)
focal_class.class_method_signature: StereoMatch.indexAtoms(IAtomContainer container)
focal_class.full_signature: private static Map<IAtom, Integer> indexAtoms(IAtomContainer container)
focal_class.identifier: indexAtoms
focal_class.modifiers: private static
focal_class.parameters: (IAtomContainer container)
focal_class.return: Map<IAtom, Integer>
focal_class.signature: Map<IAtom, Integer> indexAtoms(IAtomContainer container)
focal_class.class_method_signature: StereoMatch.indexElements(Map<IAtom, Integer> map, IStereoElement[] elements, Type[] types,
              IAtomContainer container)
focal_class.full_signature: private static int[] indexElements(Map<IAtom, Integer> map, IStereoElement[] elements, Type[] types,
              IAtomContainer container)
focal_class.identifier: indexElements
focal_class.modifiers: private static
focal_class.parameters: (Map<IAtom, Integer> map, IStereoElement[] elements, Type[] types,
              IAtomContainer container)
focal_class.return: int[]
focal_class.signature: int[] indexElements(Map<IAtom, Integer> map, IStereoElement[] elements, Type[] types,
              IAtomContainer container)
focal_class.class_method_signature: StereoMatch.parity(ITetrahedralChirality.Stereo stereo)
focal_class.full_signature: private int parity(ITetrahedralChirality.Stereo stereo)
focal_class.identifier: parity
focal_class.modifiers: private
focal_class.parameters: (ITetrahedralChirality.Stereo stereo)
focal_class.return: int
focal_class.signature: int parity(ITetrahedralChirality.Stereo stereo)
focal_class.class_method_signature: StereoMatch.parity(Conformation conformation)
focal_class.full_signature: private int parity(Conformation conformation)
focal_class.identifier: parity
focal_class.modifiers: private
focal_class.parameters: (Conformation conformation)
focal_class.return: int
focal_class.signature: int parity(Conformation conformation)
focal_method.body: @Override
      public boolean apply(final int[] mapping) {
  
          // n.b. not true for unspecified queries e.g. [C@?H](*)(*)*
          if (queryStereoIndices.length > targetStereoIndices.length) return false;
  
          for (final int u : queryStereoIndices) {
              switch (queryTypes[u]) {
                  case Tetrahedral:
                      if (!checkTetrahedral(u, mapping)) return false;
                      break;
                  case Geometric:
                      if (!checkGeometric(u, otherIndex(u), mapping)) return false;
                      break;
              }
          }
          return true;
      }
focal_method.class_method_signature: StereoMatch.apply(final int[] mapping)
focal_method.full_signature: @Override public boolean apply(final int[] mapping)
focal_method.identifier: apply
focal_method.invocations: checkTetrahedral checkGeometric otherIndex
focal_method.modifiers: @Override public
focal_method.parameters: (final int[] mapping)
focal_method.return: boolean
focal_method.signature: boolean apply(final int[] mapping)