refactor(shapes): rename FlangeShape to PipeFlangeShape
This commit is contained in:
@@ -3,7 +3,7 @@ using System.Collections.Generic;
|
|||||||
|
|
||||||
namespace OpenNest.Shapes
|
namespace OpenNest.Shapes
|
||||||
{
|
{
|
||||||
public class FlangeShape : ShapeDefinition
|
public class PipeFlangeShape : ShapeDefinition
|
||||||
{
|
{
|
||||||
public double NominalPipeSize { get; set; }
|
public double NominalPipeSize { get; set; }
|
||||||
public double OD { get; set; }
|
public double OD { get; set; }
|
||||||
@@ -24,10 +24,8 @@ namespace OpenNest.Shapes
|
|||||||
{
|
{
|
||||||
var entities = new List<Entity>();
|
var entities = new List<Entity>();
|
||||||
|
|
||||||
// Outer circle
|
|
||||||
entities.Add(new Circle(0, 0, OD / 2.0));
|
entities.Add(new Circle(0, 0, OD / 2.0));
|
||||||
|
|
||||||
// Bolt holes evenly spaced on the bolt circle
|
|
||||||
var boltCircleRadius = HolePatternDiameter / 2.0;
|
var boltCircleRadius = HolePatternDiameter / 2.0;
|
||||||
var holeRadius = HoleDiameter / 2.0;
|
var holeRadius = HoleDiameter / 2.0;
|
||||||
var angleStep = 2.0 * System.Math.PI / HoleCount;
|
var angleStep = 2.0 * System.Math.PI / HoleCount;
|
||||||
@@ -1,104 +0,0 @@
|
|||||||
using OpenNest.Shapes;
|
|
||||||
|
|
||||||
namespace OpenNest.Tests.Shapes;
|
|
||||||
|
|
||||||
public class FlangeShapeTests
|
|
||||||
{
|
|
||||||
[Fact]
|
|
||||||
public void GetDrawing_BoundingBoxMatchesOD()
|
|
||||||
{
|
|
||||||
var shape = new FlangeShape
|
|
||||||
{
|
|
||||||
OD = 10,
|
|
||||||
HoleDiameter = 1,
|
|
||||||
HolePatternDiameter = 7,
|
|
||||||
HoleCount = 4
|
|
||||||
};
|
|
||||||
var drawing = shape.GetDrawing();
|
|
||||||
|
|
||||||
var bbox = drawing.Program.BoundingBox();
|
|
||||||
Assert.Equal(10, bbox.Width, 0.01);
|
|
||||||
Assert.Equal(10, bbox.Length, 0.01);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void GetDrawing_AreaExcludesBoltHoles()
|
|
||||||
{
|
|
||||||
var shape = new FlangeShape
|
|
||||||
{
|
|
||||||
OD = 10,
|
|
||||||
HoleDiameter = 1,
|
|
||||||
HolePatternDiameter = 7,
|
|
||||||
HoleCount = 4
|
|
||||||
};
|
|
||||||
var drawing = shape.GetDrawing();
|
|
||||||
|
|
||||||
// Area = pi * 5^2 - 4 * pi * 0.5^2 = pi * (25 - 1) = pi * 24
|
|
||||||
var expectedArea = System.Math.PI * 24;
|
|
||||||
Assert.Equal(expectedArea, drawing.Area, 0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void GetDrawing_DefaultName_IsFlange()
|
|
||||||
{
|
|
||||||
var shape = new FlangeShape
|
|
||||||
{
|
|
||||||
OD = 10,
|
|
||||||
HoleDiameter = 1,
|
|
||||||
HolePatternDiameter = 7,
|
|
||||||
HoleCount = 4
|
|
||||||
};
|
|
||||||
var drawing = shape.GetDrawing();
|
|
||||||
|
|
||||||
Assert.Equal("Flange", drawing.Name);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void LoadFromJson_ProducesCorrectDrawing()
|
|
||||||
{
|
|
||||||
var json = """
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"Name": "2in-150#",
|
|
||||||
"NominalPipeSize": 2.0,
|
|
||||||
"OD": 6.0,
|
|
||||||
"HoleDiameter": 0.75,
|
|
||||||
"HolePatternDiameter": 4.75,
|
|
||||||
"HoleCount": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "2in-300#",
|
|
||||||
"NominalPipeSize": 2.0,
|
|
||||||
"OD": 6.5,
|
|
||||||
"HoleDiameter": 0.75,
|
|
||||||
"HolePatternDiameter": 5.0,
|
|
||||||
"HoleCount": 8
|
|
||||||
}
|
|
||||||
]
|
|
||||||
""";
|
|
||||||
|
|
||||||
var tempFile = Path.GetTempFileName();
|
|
||||||
try
|
|
||||||
{
|
|
||||||
File.WriteAllText(tempFile, json);
|
|
||||||
|
|
||||||
var flanges = ShapeDefinition.LoadFromJson<FlangeShape>(tempFile);
|
|
||||||
|
|
||||||
Assert.Equal(2, flanges.Count);
|
|
||||||
|
|
||||||
var first = flanges[0];
|
|
||||||
Assert.Equal("2in-150#", first.Name);
|
|
||||||
var drawing = first.GetDrawing();
|
|
||||||
var bbox = drawing.Program.BoundingBox();
|
|
||||||
Assert.Equal(6, bbox.Width, 0.01);
|
|
||||||
|
|
||||||
var second = flanges[1];
|
|
||||||
Assert.Equal("2in-300#", second.Name);
|
|
||||||
Assert.Equal(8, second.HoleCount);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
File.Delete(tempFile);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
using OpenNest.Shapes;
|
||||||
|
|
||||||
|
namespace OpenNest.Tests.Shapes;
|
||||||
|
|
||||||
|
public class PipeFlangeShapeTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void GetDrawing_BoundingBoxMatchesOD()
|
||||||
|
{
|
||||||
|
var shape = new PipeFlangeShape
|
||||||
|
{
|
||||||
|
OD = 10,
|
||||||
|
HoleDiameter = 1,
|
||||||
|
HolePatternDiameter = 7,
|
||||||
|
HoleCount = 4
|
||||||
|
};
|
||||||
|
var drawing = shape.GetDrawing();
|
||||||
|
|
||||||
|
var bbox = drawing.Program.BoundingBox();
|
||||||
|
Assert.Equal(10, bbox.Width, 0.01);
|
||||||
|
Assert.Equal(10, bbox.Length, 0.01);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void GetDrawing_AreaExcludesBoltHoles()
|
||||||
|
{
|
||||||
|
var shape = new PipeFlangeShape
|
||||||
|
{
|
||||||
|
OD = 10,
|
||||||
|
HoleDiameter = 1,
|
||||||
|
HolePatternDiameter = 7,
|
||||||
|
HoleCount = 4
|
||||||
|
};
|
||||||
|
var drawing = shape.GetDrawing();
|
||||||
|
|
||||||
|
var expectedArea = System.Math.PI * 24;
|
||||||
|
Assert.Equal(expectedArea, drawing.Area, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void GetDrawing_DefaultName_IsPipeFlange()
|
||||||
|
{
|
||||||
|
var shape = new PipeFlangeShape
|
||||||
|
{
|
||||||
|
OD = 10,
|
||||||
|
HoleDiameter = 1,
|
||||||
|
HolePatternDiameter = 7,
|
||||||
|
HoleCount = 4
|
||||||
|
};
|
||||||
|
var drawing = shape.GetDrawing();
|
||||||
|
|
||||||
|
Assert.Equal("PipeFlange", drawing.Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user