code: public boolean generateAndSort(final Iterator<? extends T> iterator, final TransformationStrategy<? super T> transform, final long seed) {
  		// We cache all variables for faster access
  		final int[] d = this.d;
  		final int[] e = new int[3];
  		cleanUpIfNecessary();
  
  		/* We build the XOR'd edge list and compute the degree of each vertex. */
  		for(int k = 0; k < numEdges; k++) {
  			bitVectorToEdge(transform.toBitVector(iterator.next()), seed, numVertices, partSize, e);
  			xorEdge(k, e[0], e[1], e[2], false);
  			d[e[0]]++;
  			d[e[1]]++;
  			d[e[2]]++;
  		}
  
  		if (iterator.hasNext()) throw new IllegalStateException("This " + HypergraphSorter.class.getSimpleName() + " has " + numEdges + " edges, but the provided iterator returns more");
  
  		return sort();
  	}
docs: Generates a random 3-hypergraph and tries to sort its edges.
  
  @param iterator an iterator returning {@link #numEdges} keys.
  @param transform a transformation from keys to bit vectors.
  @param seed a 64-bit random seed.
  @return true if the sorting procedure succeeded.