mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-10 16:44:13 -04:00
Keep cut outlines dark and etch strokes bright green. Assign drawing fills by a golden-angle hue walk with varied saturation/lightness tiers, preserving legacy schemes and rendering-only behavior. Include palette, visibility, persistence, and contrast regressions.
42 lines
1.6 KiB
C#
42 lines
1.6 KiB
C#
using System.Drawing;
|
|
using System.Drawing.Drawing2D;
|
|
using OpenNest.Controls;
|
|
|
|
namespace OpenNest.WinForms.Tests;
|
|
|
|
public class LayoutPartColorTests
|
|
{
|
|
[Theory]
|
|
[InlineData(false)]
|
|
[InlineData(true)]
|
|
public void BestFitColorOverrideSurvivesPaintAndGeometryUpdate(bool updateGeometry)
|
|
=> StaTestThread.Run(() =>
|
|
{
|
|
var program = new CNC.Program();
|
|
program.MoveTo(0, 0);
|
|
program.LineTo(100, 0);
|
|
program.LineTo(100, 100);
|
|
program.LineTo(0, 100);
|
|
program.LineTo(0, 0);
|
|
var drawing = new Drawing("Best fit color", program) { Color = Color.Coral };
|
|
using var cell = new BestFitCell(ColorSchemeRegistry.Get("Classic")) { PartColor = Color.Blue };
|
|
cell.Matrix = new Matrix();
|
|
cell.Plate.Parts.Add(new Part(drawing));
|
|
var layout = Assert.Single(cell.LayoutParts);
|
|
Assert.Equal(Color.Blue, layout.Color);
|
|
if (updateGeometry)
|
|
layout.Update(cell);
|
|
using var image = new Bitmap(120, 120);
|
|
using var g = Graphics.FromImage(image);
|
|
layout.Draw(g);
|
|
Assert.Equal(Color.Blue.ToArgb(), image.GetPixel(20, 20).ToArgb());
|
|
Assert.Equal(Color.Blue, layout.Color);
|
|
Assert.Equal(Color.Coral, drawing.Color);
|
|
|
|
// The existing explicit refresh returns color ownership to the drawing.
|
|
layout.Update();
|
|
layout.Draw(g);
|
|
Assert.Equal(Color.Coral.ToArgb(), image.GetPixel(20, 20).ToArgb());
|
|
}, TimeSpan.FromMinutes(1), "Best fit color test timed out.");
|
|
}
|