test_class.declarator: pattern1
test_class.modifier: private
test_class.original_string: private DirectedGraph<GenericNode<String>> pattern1;
test_class.type: DirectedGraph<GenericNode<String>>
test_class.var_name: pattern1
test_class.declarator: target1
test_class.modifier: private
test_class.original_string: private DirectedGraph<GenericNode<String>> target1;
test_class.type: DirectedGraph<GenericNode<String>>
test_class.var_name: target1
test_class.declarator: pattern2
test_class.modifier: private
test_class.original_string: private DirectedGraph<GenericNode<String>> pattern2;
test_class.type: DirectedGraph<GenericNode<String>>
test_class.var_name: pattern2
test_class.declarator: pattern2_1
test_class.modifier: private
test_class.original_string: private DirectedGraph<GenericNode<String>> pattern2_1;
test_class.type: DirectedGraph<GenericNode<String>>
test_class.var_name: pattern2_1
test_class.declarator: target2
test_class.modifier: private
test_class.original_string: private DirectedGraph<GenericNode<String>> target2;
test_class.type: DirectedGraph<GenericNode<String>>
test_class.var_name: target2
test_class.declarator: pattern3
test_class.modifier: private
test_class.original_string: private DirectedGraph<GenericNode<String>> pattern3;
test_class.type: DirectedGraph<GenericNode<String>>
test_class.var_name: pattern3
test_class.declarator: pattern3_1
test_class.modifier: private
test_class.original_string: private DirectedGraph<GenericNode<String>> pattern3_1;
test_class.type: DirectedGraph<GenericNode<String>>
test_class.var_name: pattern3_1
test_class.declarator: target3
test_class.modifier: private
test_class.original_string: private DirectedGraph<GenericNode<String>> target3;
test_class.type: DirectedGraph<GenericNode<String>>
test_class.var_name: target3
test_class.file: singa-mathematics/src/test/java/bio/singa/mathematics/algorithms/graphs/isomorphism/RISubgraphFinderTest.java
test_class.identifier: RISubgraphFinderTest
test_case.body: @Test
      void shouldFindFullDirectedCyclicMatch() {
          BiFunction<GenericNode<String>, GenericNode<String>, Boolean> nodeConditionExtractor =
                  (first, second) -> first.getContent().equals(second.getContent());
  
          RISubgraphFinder<GenericNode<String>, DirectedEdge<GenericNode<String>>, Vector2D, Integer, DirectedGraph<GenericNode<String>>> finder
                  = new RISubgraphFinder<>(pattern3, target3, nodeConditionExtractor, (first, second) -> true);
  
          assertEquals(1, finder.getFullMatches().size());
      }
