test_class.file: singa-structure/src/test/java/bio/singa/structure/algorithms/superimposition/MaximumCommonSubgraphSuperimposerTest.java
test_class.identifier: MaximumCommonSubgraphSuperimposerTest
test_case.body: @Test
      void shouldCalculateMaximumCommonSubgraphSuperimposition() throws IOException {
  
          List<LeafSubstructure<?>> referenceLeafSubstructure = StructureParser.local()
                  .fileLocation(Resources.getResourceAsFileLocation("adenine_shifted.pdb"))
                  .everything()
                  .parse().getAllLeafSubstructures();
          List<LeafSubstructure<?>> candidateLeafSubstructure = StructureParser.local()
                  .fileLocation(Resources.getResourceAsFileLocation("atp.pdb"))
                  .everything()
                  .parse().getAllLeafSubstructures();
  
          SubstructureSuperimposition superimposition = MaximumCommonSubgraphSuperimposer.calculateSubstructureSuperimposition(referenceLeafSubstructure, candidateLeafSubstructure);
          assertEquals(0.0, superimposition.getRmsd(), 1E-3);
      }
test_case.class_method_signature: MaximumCommonSubgraphSuperimposerTest.shouldCalculateMaximumCommonSubgraphSuperimposition()
test_case.full_signature: @Test void shouldCalculateMaximumCommonSubgraphSuperimposition()
test_case.identifier: shouldCalculateMaximumCommonSubgraphSuperimposition
test_case.invocations: getAllLeafSubstructures parse everything fileLocation local getResourceAsFileLocation getAllLeafSubstructures parse everything fileLocation local getResourceAsFileLocation calculateSubstructureSuperimposition assertEquals getRmsd
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldCalculateMaximumCommonSubgraphSuperimposition()
focal_class.declarator: logger = LoggerFactory.getLogger(MaximumCommonSubgraphSuperimposer.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(MaximumCommonSubgraphSuperimposer.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: DEFAULT_ATOM_CONDITION = (a, b) -> a.getElement().equals(b.getElement())
focal_class.modifier: private static final
focal_class.original_string: private static final BiFunction<MoleculeAtom, MoleculeAtom, Boolean> DEFAULT_ATOM_CONDITION = (a, b) -> a.getElement().equals(b.getElement());
focal_class.type: BiFunction<MoleculeAtom, MoleculeAtom, Boolean>
focal_class.var_name: DEFAULT_ATOM_CONDITION
focal_class.declarator: DEFAULT_BOND_CONDITION = (a, b) -> a.getType() == b.getType()
focal_class.modifier: private static final
focal_class.original_string: private static final BiFunction<MoleculeBond, MoleculeBond, Boolean> DEFAULT_BOND_CONDITION = (a, b) -> a.getType() == b.getType();
focal_class.type: BiFunction<MoleculeBond, MoleculeBond, Boolean>
focal_class.var_name: DEFAULT_BOND_CONDITION
focal_class.declarator: atomCondition
focal_class.modifier: private final
focal_class.original_string: private final BiFunction<MoleculeAtom, MoleculeAtom, Boolean> atomCondition;
focal_class.type: BiFunction<MoleculeAtom, MoleculeAtom, Boolean>
focal_class.var_name: atomCondition
focal_class.declarator: bondCondition
focal_class.modifier: private final
focal_class.original_string: private final BiFunction<MoleculeBond, MoleculeBond, Boolean> bondCondition;
focal_class.type: BiFunction<MoleculeBond, MoleculeBond, Boolean>
focal_class.var_name: bondCondition
focal_class.file: singa-structure/src/main/java/bio/singa/structure/algorithms/superimposition/MaximumCommonSubgraphSuperimposer.java
focal_class.identifier: MaximumCommonSubgraphSuperimposer
focal_class.class_method_signature: MaximumCommonSubgraphSuperimposer.MaximumCommonSubgraphSuperimposer(List<LeafSubstructure<?>> reference, List<LeafSubstructure<?>> candidate, BiFunction<MoleculeAtom, MoleculeAtom, Boolean> atomCondition, BiFunction<MoleculeBond, MoleculeBond, Boolean> bondCondition)
focal_class.full_signature: private  MaximumCommonSubgraphSuperimposer(List<LeafSubstructure<?>> reference, List<LeafSubstructure<?>> candidate, BiFunction<MoleculeAtom, MoleculeAtom, Boolean> atomCondition, BiFunction<MoleculeBond, MoleculeBond, Boolean> bondCondition)
focal_class.identifier: MaximumCommonSubgraphSuperimposer
focal_class.modifiers: private
focal_class.parameters: (List<LeafSubstructure<?>> reference, List<LeafSubstructure<?>> candidate, BiFunction<MoleculeAtom, MoleculeAtom, Boolean> atomCondition, BiFunction<MoleculeBond, MoleculeBond, Boolean> bondCondition)
focal_class.signature:  MaximumCommonSubgraphSuperimposer(List<LeafSubstructure<?>> reference, List<LeafSubstructure<?>> candidate, BiFunction<MoleculeAtom, MoleculeAtom, Boolean> atomCondition, BiFunction<MoleculeBond, MoleculeBond, Boolean> bondCondition)
focal_class.class_method_signature: MaximumCommonSubgraphSuperimposer.calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate)
focal_class.full_signature: public static SubstructureSuperimposition calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate)
focal_class.identifier: calculateSubstructureSuperimposition
focal_class.modifiers: public static
focal_class.parameters: (List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate)
focal_class.return: SubstructureSuperimposition
focal_class.signature: SubstructureSuperimposition calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate)
focal_class.class_method_signature: MaximumCommonSubgraphSuperimposer.calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate,
                                                                                     BiFunction<MoleculeAtom, MoleculeAtom, Boolean> atomCondition,
                                                                                     BiFunction<MoleculeBond, MoleculeBond, Boolean> bondCondition)
