mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-10 07:34:14 -04:00
49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
using OpenNest.Converters;
|
|
using OpenNest.Geometry;
|
|
using OpenNest.IO;
|
|
|
|
namespace OpenNest.WinForms.Tests.Forms;
|
|
|
|
/// <summary>Private, synthetic files only; removed after each acceptance case.</summary>
|
|
internal sealed class WindowsAcceptanceFiles : IDisposable
|
|
{
|
|
public string Folder { get; } = Path.Combine(Path.GetTempPath(), "opennest-acceptance-" + Guid.NewGuid().ToString("N"));
|
|
|
|
public WindowsAcceptanceFiles()
|
|
{
|
|
Directory.CreateDirectory(Folder);
|
|
}
|
|
|
|
public string WriteSquare(string name)
|
|
{
|
|
var shape = new Shape();
|
|
shape.Entities.Add(new Line(new Vector(0, 0), new Vector(2, 0)));
|
|
shape.Entities.Add(new Line(new Vector(2, 0), new Vector(2, 2)));
|
|
shape.Entities.Add(new Line(new Vector(2, 2), new Vector(0, 2)));
|
|
shape.Entities.Add(new Line(new Vector(0, 2), new Vector(0, 0)));
|
|
var path = Path.Combine(Folder, name + ".dxf");
|
|
Dxf.ExportProgram(ConvertGeometry.ToProgram(shape), path);
|
|
Assert.True(File.Exists(path));
|
|
return path;
|
|
}
|
|
|
|
public Nest RoundTrip(Nest nest)
|
|
{
|
|
var path = Path.Combine(Folder, "acceptance.nest");
|
|
Assert.True(new NestWriter(nest).Write(path));
|
|
Assert.True(File.Exists(path));
|
|
Assert.True(new FileInfo(path).Length > 0);
|
|
using var stream = File.OpenRead(path);
|
|
var reader = new NestReader(stream);
|
|
var restored = reader.Read();
|
|
Assert.Empty(reader.Warnings);
|
|
Assert.NotSame(nest, restored);
|
|
return restored;
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
Directory.Delete(Folder, recursive: true);
|
|
}
|
|
}
|