test_case.class_method_signature: RISubgraphFinderTest.shouldFindFullDirectedCyclicMatch()
test_case.full_signature: @Test void shouldFindFullDirectedCyclicMatch()
test_case.identifier: shouldFindFullDirectedCyclicMatch
test_case.invocations: equals getContent getContent assertEquals size getFullMatches
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldFindFullDirectedCyclicMatch()
focal_class.declarator: logger = LoggerFactory.getLogger(RISubgraphFinder.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger logger = LoggerFactory.getLogger(RISubgraphFinder.class);
focal_class.type: Logger
focal_class.var_name: logger
focal_class.declarator: mu
focal_class.modifier: private final
focal_class.original_string: private final List<NodeType> mu;
focal_class.type: List<NodeType>
focal_class.var_name: mu
focal_class.declarator: ptmu
focal_class.modifier: private final
focal_class.original_string: private final List<NodeType> ptmu;
focal_class.type: List<NodeType>
focal_class.var_name: ptmu
focal_class.declarator: patternGraph
focal_class.modifier: private final
focal_class.original_string: private final GraphType patternGraph;
focal_class.type: GraphType
focal_class.var_name: patternGraph
focal_class.declarator: targetGraph
focal_class.modifier: private final
focal_class.original_string: private final GraphType targetGraph;
focal_class.type: GraphType
focal_class.var_name: targetGraph
focal_class.declarator: nodeConditionExtractor
focal_class.modifier: private final
focal_class.original_string: private final BiFunction<NodeType, NodeType, Boolean> nodeConditionExtractor;
focal_class.type: BiFunction<NodeType, NodeType, Boolean>
focal_class.var_name: nodeConditionExtractor
focal_class.declarator: edgeConditionExtractor
focal_class.modifier: private final
focal_class.original_string: private final BiFunction<EdgeType, EdgeType, Boolean> edgeConditionExtractor;
focal_class.type: BiFunction<EdgeType, EdgeType, Boolean>
focal_class.var_name: edgeConditionExtractor
focal_class.declarator: minimalPartialMatchSize
focal_class.modifier: private final
focal_class.original_string: private final int minimalPartialMatchSize;
focal_class.type: int
focal_class.var_name: minimalPartialMatchSize
focal_class.declarator: fullMatches
focal_class.modifier: private final
focal_class.original_string: private final List<List<NodeType>> fullMatches;
focal_class.type: List<List<NodeType>>
focal_class.var_name: fullMatches
focal_class.declarator: partialMatches
focal_class.modifier: private final
focal_class.original_string: private final Map<Integer, List<List<NodeType>>> partialMatches;
focal_class.type: Map<Integer, List<List<NodeType>>>
focal_class.var_name: partialMatches
focal_class.declarator: parentGraph
focal_class.modifier: private
focal_class.original_string: private DirectedGraph<GenericNode<NodeType>> parentGraph;
focal_class.type: DirectedGraph<GenericNode<NodeType>>
focal_class.var_name: parentGraph
focal_class.declarator: searchSpace
focal_class.modifier: private
focal_class.original_string: private DirectedGraph<GenericNode<NodeType>> searchSpace;
focal_class.type: DirectedGraph<GenericNode<NodeType>>
focal_class.var_name: searchSpace
focal_class.declarator: fullMatchPairs
focal_class.modifier: private
focal_class.original_string: private List<List<Pair<NodeType>>> fullMatchPairs;
focal_class.type: List<List<Pair<NodeType>>>
focal_class.var_name: fullMatchPairs
focal_class.file: singa-mathematics/src/main/java/bio/singa/mathematics/algorithms/graphs/isomorphism/RISubgraphFinder.java
focal_class.identifier: RISubgraphFinder
focal_class.class_method_signature: RISubgraphFinder.RISubgraphFinder(GraphType patternGraph, GraphType targetGraph, BiFunction<NodeType, NodeType, Boolean> nodeConditionExtractor,
                              BiFunction<EdgeType, EdgeType, Boolean> edgeConditionExtractor)
focal_class.full_signature: public  RISubgraphFinder(GraphType patternGraph, GraphType targetGraph, BiFunction<NodeType, NodeType, Boolean> nodeConditionExtractor,
                              BiFunction<EdgeType, EdgeType, Boolean> edgeConditionExtractor)
focal_class.identifier: RISubgraphFinder
focal_class.modifiers: public
focal_class.parameters: (GraphType patternGraph, GraphType targetGraph, BiFunction<NodeType, NodeType, Boolean> nodeConditionExtractor,
                              BiFunction<EdgeType, EdgeType, Boolean> edgeConditionExtractor)
focal_class.signature:  RISubgraphFinder(GraphType patternGraph, GraphType targetGraph, BiFunction<NodeType, NodeType, Boolean> nodeConditionExtractor,
                              BiFunction<EdgeType, EdgeType, Boolean> edgeConditionExtractor)
focal_class.class_method_signature: RISubgraphFinder.RISubgraphFinder(GraphType patternGraph, GraphType targetGraph, BiFunction<NodeType, NodeType, Boolean> nodeConditionExtractor,
                              BiFunction<EdgeType, EdgeType, Boolean> edgeConditionExtractor, int minimalPartialMatchSize)
focal_class.full_signature: public  RISubgraphFinder(GraphType patternGraph, GraphType targetGraph, BiFunction<NodeType, NodeType, Boolean> nodeConditionExtractor,
                              BiFunction<EdgeType, EdgeType, Boolean> edgeConditionExtractor, int minimalPartialMatchSize)
focal_class.identifier: RISubgraphFinder
focal_class.modifiers: public
focal_class.parameters: (GraphType patternGraph, GraphType targetGraph, BiFunction<NodeType, NodeType, Boolean> nodeConditionExtractor,
                              BiFunction<EdgeType, EdgeType, Boolean> edgeConditionExtractor, int minimalPartialMatchSize)
focal_class.signature:  RISubgraphFinder(GraphType patternGraph, GraphType targetGraph, BiFunction<NodeType, NodeType, Boolean> nodeConditionExtractor,
                              BiFunction<EdgeType, EdgeType, Boolean> edgeConditionExtractor, int minimalPartialMatchSize)
focal_class.class_method_signature: RISubgraphFinder.getMu()
focal_class.full_signature: public List<NodeType> getMu()
focal_class.identifier: getMu
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<NodeType>
focal_class.signature: List<NodeType> getMu()
focal_class.class_method_signature: RISubgraphFinder.getPtmu()
focal_class.full_signature: public List<NodeType> getPtmu()
focal_class.identifier: getPtmu
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<NodeType>
focal_class.signature: List<NodeType> getPtmu()
focal_class.class_method_signature: RISubgraphFinder.calculateMu()
focal_class.full_signature: private void calculateMu()
focal_class.identifier: calculateMu
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void calculateMu()
focal_class.class_method_signature: RISubgraphFinder.calculateVuvis(NodeType ui)
focal_class.full_signature: private int calculateVuvis(NodeType ui)
focal_class.identifier: calculateVuvis
focal_class.modifiers: private
focal_class.parameters: (NodeType ui)
focal_class.return: int
focal_class.signature: int calculateVuvis(NodeType ui)
focal_class.class_method_signature: RISubgraphFinder.calculateVmunv(NodeType ui, Set<NodeType> neighboursOfMu)
focal_class.full_signature: private int calculateVmunv(NodeType ui, Set<NodeType> neighboursOfMu)
focal_class.identifier: calculateVmunv
focal_class.modifiers: private
focal_class.parameters: (NodeType ui, Set<NodeType> neighboursOfMu)
focal_class.return: int
focal_class.signature: int calculateVmunv(NodeType ui, Set<NodeType> neighboursOfMu)
focal_class.class_method_signature: RISubgraphFinder.calculateVmneig(NodeType ui, Set<NodeType> neighboursOfMu)
focal_class.full_signature: private int calculateVmneig(NodeType ui, Set<NodeType> neighboursOfMu)
focal_class.identifier: calculateVmneig
focal_class.modifiers: private
focal_class.parameters: (NodeType ui, Set<NodeType> neighboursOfMu)
focal_class.return: int
focal_class.signature: int calculateVmneig(NodeType ui, Set<NodeType> neighboursOfMu)
focal_class.class_method_signature: RISubgraphFinder.buildParentGraph()
focal_class.full_signature: private void buildParentGraph()
focal_class.identifier: buildParentGraph
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void buildParentGraph()
focal_class.class_method_signature: RISubgraphFinder.matchTargetGraph()
focal_class.full_signature: private void matchTargetGraph()
focal_class.identifier: matchTargetGraph
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void matchTargetGraph()
focal_class.class_method_signature: RISubgraphFinder.growSearchSpace(int remainingPatternNodes, DirectedGraph<GenericNode<NodeType>> targetSpace, GenericNode<NodeType> targetSpaceParent, NodeType candidateTargetNode)
focal_class.full_signature: private void growSearchSpace(int remainingPatternNodes, DirectedGraph<GenericNode<NodeType>> targetSpace, GenericNode<NodeType> targetSpaceParent, NodeType candidateTargetNode)
focal_class.identifier: growSearchSpace
focal_class.modifiers: private
focal_class.parameters: (int remainingPatternNodes, DirectedGraph<GenericNode<NodeType>> targetSpace, GenericNode<NodeType> targetSpaceParent, NodeType candidateTargetNode)
focal_class.return: void
focal_class.signature: void growSearchSpace(int remainingPatternNodes, DirectedGraph<GenericNode<NodeType>> targetSpace, GenericNode<NodeType> targetSpaceParent, NodeType candidateTargetNode)
focal_class.class_method_signature: RISubgraphFinder.checkConsumedNeighbors(NodeType candidateTargetNode, List<NodeType> targetSpacePath, int currentPatternDepth)
focal_class.full_signature: private boolean checkConsumedNeighbors(NodeType candidateTargetNode, List<NodeType> targetSpacePath, int currentPatternDepth)
focal_class.identifier: checkConsumedNeighbors
focal_class.modifiers: private
focal_class.parameters: (NodeType candidateTargetNode, List<NodeType> targetSpacePath, int currentPatternDepth)
focal_class.return: boolean
focal_class.signature: boolean checkConsumedNeighbors(NodeType candidateTargetNode, List<NodeType> targetSpacePath, int currentPatternDepth)
focal_class.class_method_signature: RISubgraphFinder.checkEdgeCondition(Optional<EdgeType> targetSpaceEdgeCandidateToParent, Optional<EdgeType> patternEdgeCandidateToParent)
focal_class.full_signature: private boolean checkEdgeCondition(Optional<EdgeType> targetSpaceEdgeCandidateToParent, Optional<EdgeType> patternEdgeCandidateToParent)
focal_class.identifier: checkEdgeCondition
focal_class.modifiers: private
focal_class.parameters: (Optional<EdgeType> targetSpaceEdgeCandidateToParent, Optional<EdgeType> patternEdgeCandidateToParent)
focal_class.return: boolean
focal_class.signature: boolean checkEdgeCondition(Optional<EdgeType> targetSpaceEdgeCandidateToParent, Optional<EdgeType> patternEdgeCandidateToParent)
focal_class.class_method_signature: RISubgraphFinder.getParentGraph()
focal_class.full_signature: public DirectedGraph<GenericNode<NodeType>> getParentGraph()
focal_class.identifier: getParentGraph
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: DirectedGraph<GenericNode<NodeType>>
focal_class.signature: DirectedGraph<GenericNode<NodeType>> getParentGraph()
focal_class.class_method_signature: RISubgraphFinder.getSearchSpace()
focal_class.full_signature: public DirectedGraph<GenericNode<NodeType>> getSearchSpace()
focal_class.identifier: getSearchSpace
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: DirectedGraph<GenericNode<NodeType>>
focal_class.signature: DirectedGraph<GenericNode<NodeType>> getSearchSpace()
focal_class.class_method_signature: RISubgraphFinder.getFullMatches()
focal_class.full_signature: public List<List<NodeType>> getFullMatches()
focal_class.identifier: getFullMatches
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<List<NodeType>>
focal_class.signature: List<List<NodeType>> getFullMatches()
focal_class.class_method_signature: RISubgraphFinder.getFullMatchPairs()
focal_class.full_signature: public List<List<Pair<NodeType>>> getFullMatchPairs()
focal_class.identifier: getFullMatchPairs
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<List<Pair<NodeType>>>
focal_class.signature: List<List<Pair<NodeType>>> getFullMatchPairs()
focal_class.class_method_signature: RISubgraphFinder.getPartialMatches()
focal_class.full_signature: public Map<Integer, List<List<NodeType>>> getPartialMatches()
focal_class.identifier: getPartialMatches
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Map<Integer, List<List<NodeType>>>
focal_class.signature: Map<Integer, List<List<NodeType>>> getPartialMatches()
focal_class.class_method_signature: RISubgraphFinder.getPatternGraph()
focal_class.full_signature: public GraphType getPatternGraph()
focal_class.identifier: getPatternGraph
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: GraphType
focal_class.signature: GraphType getPatternGraph()
focal_class.class_method_signature: RISubgraphFinder.getTargetGraph()
focal_class.full_signature: public GraphType getTargetGraph()
focal_class.identifier: getTargetGraph
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: GraphType
focal_class.signature: GraphType getTargetGraph()
focal_method.body: public List<List<NodeType>> getFullMatches() {
          return fullMatches;
      }
focal_method.class_method_signature: RISubgraphFinder.getFullMatches()
focal_method.full_signature: public List<List<NodeType>> getFullMatches()
focal_method.identifier: getFullMatches
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: List<List<NodeType>>
focal_method.signature: List<List<NodeType>> getFullMatches()