focal_class.full_signature: public static SubstructureSuperimposition calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate,
                                                                                     BiFunction<MoleculeAtom, MoleculeAtom, Boolean> atomCondition,
                                                                                     BiFunction<MoleculeBond, MoleculeBond, Boolean> bondCondition)
focal_class.identifier: calculateSubstructureSuperimposition
focal_class.modifiers: public static
focal_class.parameters: (List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate,
                                                                                     BiFunction<MoleculeAtom, MoleculeAtom, Boolean> atomCondition,
                                                                                     BiFunction<MoleculeBond, MoleculeBond, Boolean> bondCondition)
focal_class.return: SubstructureSuperimposition
focal_class.signature: SubstructureSuperimposition calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate,
                                                                                     BiFunction<MoleculeAtom, MoleculeAtom, Boolean> atomCondition,
                                                                                     BiFunction<MoleculeBond, MoleculeBond, Boolean> bondCondition)
focal_class.class_method_signature: MaximumCommonSubgraphSuperimposer.defineAtoms()
focal_class.full_signature: @Override protected Pair<List<Atom>> defineAtoms()
focal_class.identifier: defineAtoms
focal_class.modifiers: @Override protected
focal_class.parameters: ()
focal_class.return: Pair<List<Atom>>
focal_class.signature: Pair<List<Atom>> defineAtoms()
focal_class.superclass: extends SubstructureSuperimposer
focal_method.body: public static SubstructureSuperimposition calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate) throws SubstructureSuperimpositionException {
          return new MaximumCommonSubgraphSuperimposer(reference, candidate, DEFAULT_ATOM_CONDITION, DEFAULT_BOND_CONDITION).calculateSuperimposition();
      }
focal_method.class_method_signature: MaximumCommonSubgraphSuperimposer.calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate)
focal_method.full_signature: public static SubstructureSuperimposition calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate)
focal_method.identifier: calculateSubstructureSuperimposition
focal_method.invocations: calculateSuperimposition
focal_method.modifiers: public static
focal_method.parameters: (List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate)
focal_method.return: SubstructureSuperimposition
focal_method.signature: SubstructureSuperimposition calculateSubstructureSuperimposition(List<LeafSubstructure<?>> reference,
                                                                                     List<LeafSubstructure<?>> candidate)