Esempio n. 1
0
 /// <summary>
 /// This is a kind of constructor that builds the internal representation of
 /// the signature given the index of the vertex to use as a root. It also
 /// takes a maximum height, which limits how many vertices will be visited.
 /// </summary>
 /// <param name="rootVertexIndex">the index in the graph of the root for this signature</param>
 /// <param name="graphVertexCount">the number of vertices in the graph</param>
 /// <param name="height">the maximum height of the signature</param>
 public void Create(int rootVertexIndex, int graphVertexCount, int height)
 {
     this.Height   = height;
     vertexMapping = new Dictionary <int, int>
     {
         [rootVertexIndex] = 0
     };
     dag         = new DAG(0, graphVertexCount);
     vertexCount = 1;
     Builder(1, dag.GetRootLayer(), new List <DAG.Arc>(), height);
     if (invariantType == InvariantType.String)
     {
         CreateWithStringLabels();
     }
     else if (invariantType == InvariantType.Integer)
     {
         CreateWithIntLabels();
     }
     else
     {
         // XXX TODO : unknown invariant type
         Console.Error.WriteLine("unknown invariant type " + invariantType);
     }
 }