test_class.file: runner/src/test/java/org/ananas/runner/kernel/model/AnanasGraphTest.java
test_class.identifier: AnanasGraphTest
test_case.body: @Test
    public void topologicalSort() {
      DagRequest dag = wikiDag();
      AnanasGraph builder = new AnanasGraph(dag.dag, dag.goals);
      Set<Step> x = builder.topologicalSort();
      Assert.assertEquals("should have same amout of step", dag.dag.getSteps().size(), x.size());
      System.out.println(x.stream().map(s -> s.id).collect(Collectors.toList()));
    }
test_case.class_method_signature: AnanasGraphTest.topologicalSort()
test_case.full_signature: @Test public void topologicalSort()
test_case.identifier: topologicalSort
test_case.invocations: wikiDag topologicalSort assertEquals size getSteps size println collect map stream toList
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void topologicalSort()
focal_class.declarator: stepdIds
focal_class.original_string: Map<String, Step> stepdIds;
focal_class.type: Map<String, Step>
focal_class.var_name: stepdIds
focal_class.declarator: graph
focal_class.original_string: MutableGraph<Step> graph;
focal_class.type: MutableGraph<Step>
focal_class.var_name: graph
focal_class.declarator: dag
focal_class.original_string: Dag dag;
focal_class.type: Dag
focal_class.var_name: dag
focal_class.declarator: goals
focal_class.original_string: Set<String> goals;
focal_class.type: Set<String>
focal_class.var_name: goals
focal_class.file: runner/src/main/java/org/ananas/runner/kernel/model/AnanasGraph.java
focal_class.identifier: AnanasGraph
focal_class.class_method_signature: AnanasGraph.AnanasGraph(Dag dag, Set<String> goals)
focal_class.full_signature: public  AnanasGraph(Dag dag, Set<String> goals)
focal_class.identifier: AnanasGraph
focal_class.modifiers: public
focal_class.parameters: (Dag dag, Set<String> goals)
focal_class.signature:  AnanasGraph(Dag dag, Set<String> goals)
focal_class.class_method_signature: AnanasGraph.build()
focal_class.full_signature: private void build()
focal_class.identifier: build
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void build()
focal_class.class_method_signature: AnanasGraph.reverse()
focal_class.full_signature: public AnanasGraph reverse()
focal_class.identifier: reverse
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: AnanasGraph
focal_class.signature: AnanasGraph reverse()
focal_class.class_method_signature: AnanasGraph.DFSBranch(Set<String> leaves)
focal_class.full_signature: public Map<String, Iterable<Step>> DFSBranch(Set<String> leaves)
focal_class.identifier: DFSBranch
focal_class.modifiers: public
focal_class.parameters: (Set<String> leaves)
focal_class.return: Map<String, Iterable<Step>>
focal_class.signature: Map<String, Iterable<Step>> DFSBranch(Set<String> leaves)
focal_class.class_method_signature: AnanasGraph.DFSBranch(String stepId)
focal_class.full_signature: public Iterable<Step> DFSBranch(String stepId)
focal_class.identifier: DFSBranch
focal_class.modifiers: public
focal_class.parameters: (String stepId)
focal_class.return: Iterable<Step>
focal_class.signature: Iterable<Step> DFSBranch(String stepId)
focal_class.class_method_signature: AnanasGraph.DFSBranch()
focal_class.full_signature: public Map<String, Iterable<Step>> DFSBranch()
focal_class.identifier: DFSBranch
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Map<String, Iterable<Step>>
focal_class.signature: Map<String, Iterable<Step>> DFSBranch()
focal_class.class_method_signature: AnanasGraph.subDag(Set<String> leaves)
focal_class.full_signature: public AnanasGraph subDag(Set<String> leaves)
focal_class.identifier: subDag
focal_class.modifiers: public
focal_class.parameters: (Set<String> leaves)
focal_class.return: AnanasGraph
focal_class.signature: AnanasGraph subDag(Set<String> leaves)
focal_class.class_method_signature: AnanasGraph.topologicalSort()
focal_class.full_signature: public Set<Step> topologicalSort()
focal_class.identifier: topologicalSort
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Set<Step>
focal_class.signature: Set<Step> topologicalSort()
focal_class.class_method_signature: AnanasGraph.successors(Step step)
focal_class.full_signature: public Set<Step> successors(Step step)
focal_class.identifier: successors
focal_class.modifiers: public
focal_class.parameters: (Step step)
focal_class.return: Set<Step>
focal_class.signature: Set<Step> successors(Step step)
focal_class.class_method_signature: AnanasGraph.isStartNode(Step step)
focal_class.full_signature: public boolean isStartNode(Step step)
focal_class.identifier: isStartNode
focal_class.modifiers: public
focal_class.parameters: (Step step)
focal_class.return: boolean
focal_class.signature: boolean isStartNode(Step step)
focal_class.class_method_signature: AnanasGraph.predecessors(Step step)
focal_class.full_signature: public Set<Step> predecessors(Step step)
focal_class.identifier: predecessors
focal_class.modifiers: public
focal_class.parameters: (Step step)
focal_class.return: Set<Step>
focal_class.signature: Set<Step> predecessors(Step step)
focal_class.class_method_signature: AnanasGraph.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_method.body: public Set<Step> topologicalSort() {
      return Graphs.topologicallySortedNodes(this.graph);
    }
focal_method.class_method_signature: AnanasGraph.topologicalSort()
focal_method.full_signature: public Set<Step> topologicalSort()
focal_method.identifier: topologicalSort
focal_method.invocations: topologicallySortedNodes
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: Set<Step>
focal_method.signature: Set<Step> topologicalSort()