public void Test_ErrorBar_LineWidth() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings double[] xs = new double[] { 1, 3, 2, 4 }; double[] ys = new double[] { 1, 3, 2, 4 }; double[] xErrNeg = new double[] { .2, .2, .2, .2 }; double[] xErrPos = new double[] { .2, .2, .2, .2 }; double[] yErrNeg = new double[] { 1, 1, 1, 1 }; double[] yErrPos = new double[] { 1, 1, 1, 1 }; var err = new PlottableErrorBars(xs, ys, xErrPos, xErrNeg, yErrPos, yErrNeg) { }; plt.Add(err); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable err.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_Annotation_ShadowColor() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings var pa = new PlottableAnnotation() { label = "Hello", xPixel = 10, yPixel = 10 }; plt.Add(pa); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable pa.ShadowColor = System.Drawing.Color.Black; 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_Scatter_LineWidth() { 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.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_Text_Alignment() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings var txt = new PlottableText() { text = "hello" }; plt.Add(txt); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); string hash1 = ScottPlot.Tools.BitmapHash(bmp1); // change the plottable txt.alignment = TextAlignment.middleCenter; var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); string hash2 = ScottPlot.Tools.BitmapHash(bmp2); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); Console.WriteLine($"Before: {hash1}"); Console.WriteLine($"After: {hash2}"); Assert.AreNotEqual(hash1, hash2); }
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_AxisSpan_Alpha() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings var axSpan = new PlottableHSpan() { position1 = 1.23, position2 = 2.34 }; plt.Add(axSpan); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable axSpan.alpha /= 2; 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.IsLighterThan(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_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_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_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_function_LineStyle() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings double?func(double x) => Math.Sqrt(x); var funcPlot = new PlottableFunction(func) { }; plt.Axis(-1, 1, -.5, 1.5); plt.Add(funcPlot); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable funcPlot.lineStyle = LineStyle.Dash; 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.IsLighterThan(before)); }
public void Test_RenderingArtifacts_Demonstrate() { // Due to a bug in System.Drawing the drawing of perfectly straight lines is // prone to rendering artifacts (diagonal lines) when anti-aliasing is off. // https://github.com/swharden/ScottPlot/issues/327 // https://github.com/swharden/ScottPlot/issues/401 var plt = new ScottPlot.Plot(400, 300); plt.Grid(xSpacing: 2, ySpacing: 2, color: Color.Red); plt.Axis(-13, 13, -10, 10); // create conditions to reveal rendering artifact plt.AntiAlias(false, false, false); plt.Grid(enableVertical: false); // save the figure (bmpData + bmpFigure) TestTools.SaveFig(plt); // save the data bitmap too string gfxFilePath = System.IO.Path.GetFullPath("diag.png"); plt.GetSettings(false).bmpData.Save(gfxFilePath, ImageFormat.Png); Console.WriteLine($"SAVED: {gfxFilePath}"); }
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_ScaleBar_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(); 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.FontBold = true; 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_Finance_AutoWidth() { var plt = new ScottPlot.Plot(); plt.AntiAlias(false, false, false); // start with default settings var op = new PlottableOHLC() { Candle = true, ohlcs = new OHLC[] { // open, high, low, close, time, timeSpan new OHLC(273, 275, 264, 265, 1, 1), new OHLC(267, 276, 265, 274, 4, 1), new OHLC(277, 280, 275, 278, 7, 1), new OHLC(267, 276, 265, 274, 10, 1), } }; plt.Add(op); var bmp1 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // change the plottable op.AutoWidth = true; 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_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(); 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.FontBold = true; 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_ChangesPosition() { 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.position += 1; var bmp2 = new System.Drawing.Bitmap(plt.GetBitmap(renderFirst: true)); // measure what changed //TestTools.SaveFig(bmp1, "1"); //TestTools.SaveFig(bmp2, "2"); Assert.AreNotEqual(ScottPlot.Tools.BitmapHash(bmp1), ScottPlot.Tools.BitmapHash(bmp2)); }