Files
OpenNest/OpenNest.WinForms.Tests/LayoutPartColorTests.cs
T
aj 1826e6d5b5 feat(ui): add Workshop palette with distinct drawing colors
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.
2026-10-08 10:24:11 -04:00

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.");
}