using System.Collections.Generic; using OpenNest.Geometry; using OpenNest.IO; using Xunit; namespace OpenNest.Tests.IO { public class TitleBlockDetectorTests { private static Line MakeLine(double x1, double y1, double x2, double y2) => new Line(x1, y1, x2, y2); [Fact] public void DetectByLayerName_FlagsTitleLayer() { var line = MakeLine(0, 0, 10, 0); line.Layer = new Layer("TITLE"); var entities = new List { line }; var result = TitleBlockDetector.Detect(entities, null); Assert.Contains(line.Id, result); } [Fact] public void DetectByLayerName_CaseInsensitive() { var line = MakeLine(0, 0, 10, 0); line.Layer = new Layer("border"); var entities = new List { line }; var result = TitleBlockDetector.Detect(entities, null); Assert.Contains(line.Id, result); } [Fact] public void DetectByLayerName_IgnoresNonMatchingLayers() { var line = MakeLine(0, 0, 10, 0); line.Layer = new Layer("0"); var entities = new List { line }; var result = TitleBlockDetector.Detect(entities, null); Assert.DoesNotContain(line.Id, result); } [Theory] [InlineData("TITLE")] [InlineData("TITLEBLOCK")] [InlineData("TITLE_BLOCK")] [InlineData("BORDER")] [InlineData("FRAME")] [InlineData("TB")] [InlineData("INFO")] [InlineData("SHEET")] [InlineData("ANNOTATION")] public void DetectByLayerName_AllKnownNames(string layerName) { var line = MakeLine(0, 0, 10, 0); line.Layer = new Layer(layerName); var entities = new List { line }; var result = TitleBlockDetector.Detect(entities, null); Assert.Contains(line.Id, result); } } }