fix: address review findings — input validation, exception handling, cleanup
Add argument validation to EllipseConverter.Convert for tolerance and semi-axis parameters. Narrow bare catch in Extensions.cs spline method to log via Debug.WriteLine. Remove unused lineCount variable from SolidWorksBendDetectorTests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -67,6 +67,11 @@ namespace OpenNest.Geometry
|
|||||||
public static List<Entity> Convert(Vector center, double semiMajor, double semiMinor,
|
public static List<Entity> Convert(Vector center, double semiMajor, double semiMinor,
|
||||||
double rotation, double startParam, double endParam, double tolerance = 0.001)
|
double rotation, double startParam, double endParam, double tolerance = 0.001)
|
||||||
{
|
{
|
||||||
|
if (tolerance <= 0)
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(tolerance), "Tolerance must be positive.");
|
||||||
|
if (semiMajor <= 0 || semiMinor <= 0)
|
||||||
|
throw new ArgumentOutOfRangeException("Semi-axis lengths must be positive.");
|
||||||
|
|
||||||
if (endParam <= startParam)
|
if (endParam <= startParam)
|
||||||
endParam += Angle.TwoPI;
|
endParam += Angle.TwoPI;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using ACadSharp.Entities;
|
using ACadSharp.Entities;
|
||||||
using CSMath;
|
using CSMath;
|
||||||
using OpenNest.Geometry;
|
using OpenNest.Geometry;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -68,8 +69,9 @@ namespace OpenNest.IO
|
|||||||
{
|
{
|
||||||
curvePoints = spline.PolygonalVertexes(precision > 0 ? precision : 200);
|
curvePoints = spline.PolygonalVertexes(precision > 0 ? precision : 200);
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
System.Diagnostics.Debug.WriteLine($"Spline curve evaluation failed: {ex.Message}");
|
||||||
curvePoints = null;
|
curvePoints = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -70,7 +70,6 @@ public class SolidWorksBendDetectorTests
|
|||||||
// changing the entity count. Verify arcs are present and no
|
// changing the entity count. Verify arcs are present and no
|
||||||
// spurious closing chord exists.
|
// spurious closing chord exists.
|
||||||
var arcCount = result.Entities.Count(e => e is OpenNest.Geometry.Arc);
|
var arcCount = result.Entities.Count(e => e is OpenNest.Geometry.Arc);
|
||||||
var lineCount = result.Entities.Count(e => e is OpenNest.Geometry.Line);
|
|
||||||
var circleCount = result.Entities.Count(e => e is OpenNest.Geometry.Circle);
|
var circleCount = result.Entities.Count(e => e is OpenNest.Geometry.Circle);
|
||||||
|
|
||||||
Assert.True(arcCount > 0, "Expected arcs from ellipse conversion");
|
Assert.True(arcCount > 0, "Expected arcs from ellipse conversion");
|
||||||
|
|||||||
Reference in New Issue
Block a user