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))); }