コード例 #1
0
 public void SetSettings(IFileReader reader,
                         ICloudLayouter layouter,
                         IPreprocessor preprocessor,
                         IImageSaver saver,
                         ICloudBuilder builder)
 {
     this.reader       = reader;
     this.layouter     = layouter;
     this.preprocessor = preprocessor;
     this.saver        = saver;
     this.cloudBuilder = builder;
 }
コード例 #2
0
 public CloudImageBuilder(
     ICloudBuilder builder,
     IWordReader reader,
     IWordWeighter weighter,
     IWordDrawer drawer,
     Size imageSize
     )
 {
     _weighter = weighter;
     _drawer   = drawer;
     BuildCloudImage(builder, reader, imageSize);
 }
コード例 #3
0
        private void BuildCloudImage(ICloudBuilder builder, IWordReader reader, Size imageSize)
        {
            _cloudImage = new Bitmap(imageSize.Width, imageSize.Height);
            var graphics      = Graphics.FromImage(_cloudImage);
            var weightedWords = _weighter.WeightWords(reader);

            foreach (var weightedWord in weightedWords)
            {
                var rectanglePlace = builder.PutNextRectangle(_drawer.GetWordSize(graphics, weightedWord));
                graphics.DrawRectangle(Pens.RoyalBlue, rectanglePlace);
                _drawer.DrawWord(graphics, weightedWord, rectanglePlace);
            }
        }
コード例 #4
0
            public void SetUp()
            {
                var wordsFilterMock = Substitute.For <IWordsFilter>();

                wordsFilterMock.Filter(Arg.Any <IEnumerable <string> >()).Returns(Enumerable.Repeat("mock", 100));

                var fileReaderMock = Substitute.For <IFileReader>();

                fileReaderMock.ReadFile(Arg.Any <string>()).Returns(Enumerable.Repeat("mock", 100));

                var layoutNormalizerMock = Substitute.For <ILayoutNormalizer>();
                var rect       = new Rectangle(0, 0, 1000, 1000);
                var wordInRect = new WordInRect("kek", rect, new Font("Arial", 10));

                layoutNormalizerMock.GetMainRect(Arg.Any <IEnumerable <WordInRect> >()).Returns(rect);
                layoutNormalizerMock.ShiftLayout(Arg.Any <IEnumerable <WordInRect> >(), rect)
                .Returns(Enumerable.Repeat(wordInRect, 100).ToArray());

                var builder = new ContainerBuilder();

                builder.RegisterInstance(new FrequencyAnalyzer()).As <IFrequencyAnalyzer>();
                builder.RegisterInstance(new DictionaryNormalizer()).As <IDictionaryNormalizer>();
                builder.RegisterInstance(new CloudLayouter(new Point(0, 0), 1))
                .As <ICloudLayouter>();


                builder.RegisterInstance(wordsFilterMock).As <IWordsFilter>();
                builder.RegisterInstance(layoutNormalizerMock).As <ILayoutNormalizer>();
                builder.RegisterType <CloudBuilder>().As <ICloudBuilder>();
                builder.RegisterType <CloudDrawer>().As <ICloudDrawer>();
                builder.RegisterInstance(fileReaderMock).As <IFileReader>();
                builder.RegisterInstance(new CloudSaver()).As <ICloudSaver>();
                var container = builder.Build();

                cloudBuilder = container.Resolve <ICloudBuilder>();
            }
コード例 #5
0
 public void RebuildCloudImage(ICloudBuilder builder, IWordReader reader, Size imageSize)
 {
     BuildCloudImage(builder, reader, imageSize);
 }