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}"); }
public void ThrowArgumentException(bool isArrayInitialized) { var visualizer = new CloudVisualizer.CloudVisualizer(); Action creation = () => visualizer.CreatePictureWithItems( isArrayInitialized ? new CloudItem[0] : null); creation.Should().Throw <ArgumentException>(); }
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")); }
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(); }