code: package edu.cmu.tetrad.algcomparison.algorithm.oracle.pattern;
  
  import edu.cmu.tetrad.algcomparison.algorithm.Algorithm;
  import edu.cmu.tetrad.algcomparison.utils.HasKnowledge;
  import edu.cmu.tetrad.data.DataModel;
  import edu.cmu.tetrad.data.DataType;
  import edu.cmu.tetrad.data.IKnowledge;
  import edu.cmu.tetrad.data.Knowledge2;
  import edu.cmu.tetrad.graph.EdgeListGraph;
  import edu.cmu.tetrad.graph.Graph;
  import edu.cmu.tetrad.util.Parameters;
  
  import java.util.ArrayList;
  import java.util.List;
  
  /**
   * PC.
   *
   * @author jdramsey
   */
  public class SingleGraphAlg implements Algorithm, HasKnowledge {
  
      static final long serialVersionUID = 23L;
      private Graph graph;
  
      public SingleGraphAlg(Graph graph) {
          this.graph = graph;
      }
  
      @Override
      public Graph search(DataModel dataSet, Parameters parameters) {
          return graph;
      }
  
      @Override
      public Graph getComparisonGraph(Graph graph) {
          return new EdgeListGraph(graph);
      }
  
      @Override
      public String getDescription() {
          return "Given graph";
      }
  
      @Override
      public DataType getDataType() {
          return DataType.Mixed;
      }
  
      @Override
      public List<String> getParameters() {
          return new ArrayList<>();
      }
  
      @Override
      public IKnowledge getKnowledge() {
          return new Knowledge2();
      }
  
      @Override
      public void setKnowledge(IKnowledge knowledge) {
      }
  
  }
  