public void Test_LettersDontRenderAsRectangles_SerifFont() { // this test ensures letters don't render as rectangles // https://github.com/ScottPlot/ScottPlot/issues/1079 System.Drawing.Bitmap bmp = new(200, 100); using var gfx = Graphics.FromImage(bmp); gfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel; gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed; string[] fontNames = { InstalledFont.Serif(), InstalledFont.Sans(), InstalledFont.Monospace() }; foreach (string fontName in fontNames) { gfx.Clear(Color.Navy); System.Drawing.Font fnt = new(fontName, 18); gfx.DrawString("tttt", fnt, Brushes.Yellow, 10, 10); string hash1 = ScottPlot.Tools.BitmapHash(bmp); gfx.DrawString("eeee", fnt, Brushes.Yellow, 10, 10); string hash2 = ScottPlot.Tools.BitmapHash(bmp); Assert.AreNotEqual(hash1, hash2); } }
public void Test_DefaultFont_MatchesOsExpectations() { string defaultFont = InstalledFont.Default(); Console.WriteLine($">>> Default font: {defaultFont}"); string defaultFontSans = InstalledFont.Sans(); Console.WriteLine($">>> Default sans font: {defaultFontSans}"); string defaultFontSerif = InstalledFont.Serif(); Console.WriteLine($">>> Default serif font: {defaultFontSerif}"); string defaultFontMonospace = InstalledFont.Monospace(); Console.WriteLine($">>> Default monospace font: {defaultFontMonospace}"); Assert.That(defaultFont == defaultFontSans); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Assert.That(defaultFontSans == "Segoe UI"); Assert.That(defaultFontSerif == "Times New Roman"); Assert.That(defaultFontMonospace == "Consolas"); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Assert.That(defaultFontSans == "DejaVu Sans"); Assert.That(defaultFontSerif == "DejaVu Serif"); Assert.That(defaultFontMonospace == "DejaVu Sans Mono"); } else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { Assert.That(defaultFontSans == "Helvetica"); Assert.That(defaultFontSerif.StartsWith("Times")); Assert.That(defaultFontMonospace == "Courier"); } }