コード例 #1
0
ファイル: ImageCreatorTests.cs プロジェクト: dragrayraptor/di
        public void MakeCreator()
        {
            reader = A.Fake <ITextReader>();
            var words = new List <string> {
                "Привет", "Земля", "и", "Земля"
            };

            A.CallTo(() => reader.ReadWords(null))
            .WithAnyArguments()
            .Returns(words);

            wordProcessor = A.Fake <IWordProcessor>();
            var wordsWithCounts = new List <WordWithCount>
            {
                new WordWithCount("земля", 2),
                new WordWithCount("привет", 1)
            };

            A.CallTo(() => wordProcessor.ProcessWords(words))
            .WithAnyArguments()
            .Returns(wordsWithCounts);

            var builder = new ContainerBuilder();

            builder.RegisterInstance(reader).As <ITextReader>();
            builder.RegisterInstance(wordProcessor).As <IWordProcessor>();
            var container = GetContainer(builder);

            imageCreator = container.Resolve <IImageCreator>();
        }
コード例 #2
0
 public void MakeTagCloud()
 {
     textReader.ReadWords()
     .Then(words => wordsAnalyzer.GetTags(words))
     .Then(tags => drawer.DrawTagCloud(tags))
     .Then(bitmap => imageSaver.Save(bitmap))
     .OnFail(Console.WriteLine);
 }
コード例 #3
0
        public void MakeTagCloud()
        {
            var words  = textReader.ReadWords();
            var tags   = wordsAnalyzer.GetTags(words);
            var result = drawer.DrawTagCloud(tags);

            imageSaver.Save(result);
        }
コード例 #4
0
ファイル: ImageCreatorTests.cs プロジェクト: dragrayraptor/di
        public void ImageCreator_CallDependenciesMethodsOnce()
        {
            imageCreator.CreateImage(settings);

            A.CallTo(() => reader.ReadWords(null))
            .WithAnyArguments()
            .MustHaveHappenedOnceExactly();

            A.CallTo(() => wordProcessor.ProcessWords(null))
            .WithAnyArguments()
            .MustHaveHappenedOnceExactly();
        }
コード例 #5
0
ファイル: ImageCreator.cs プロジェクト: dragrayraptor/fp
        public Result <None> CreateImage(IInitialSettings settings)
        {
            var words = reader.ReadWords(settings.InputFilePath);

            return(wordProcessor.ProcessWords(words)
                   .Then(wordsWithCount => wordsWithCount.ToList())
                   .Then(wordsWithCount =>
            {
                words = wordsWithCount.Select(e => e.Word);
                var sizes = converter.ConvertToSizes(wordsWithCount);
                var rectangles = layouter.GetRectangles(sizes);
                return imageSizeCalculator.CalculateImageSize(rectangles)
                .Then(calculatedSize => HandleSize(settings, calculatedSize))
                .Then(imageSize => (rect: GetWordRectangles(words, rectangles, imageSize), imageSize));
            })
                   .Then(x => visualizer.DrawImage(x.rect, x.imageSize))
                   .Then(image => saver.SaveImage(image, settings.OutputFilePath)));
        }
コード例 #6
0
        public void CreateImage(IInitialSettings settings)
        {
            var words          = reader.ReadWords(settings.InputFilePath);
            var wordsWithCount = wordProcessor.ProcessWords(words).ToList();
            var sizes          = converter.ConvertToSizes(wordsWithCount);
            var rectangles     = layouter.GetRectangles(sizes);
            var imageSize      = settings.ImageSize;

            if (imageSize == Size.Empty)
            {
                imageSize = imageSizeCalculator.CalculateImageSize(rectangles);
            }
            rectangles = rectanglesTransformer.TransformRectangles(rectangles, imageSize);
            words      = wordsWithCount.Select(e => e.Word);
            var wordRectangles = words.Zip(rectangles, (w, r) => new WordRectangle(w, r)).ToList();
            var image          = visualizer.DrawImage(wordRectangles, imageSize);

            saver.SaveImage(image, settings.OutputFilePath);
        }
コード例 #7
0
 private Result <HashSet <string> > ReadWords(string path)
 {
     return(textReader.ReadWords(path)
            .Then(r => boringWords = new HashSet <string>(r)));
 }