private Result <None> RenderIntoFileAutoSize(ImageSettings imageSettings, IColorManager colorManager, ITagsCloud tagsCloud) { var words = tagsCloud.AddedWords.Select(x => x.Word).ToList(); var shiftedRectangles = ShiftRectanglesToMainQuarter(tagsCloud.AddedWords.Select(x => x.Rectangle).ToList()); var tagsCloudWords = words.Zip(shiftedRectangles, (word, rectangle) => (new TagsCloudWord(word, rectangle))) .ToList(); var tagsCloudToDraw = new TagsCloud(tagsCloudWords); var wordsColors = colorManager.GetWordsColors(tagsCloudToDraw.AddedWords.ToList()); var pictureSize = GetPictureSize(tagsCloudToDraw); var btm = new Bitmap(pictureSize.Width, pictureSize.Height); using (var obj = Graphics.FromImage(btm)) { foreach (var tagsCloudWord in tagsCloudToDraw.AddedWords) { DrawWord(obj, tagsCloudWord, wordsColors[tagsCloudWord], FontFamily.GenericMonospace); } btm.Save(imageSettings.OutputPath); } return(new Result <None>()); }
public void FindAverageFrequency() { var text = new[] { "a a a a a", "b b b c" }; var tagsCloud = new TagsCloud(text, new Point(50, 50), 100, 100); Assert.That(tagsCloud.AverageFrequency, Is.EqualTo(3)); }
public void createFrequencyDictionary() { var text = new[] { "a b a, b a", "a b c" }; var tagsCloud = new TagsCloud(text, new Point(50, 50), 100, 100); tagsCloud.Stats["a"].Should().Be(4); tagsCloud.Stats["b"].Should().Be(3); tagsCloud.Stats["c"].Should().Be(1); }
private static void Main(string[] args) { try { var argsValid = CommandLine.Parser.Default.ParseArguments(args, Options); if (!argsValid) { Console.WriteLine(HelpText.AutoBuild(Options).ToString()); } if (Options.WordProcessorIndices == null || Options.WordProcessorIndices.Any() == false) { var picker = Container.GetInstance <WordProcessorPicker>(); Options.WordProcessorIndices = new [] { picker.GetOptionIndexByType(typeof(TrimSpacesProcessor)), picker.GetOptionIndexByType(typeof(ToLowerCaseProcessor)) }; } IWordStore words; using (var file = File.OpenRead(Options.InputFileName)) using (var fileReader = new StreamReader(file)) { words = Container.GetInstance <IFileParser>().ParseFile(fileReader); } var cloudBuilder = new TagsCloud( Container.GetInstance <ILayoutAlgorithm>(), words, Container.GetInstance <WordProcessorStack>().WordProcessors ); var resultImage = cloudBuilder.CreateTagsCloud(); resultImage.Save(Options.ResultFileName); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadKey(); Environment.Exit(1); } }