Files
OpenNest/OpenNest.WinForms.Tests/Bending/CadBendNoteTests.cs
T

68 lines
2.0 KiB
C#

using ACadSharp;
using ACadSharp.Entities;
using ACadSharp.Tables;
using CSMath;
using OpenNest.Bending;
using OpenNest.Controls;
using OpenNest.IO.Bending;
namespace OpenNest.Tests.Bending;
public class CadBendNoteTests
{
[Fact]
public void DetectedNote_HidesOnlyItsSourceText_AndReturnsWhenBendRemoved()
{
var doc = new CadDocument();
doc.Entities.Add(
new Line(new XYZ(0, 0, 0), new XYZ(10, 0, 0))
{
Layer = new Layer("BEND"),
LineType = new LineType("CENTER"),
}
);
var note = new MText
{
Value = "UP 90° R0.125",
InsertPoint = new XYZ(5, 0.1, 0),
Height = 0.2,
};
doc.Entities.Add(note);
var unrelated = new MText
{
Value = note.Value,
InsertPoint = new XYZ(50, 50, 0),
Height = 0.2,
};
doc.Entities.Add(unrelated);
var bends = new SolidWorksBendDetector().DetectBends(doc);
var bend = Assert.Single(bends);
Assert.Equal(note.Handle, bend.SourceNoteHandle);
var text = new CadText { SourceHandle = note.Handle, Value = note.Value };
Assert.True(text.IsReplacedByBendNote(bends));
Assert.False(
new CadText
{
SourceHandle = unrelated.Handle,
Value = note.Value,
}.IsReplacedByBendNote(bends)
);
bends.Clear();
Assert.False(text.IsReplacedByBendNote(bends));
}
[Fact]
public void MissingSourceOrReplacement_DoesNotHideText()
{
var text = new CadText { SourceHandle = 42, Value = "UP 90° R0.125" };
Assert.False(text.IsReplacedByBendNote(null));
Assert.False(text.IsReplacedByBendNote(new[] { new Bend { NoteText = text.Value } }));
Assert.False(text.IsReplacedByBendNote(new[] { new Bend { SourceNoteHandle = 42 } }));
Assert.False(
new CadText().IsReplacedByBendNote(new[] { new Bend { NoteText = text.Value } })
);
}
}