This commit is contained in:
2026-05-06 10:22:34 +02:00
parent fc73ff47ff
commit 26a7b6b6da
945 changed files with 3606 additions and 4887 deletions

View File

@@ -0,0 +1,58 @@
using TraceCad.Core.Geometry;
using TraceCad.Core.Model;
using TraceCad.Core.Validation;
using Xunit;
namespace TraceCad.Tests;
public sealed class ValidationTests
{
[Fact]
public void ValidatorReportsZeroLengthLineAsError()
{
var document = SketchDocument.CreateDefault();
document.AddEntity(new LineEntity(
Guid.NewGuid(),
Layer.Cut.Name,
new Point2(10, 10),
new Point2(10, 10)));
var issues = DrawingValidator.Validate(document);
Assert.Contains(issues, issue =>
issue.Severity == DrawingIssueSeverity.Error &&
issue.Code == "line.zero_length");
}
[Fact]
public void ValidatorReportsTinyLineAsWarning()
{
var document = SketchDocument.CreateDefault();
document.AddEntity(new LineEntity(
Guid.NewGuid(),
Layer.Cut.Name,
new Point2(0, 0),
new Point2(0.01, 0)));
var issues = DrawingValidator.Validate(document);
Assert.Contains(issues, issue =>
issue.Severity == DrawingIssueSeverity.Warning &&
issue.Code == "line.tiny");
}
[Fact]
public void ValidatorIgnoresOpenEndpointsOnNonExportableLayers()
{
var document = SketchDocument.CreateDefault();
document.AddEntity(new LineEntity(
Guid.NewGuid(),
Layer.Construction.Name,
new Point2(0, 0),
new Point2(100, 0)));
var issues = DrawingValidator.Validate(document);
Assert.DoesNotContain(issues, issue => issue.Code == "contour.open_endpoint");
}
}