class_docstr: Generates graph with certain number of nodes, edges
  and unique edges.
  
  Example
  -------
  >>> # Construct graph with 20 nodes, 10 edges and 4 unique edges types
  >>> generator = dummyGraphGenerator(20,10,4)
  >>> generator.get()
  {'train': array([['h', 'r', 'p'],
                   ['a', 't', 'd'],
                   ['a', 's', 'j'],
                   ['d', 'y', 'h'],
                   ['e', 'v', 'j'],
                   ['e', 'z', 'l'],
                   ['c', 'x', 'n']], dtype='<U32'),
   'valid': array([['l', 'x', 'j']], dtype='<U32'),
   'test':  array([['k', 's', 'c'],
                   ['i', 'u', 'o']], dtype='<U32')}
class_docstr_tok: ["Generates","graph","with","certain","number","of","nodes",",","edges","and","unique","edges",".","Example","--","--","--","-",">",">",">","#","Construct","graph","with","20","nodes",",","10","edges","and","4","unique","edges","types",">",">",">","generator","=","dummyGraphGenerator","(","20,10,4",")",">",">",">","generator.get","(",")","{","'train","'",":","array","(","[","[","'","h","'",",","'","r","'",",","'","p","'","]",",","[","'","a","'",",","'t","'",",","'d","'","]",",","[","'","a","'",",","'s","'",",","'","j","'","]",",","[","'d","'",",","'","y","'",",","'","h","'","]",",","[","'","e","'",",","'","v","'",",","'","j","'","]",",","[","'","e","'",",","'","z","'",",","'","l","'","]",",","[","'","c","'",",","'","x","'",",","'n","'","]","]",",","dtype=","'","<","U32","'",")",",","'valid","'",":","array","(","[","[","'","l","'",",","'","x","'",",","'","j","'","]","]",",","dtype=","'","<","U32","'",")",",","'test","'",":","array","(","[","[","'","k","'",",","'s","'",",","'","c","'","]",",","[","'","i","'",",","'","u","'",",","'","o","'","]","]",",","dtype=","'","<","U32","'",")","}"]
docstr: Constructs list of size n_elems with unique substrings from alphabet.
  
  Parameters
  ----------
  n_elems: number of unique elements to be generated from the alphabet
  alphabet: list of unique symbols just like a small alphabet to construct 
            unique words
  
  Return
  ------
  elems: list of size n_elems with unique elements
docstr_tok: ["Constructs","list","of","size","n_elems","with","unique","substrings","from","alphabet",".","Parameters","--","--","--","--","--","n_elems",":","number","of","unique","elements","to","be","generated","from","the","alphabet","alphabet",":","list","of","unique","symbols","just","like","a","small","alphabet","to","construct","unique","words","Return","--","--","--","elems",":","list","of","size","n_elems","with","unique","elements"]
code: def get_unique(self, n_elems, alphabet):
      """Constructs list of size n_elems with unique substrings from alphabet.
  
      Parameters
      ----------
      n_elems: number of unique elements to be generated from the alphabet
      alphabet: list of unique symbols just like a small alphabet to construct
                unique words
  
      Return
      ------
      elems: list of size n_elems with unique elements
      """
      set_size = len(alphabet)
      size = set_size
      perms = list(alphabet)
      i = 1
      while size < n_elems:
          i += 1
          size += special.binom(set_size, i)
          perms.extend(permutations(alphabet, i))
  
      elems = []
      for elem in perms:
          if type(elem) == str:
              elems.append(elem)
          else:
              elems.extend(list(elem))
      return elems
  
imports: import pytest
  from ampligraph.datasets.graph_partitioner import AbstractGraphPartitioner, RandomVerticesGraphPartitioner, RandomEdgesGraphPartitioner, SortedEdgesGraphPartitioner, NaiveGraphPartitioner, DoubleSortedEdgesGraphPartitioner, get_number_of_partitions, PARTITION_ALGO_REGISTRY, GraphDataLoader
  import numpy
  import pandas
  from scipy import special
  from itertools import permutations
  import os
label_desc: Use image node_id 2 for calling the dummyGraphGenerator obj's underlying member method code with example usage: obj.get_unique(n_elems, alphabet) and returns: elems