static ProjectGenerationOptions[] DispersedProjects(DisperseOptions options)
        {
            var result = new ProjectGenerationOptions[options.ProjectCount];

            for (int i = 0; i < options.ProjectCount; ++i)
            {
                // TODO: Use stddev to disperse files and loc between projects. for now, hacky equal distribution
                int lineCountInProject = options.LineCount / options.ProjectCount;
                int fileCountInProject = options.FileCount / options.ProjectCount;

                // HACK: Choose a good generator.
                var generator = options.PossibleGenerators.Single(x => x.Language == "C#");

                result[i] = ProjectGenerationOptions.Dispersed(generator, fileCountInProject, lineCountInProject);
            }
            return(result);
        }
 public static SolutionGenerationOptions Dispersed(FilePath outputDirectory, DisperseOptions options)
 {
     return(new SolutionGenerationOptions(outputDirectory, DispersedProjects(options)));
 }