Repo-wide sweep with the pinned CSharpier 1.3.0 tool. Whitespace and line-wrapping only; OpenNest.Engine.Tests (109) and OpenNest.IO.Tests pass after reformat, full solution builds 0 errors. Added .csharpierignore so csproj/config XML keeps its existing layout (CSharpier's XML wrapping churns attributes with zero benefit). Formatting is now enforceable: dotnet csharpier check . passes.
56 lines
1.5 KiB
C#
56 lines
1.5 KiB
C#
using Xunit;
|
|
|
|
namespace OpenNest.Engine.Tests.Jobs;
|
|
|
|
public class NestingEngineRegistryTests
|
|
{
|
|
[Fact]
|
|
public void BuiltInStrategiesAreRegistered()
|
|
{
|
|
var names = NestingEngineRegistry.AvailableEngines.Select(e => e.Name).ToList();
|
|
|
|
Assert.Contains("Default", names);
|
|
Assert.Contains("Strip", names);
|
|
Assert.Contains("Vertical Remnant", names);
|
|
Assert.Contains("Horizontal Remnant", names);
|
|
}
|
|
|
|
[Fact]
|
|
public void EachBuiltInFactoryProducesAWorkingEngine()
|
|
{
|
|
foreach (var info in NestingEngineRegistry.AvailableEngines)
|
|
{
|
|
var engine = info.Factory();
|
|
var result = engine.Solve(FiniteStockJobTests.Job(1));
|
|
|
|
Assert.Equal(NestJobStatus.Complete, result.Status);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void DuplicateNameIsSkipped()
|
|
{
|
|
var before = NestingEngineRegistry.AvailableEngines.Count;
|
|
|
|
NestingEngineRegistry.Register(
|
|
"Default",
|
|
"duplicate",
|
|
() => new FixedStrategyNestingEngine("Default")
|
|
);
|
|
|
|
Assert.Equal(before, NestingEngineRegistry.AvailableEngines.Count);
|
|
}
|
|
|
|
[Fact]
|
|
public void LoadPluginsAgainstMissingDirectoryIsANoOp()
|
|
{
|
|
var before = NestingEngineRegistry.AvailableEngines.Count;
|
|
|
|
NestingEngineRegistry.LoadPlugins(
|
|
Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString())
|
|
);
|
|
|
|
Assert.Equal(before, NestingEngineRegistry.AvailableEngines.Count);
|
|
}
|
|
}
|