示例#1
0
        private static void GenerateImage(ImageOutputConfiguration config, Dictionary <string, int> words, string baseName, int seed)
        {
            if (!config.IsEnabled)
            {
                return;
            }

            Console.Write("Generating cloud image...");
            var width      = config.Width;
            var height     = config.Height;
            var rand       = new Random(seed);
            var fontFamily = new FontFamily(config.Font);

            var collisionMap = new CollisionMap(width, height);
            var measurer     = new StringMeasurer();

            var minimumFontSize = config.MinimumFontSize;
            var compactness     = config.Compactness;
            var placer          = new WordPlacer(measurer, collisionMap, width, height, rand, fontFamily, minimumFontSize, compactness);
            var imageGenerator  = new ImageGenerator(placer, width, height, fontFamily);

            var image = imageGenerator.Generate(words);

            image.Save(baseName);

            Console.WriteLine("[Done]");
        }
        public void ShouldHaveSpecifiedWidth()
        {
            // Arrange
            const int expected = 123;
            var       section  = Substitute.For <IConfigurationSection>();

            section[ConfigurationKeys.ImageOutput.Width].Returns(expected.ToString());
            var sut = new ImageOutputConfiguration(section);

            // Act
            var actual = sut.Width;

            // Assert
            Assert.Equal(expected, actual);
        }
        public void ShouldHaveSpecifiedFont()
        {
            // Arrange
            const string expected = "Arial";
            var          section  = Substitute.For <IConfigurationSection>();

            section[ConfigurationKeys.ImageOutput.Font].Returns(expected);
            var sut = new ImageOutputConfiguration(section);

            // Act
            var actual = sut.Font;

            // Assert
            Assert.Equal(expected, actual);
        }
        public void ShouldHaveCorrectMinimumFontSize()
        {
            // Arrange
            var section = Substitute.For <IConfigurationSection>();

            section[ConfigurationKeys.ImageOutput.MinimumFontSize].Returns("12");

            var sut = new ImageOutputConfiguration(section);

            // Act
            var actual = sut.MinimumFontSize;

            // Assert
            Assert.Equal(12, actual);
        }
        public void ShouldHaveCorrectCompactness()
        {
            // Arrange
            var section = Substitute.For <IConfigurationSection>();

            section[ConfigurationKeys.ImageOutput.Compactness].Returns("123");

            var sut = new ImageOutputConfiguration(section);

            // Act
            var actual = sut.Compactness;

            // Assert
            Assert.Equal(123, actual);
        }
        public void ShouldBeDisabledWhenSpecified()
        {
            // Arrange
            var section = Substitute.For <IConfigurationSection>();

            section[ConfigurationKeys.ImageOutput.Enabled].Returns("false");

            var sut = new ImageOutputConfiguration(section);

            // Act
            var actual = sut.IsEnabled;

            // Assert
            Assert.False(actual);
        }