public void TearDown() { var context = TestContext.CurrentContext; if (context.Result.Outcome.Status != TestStatus.Failed) { return; } var dir = Path.Combine(context.TestDirectory, "Failed layouts"); Directory.CreateDirectory(dir); var file = Path.ChangeExtension(context.Test.Name, "png"); var path = Path.Combine(dir, file); var visualizer = new TagsCloudVisualizer(); var layouter = GetTestProperty <CircularCloudLayouter>(LayouterKey); var rectangles = layouter.Rectangles.ToArray(); using (var bitmap = visualizer.Visualize(Painter.Colorize(rectangles))) { bitmap.Save(path); } TestContext.WriteLine($"Tag cloud visualization saved to file {path}"); }
public Image Create(TagsCloudSettings settings) { var words = processors.Aggregate(wordReader.ReadAllWords(settings.WordsPath), (current, processor) => processor.Process(current)).ToArray(); var tags = WordCounter.Count(words) .Select(word => { var(font, size) = wordMeasurer.Measure(word); return(new Tag(word.Value, font, layouter.PutNextRectangle(size))); }) .ToArray(); return(visualizer.Visualize(painter.Colorize(tags))); }