示例#1
0
        public void TearDown()
        {
            var context = TestContext.CurrentContext;

            if (context.Result.FailCount == 0)
            {
                return;
            }

            var visualizer = new CloudVisualizer.CloudVisualizer
            {
                Settings = DrawSettings.RectanglesWithNumeration
            };

            var testName = string.Join("_",
                                       context.Test.FullName.Split(' '), StringSplitOptions.RemoveEmptyEntries);

            var path    = Path.Combine(Directory.GetCurrentDirectory(), $"{context.Test.MethodName}_{testName}.png");
            var items   = currentLayout.Select(r => new CloudItem(null, r));
            var picture = visualizer.CreatePictureWithItems(items.ToArray());

            picture.Save(path);

            TestContext.WriteLine($"Tag cloud visualization saved to file {path}");
        }
示例#2
0
        public void ThrowArgumentException(bool isArrayInitialized)
        {
            var    visualizer = new CloudVisualizer.CloudVisualizer();
            Action creation   = ()
                                => visualizer.CreatePictureWithItems(
                isArrayInitialized
                        ? new CloudItem[0]
                        : null);

            creation.Should().Throw <ArgumentException>();
        }
示例#3
0
文件: Program.cs 项目: Rozentor/tdd
        static void Main(string[] args)
        {
            if (!IsInputCorrect(args))
            {
                return;
            }

            var pathToWords   = args[0];
            var pathToPicture = args[1];

            var tagGroups = new TagGroups();

            if (args.Length > 2)
            {
                tagGroups = ReadTagGroups(args[2]);
            }
            else
            {
                tagGroups.AddSizeGroup("Big", new FrequencyGroup(0.9, 1), new Size(80, 150));
                tagGroups.AddSizeGroup("Average", new FrequencyGroup(0.6, 0.9), new Size(60, 100));
                tagGroups.AddSizeGroup("Small", new FrequencyGroup(0, 0.6), new Size(30, 50));
            }


            var settings = DrawSettings.WordsInRectangles;

            if (args.Length > 3)
            {
                settings = (DrawSettings)(int.Parse(args[3]) % 4);
            }

            var spiral     = new Spiral();
            var cloud      = new CircularCloudLayouter(spiral);
            var visualizer = new CloudVisualizer.CloudVisualizer
            {
                Settings = settings
            };

            var cloudItems = new TagReader(tagGroups)
                             .GetTags(pathToWords)
                             .Select(tag => new CloudItem(tag.Word, cloud.PutNextRectangle(tag.Size)))
                             .ToArray();

            var picture = visualizer.CreatePictureWithItems(cloudItems);

            picture.Save(Path.Combine(Directory.GetCurrentDirectory(), $"{pathToPicture}.png"));
        }
示例#4
0
        public void CreatePictureWithRectangles(int amountOfRectangles)
        {
            var visualizer = new CloudVisualizer.CloudVisualizer {
                Settings = DrawSettings.OnlyRectangles
            };
            var items = new CloudItem[amountOfRectangles];

            for (var i = 0; i < amountOfRectangles; i++)
            {
                items[i] = new CloudItem(null, new Rectangle(0, 0, 10, 10));
            }

            var picture = visualizer.CreatePictureWithItems(items);

            IsPictureContainsAllLocationPoints(items, picture)
            .Should().BeTrue();
        }