public void Test_Text_Frame() { var plt = new ScottPlot.Plot(400, 300); // start with default settings var txt = new ScottPlot.Plottable.Text() { Label = "hello" }; plt.Add(txt); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable txt.BackgroundFill = true; txt.BackgroundColor = System.Drawing.Color.Gray; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_ScaleBar_FontColor() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // create plot with generic scalebar settings plt.PlotSignal(DataGen.Sin(51)); plt.PlotSignal(DataGen.Cos(51)); var sb = new PlottableScaleBar() { Width = 5, Height = .25, VerticalLabel = "5 V", HorizontalLabel = "250 ms" }; plt.Add(sb); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // customize the scalebar sb.FontColor = System.Drawing.Color.Blue; var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsMoreBlueThan(before)); }
public void Test_Text_FrameColor() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings var txt = new PlottableText() { text = "hello", frame = true, frameColor = System.Drawing.Color.Gray }; plt.Add(txt); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable txt.frameColor = System.Drawing.Color.Blue; var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(before.IsGray()); Assert.That(after.IsNotGray()); Assert.That(after.IsMoreBlueThan(before)); }
public void Test_Bar_ChangingValues() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings double[] ys = new double[] { 1, 3, 2, 4 }; var bar = new PlottableBar(null, ys, null, null) { }; plt.Add(bar); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable bar.ys[0] += 1; var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_ScaleBar_LineWidth() { var plt = new ScottPlot.Plot(); // create plot with generic scalebar settings plt.PlotSignal(DataGen.Sin(51)); plt.PlotSignal(DataGen.Cos(51)); var sb = new ScottPlot.Plottable.ScaleBar() { Width = 5, Height = .25, VerticalLabel = "5 V", HorizontalLabel = "250 ms" }; plt.Add(sb); var bmp1 = TestTools.GetLowQualityBitmap(plt); // customize the scalebar sb.LineWidth += 1; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Text_FontBold() { // bold fonts are supported on all operating systems so only test on windows if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows) == false) { return; } var plt = new ScottPlot.Plot(400, 300); // start with default settings var txt = new ScottPlot.Plottable.Text() { text = "hello", FontSize = 12 }; plt.Add(txt); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable txt.FontBold = true; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Scatter_Color() { var plt = new ScottPlot.Plot(); // start with default settings double[] xs = { 1, 2, 3, 4 }; double[] ys = { 1, 4, 9, 16 }; var splt = new ScatterPlot(xs, ys) { }; plt.Add(splt); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable splt.Color = System.Drawing.Color.Gray; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsLighterThan(before)); }
public void Test_AxisSpan_Color() { var plt = new ScottPlot.Plot(); // start with default settings var axSpan = new HSpan() { X1 = 1.23, X2 = 2.34, Color = System.Drawing.Color.Gray }; plt.Add(axSpan); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable axSpan.Color = System.Drawing.Color.Black; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void AxisVSpan_ExtremeZoomIn_FullScreenIsSpanColor() { var plt = new ScottPlot.Plot(); var axSpan = new VSpan() { Y1 = 1, Y2 = 10, Color = System.Drawing.Color.Green }; plt.Add(axSpan); // Initial zoom to fill full plot with span color plt.AxisZoom(1, 10); var smallZoomBmp = TestTools.GetLowQualityBitmap(plt); var smallZoom = new MeanPixel(smallZoomBmp); // Extreme zoom to prove that full plot filled with span Color plt.AxisZoom(1, 10_000_000); var extremeZoomBmp = TestTools.GetLowQualityBitmap(plt); var extremeZoom = new MeanPixel(extremeZoomBmp); // Compare mean pixel with delta, because different ticks // Y Ticks has more affect on mean pixel Assert.AreEqual(smallZoom.RGB, extremeZoom.RGB, 20); }
public void Test_AxisLine_LineWidth() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings var axLine = new PlottableHLine() { position = 1.23 }; plt.Add(axLine); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable axLine.lineWidth += 1; var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_AxisLine_LineWidth() { var plt = new ScottPlot.Plot(); // start with default settings var axLine = new HLine() { position = 1.23 }; plt.Add(axLine); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable axLine.lineWidth += 1; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Finance_ColorDown() { var plt = new ScottPlot.Plot(); // start with default settings var op = new FinancePlot() { OHLCs = new OHLC[] { // open, high, low, close, time, timeSpan new OHLC(273, 275, 264, 265, 1, 1), new OHLC(267, 276, 265, 274, 2.5, 2), new OHLC(277, 280, 275, 278, 4, 1), } }; plt.Add(op); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable op.ColorDown = System.Drawing.Color.Blue; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsMoreBlueThan(before)); }
public void Test_function_LineStyle() { var plt = new ScottPlot.Plot(); // start with default settings double?func(double x) => Math.Sqrt(x); var funcPlot = new FunctionPlot(func) { }; plt.SetAxisLimits(-1, 1, -.5, 1.5); plt.Add(funcPlot); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable funcPlot.lineStyle = LineStyle.Dash; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsLighterThan(before)); }
public void Test_Text_PixelOffset() { var plt = new ScottPlot.Plot(400, 300); plt.AddPoint(30, .5, System.Drawing.Color.Black, 10); var txt = plt.AddText("TEST", 30, .5); txt.FontSize = 20; txt.BackgroundColor = System.Drawing.Color.FromArgb(50, System.Drawing.Color.Black); txt.BackgroundFill = true; var bmp1 = TestTools.GetLowQualityBitmap(plt); txt.PixelOffsetX = 10; txt.PixelOffsetY = -10; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Assert.That(after.IsDifferentThan(before)); }
public void Test_Text_FontColor() { var plt = new ScottPlot.Plot(400, 300); // start with default settings var txt = new ScottPlot.Plottable.Text() { text = "hello", FontColor = System.Drawing.Color.Gray }; plt.Add(txt); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable txt.FontColor = System.Drawing.Color.Blue; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(before.IsGray()); Assert.That(after.IsNotGray()); Assert.That(after.IsMoreBlueThan(before)); }
public void Test_Axis_FramelessShowsGridLines() { var plt = new ScottPlot.Plot(400, 300); plt.AddSignal(ScottPlot.DataGen.Sin(51)); plt.AddSignal(ScottPlot.DataGen.Cos(51)); plt.Frameless(); // start with default settings var bmp1 = TestTools.GetLowQualityBitmap(plt); //TestTools.SaveFig(bmp1, "1"); // make the grid darker plt.Grid(color: System.Drawing.Color.Black); var bmp2 = TestTools.GetLowQualityBitmap(plt); //TestTools.SaveFig(bmp2, "2"); // measure what changed var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Text_FontSize() { var plt = new ScottPlot.Plot(400, 300); // start with default settings var txt = new ScottPlot.Plottable.Text() { text = "hello", FontSize = 12 }; plt.Add(txt); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable txt.FontSize = 36; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_AxisSpan_Alpha() { var plt = new ScottPlot.Plot(); // start with default settings var axSpan = new HSpan() { position1 = 1.23, position2 = 2.34 }; plt.Add(axSpan); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable axSpan.alpha /= 2; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsLighterThan(before)); }
public void Test_Scatter_MarkerShape() { var plt = new ScottPlot.Plot(); // start with default settings double[] xs = { 1, 2, 3, 4 }; double[] ys = { 1, 4, 9, 16 }; var splt = new ScatterPlot(xs, ys) { MarkerSize = 20, MarkerShape = MarkerShape.filledCircle }; plt.Add(splt); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable splt.MarkerShape = MarkerShape.openCircle; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsLighterThan(before)); }
public void Test_AntiAliasing_Works() { var plt = new ScottPlot.Plot(400, 300); plt.AddSignal(ScottPlot.DataGen.Sin(51), label: "sin"); plt.AddSignal(ScottPlot.DataGen.Cos(51), label: "cos"); plt.YLabel("Vertical Axis"); plt.XLabel("Horizontal Axis"); plt.Title("Plot Title"); plt.Legend(); // start with default settings var bmp1 = plt.Render(lowQuality: true); // change the plottable var bmp2 = plt.Render(lowQuality: false); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Assert.That(after.IsDifferentThan(before)); }
public void Test_Scatter_LineWidth() { var plt = new ScottPlot.Plot(); // start with default settings double[] xs = { 1, 2, 3, 4 }; double[] ys = { 1, 4, 9, 16 }; double[] xErr = { .15, .15, .5, .5 }; double[] yErr = { .5, .5, 1, 1 }; var splt = new ScatterPlot(xs, ys, xErr, yErr) { }; plt.Add(splt); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable splt.LineWidth += 1; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Scatter_Highlight() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings double[] xs = { 1, 2, 3, 4 }; double[] ys = { 1, 4, 9, 16 }; var splt = new PlottableScatterHighlight(xs, ys) { }; plt.Add(splt); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable splt.HighlightPointNearest(2.1, 4.1); var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Arrow_PixelOffset() { var plt = new ScottPlot.Plot(400, 300); plt.AddPoint(1, 2, size: 20); plt.AddPoint(3, 4, size: 20); // initial plot var arrow = plt.AddArrow(1, 2, 3, 4); plt.Margins(.5, .5); var bmp1 = TestTools.GetLowQualityBitmap(plt); // adjust something arrow.PixelOffsetX = 20; arrow.PixelOffsetY = -20; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Assert.That(after.IsDifferentThan(before)); }
public void Test_Scatter_ChangeErrorData() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings double[] xs = { 1, 2, 3, 4 }; double[] ys = { 1, 4, 9, 16 }; double[] xErr = { .15, .15, .5, .5 }; double[] yErr = { .5, .5, 1, 1 }; var splt = new PlottableScatter(xs, ys, xErr, yErr) { }; plt.Add(splt); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable splt.errorX[0] += .1; splt.errorY[0] += .1; var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_ScaleBar_Default() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start plot without scalebar plt.PlotSignal(DataGen.Sin(51)); plt.PlotSignal(DataGen.Cos(51)); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // add a scalebar var sb = new PlottableScaleBar() { Width = 5, Height = .25, VerticalLabel = "5 V", HorizontalLabel = "250 ms" }; plt.Add(sb); var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Bar_NegativeColor() { var plt = new ScottPlot.Plot(); // start with default settings double[] ys = new double[] { 1, -3, 2, -4 }; var bar = new BarPlot(null, ys, null, null) { FillColor = System.Drawing.Color.Gray }; plt.Add(bar); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable bar.FillColorNegative = System.Drawing.Color.Black; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Annotation_ShadowColor() { var plt = new ScottPlot.Plot(400, 300); // start with default settings var pa = new ScottPlot.Plottable.Annotation() { Label = "Hello", X = 10, Y = 10 }; plt.Add(pa); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable pa.ShadowColor = System.Drawing.Color.Black; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Bar_BarWidth() { var plt = new ScottPlot.Plot(); // start with default settings double[] ys = new double[] { 1, 3, 2, 4 }; var bar = new BarPlot(null, ys, null, null) { }; plt.Add(bar); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable bar.BarWidth += .1; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Text_FontSize() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings var txt = new PlottableText() { text = "hello", FontSize = 12 }; plt.Add(txt); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable txt.FontSize = 36; var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }
public void Test_Annotation_ChangingText() { var plt = new ScottPlot.Plot(400, 300); // start with default settings var pa = new ScottPlot.Plottable.Annotation() { label = "Hello", xPixel = 10, yPixel = 10, FontSize = 36 }; plt.Add(pa); var bmp1 = TestTools.GetLowQualityBitmap(plt); // change the plottable pa.label += "World"; var bmp2 = TestTools.GetLowQualityBitmap(plt); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); var before = new MeanPixel(bmp1); var after = new MeanPixel(bmp2); Console.WriteLine($"Before: {before}"); Console.WriteLine($"After: {after}"); Assert.That(after.IsDarkerThan(before)); }