/// <summary>
 /// Initializes a new instance of the <see cref="RandomLayoutAlgorithm{TVertex,TEdge,TGraph}"/> class.
 /// </summary>
 /// <param name="visitedGraph">Graph to layout.</param>
 /// <param name="verticesSizes">Vertices sizes.</param>
 /// <param name="verticesTypes">Vertices types.</param>
 /// <param name="parameters">Optional algorithm parameters.</param>
 public RandomLayoutAlgorithm(
     [NotNull] TGraph visitedGraph,
     [NotNull] IDictionary <TVertex, Size> verticesSizes,
     [CanBeNull] IDictionary <TVertex, RandomVertexType> verticesTypes,
     [CanBeNull] RandomLayoutParameters parameters = null)
     : this(visitedGraph, null, verticesSizes, verticesTypes, parameters)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RandomLayoutAlgorithm{TVertex,TEdge,TGraph}"/> class.
 /// </summary>
 /// <param name="visitedGraph">Graph to layout.</param>
 /// <param name="verticesPositions">Vertices positions.</param>
 /// <param name="verticesSizes">Vertices sizes.</param>
 /// <param name="verticesTypes">Vertices types.</param>
 /// <param name="parameters">Optional algorithm parameters.</param>
 public RandomLayoutAlgorithm(
     [NotNull] TGraph visitedGraph,
     [CanBeNull] IDictionary <TVertex, Point> verticesPositions,
     [NotNull] IDictionary <TVertex, Size> verticesSizes,
     [CanBeNull] IDictionary <TVertex, RandomVertexType> verticesTypes,
     [CanBeNull] RandomLayoutParameters parameters = null)
     : base(visitedGraph, verticesPositions, parameters)
 {
     _verticesSizes = new Dictionary <TVertex, Size>(verticesSizes);
     _verticesTypes = verticesTypes is null
         ? new Dictionary <TVertex, RandomVertexType>(0)
         : new Dictionary <TVertex, RandomVertexType>(verticesTypes);
 }