74 lines
2.3 KiB
C#
74 lines
2.3 KiB
C#
namespace FurnitureExporter.Tests
|
|
{
|
|
public class PanelFaceSemanticResolverTests
|
|
{
|
|
[Fact]
|
|
public void ResolveSurfaceFaces_ForThroughHole_ReturnsOppositeFaces()
|
|
{
|
|
var faces = PanelFaceSemanticResolver.ResolveSurfaceFaces(
|
|
new BoundingBox3D
|
|
{
|
|
Min = new[] { 0.0, 0.0, 0.0 },
|
|
Max = new[] { 18.0, 560.0, 720.0 },
|
|
},
|
|
new[] { 9.0, 280.0, 360.0 },
|
|
new[] { 1.0, 0.0, 0.0 },
|
|
18.0);
|
|
|
|
Assert.Contains("left", faces);
|
|
Assert.Contains("right", faces);
|
|
}
|
|
|
|
[Fact]
|
|
public void ResolveSurfaceFaces_ForBlindHole_ReturnsSingleExteriorFace()
|
|
{
|
|
var faces = PanelFaceSemanticResolver.ResolveSurfaceFaces(
|
|
new BoundingBox3D
|
|
{
|
|
Min = new[] { 0.0, 0.0, 0.0 },
|
|
Max = new[] { 18.0, 560.0, 720.0 },
|
|
},
|
|
new[] { 4.0, 280.0, 360.0 },
|
|
new[] { 1.0, 0.0, 0.0 },
|
|
8.0);
|
|
|
|
Assert.Single(faces);
|
|
Assert.Equal("left", faces[0]);
|
|
}
|
|
|
|
[Fact]
|
|
public void ResolveSurfaceFaces_ForTopBottomThroughHole_ReturnsTopAndBottom()
|
|
{
|
|
var faces = PanelFaceSemanticResolver.ResolveSurfaceFaces(
|
|
new BoundingBox3D
|
|
{
|
|
Min = new[] { 0.0, 0.0, 0.0 },
|
|
Max = new[] { 600.0, 720.0, 18.0 },
|
|
},
|
|
new[] { 300.0, 360.0, 9.0 },
|
|
new[] { 0.0, 0.0, 1.0 },
|
|
18.0);
|
|
|
|
Assert.Contains("top", faces);
|
|
Assert.Contains("bottom", faces);
|
|
}
|
|
|
|
[Fact]
|
|
public void ResolveSurfaceFaces_ForSideBlindHole_PrefersSingleSideFace()
|
|
{
|
|
var faces = PanelFaceSemanticResolver.ResolveSurfaceFaces(
|
|
new BoundingBox3D
|
|
{
|
|
Min = new[] { 0.0, 0.0, 0.0 },
|
|
Max = new[] { 600.0, 18.0, 720.0 },
|
|
},
|
|
new[] { 300.0, 4.0, 360.0 },
|
|
new[] { 0.0, 1.0, 0.0 },
|
|
8.0);
|
|
|
|
Assert.Single(faces);
|
|
Assert.Equal("front", faces[0]);
|
|
}
|
|
}
|
|
}
|