Example #1
0
        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>());
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }
Example #4
0
 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);
     }
 }