diff --git a/OpenNest.Posts.Cincinnati/CincinnatiPostConfig.cs b/OpenNest.Posts.Cincinnati/CincinnatiPostConfig.cs index d651210..6bee170 100644 --- a/OpenNest.Posts.Cincinnati/CincinnatiPostConfig.cs +++ b/OpenNest.Posts.Cincinnati/CincinnatiPostConfig.cs @@ -88,7 +88,7 @@ namespace OpenNest.Posts.Cincinnati /// Configuration for Cincinnati post processor. /// Defines machine-specific parameters, output format, and cutting strategies. /// - public class CincinnatiPostConfig + public sealed class CincinnatiPostConfig { /// /// Gets or sets the configuration name/identifier. diff --git a/OpenNest.Posts.Cincinnati/CincinnatiPreambleWriter.cs b/OpenNest.Posts.Cincinnati/CincinnatiPreambleWriter.cs index 8cbf0c0..edd973b 100644 --- a/OpenNest.Posts.Cincinnati/CincinnatiPreambleWriter.cs +++ b/OpenNest.Posts.Cincinnati/CincinnatiPreambleWriter.cs @@ -24,7 +24,7 @@ public sealed class CincinnatiPreambleWriter { w.WriteLine(CoordinateFormatter.Comment($"NEST {nestName}")); w.WriteLine(CoordinateFormatter.Comment($"CONFIGURATION - {_config.ConfigurationName}")); - w.WriteLine(CoordinateFormatter.Comment(DateTime.Now.ToString("MM-dd-yyyy hh:mm:ss tt"))); + w.WriteLine(CoordinateFormatter.Comment(DateTime.Now.ToString("MM-dd-yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture))); if (!string.IsNullOrEmpty(materialDescription)) w.WriteLine(CoordinateFormatter.Comment($"Material = {materialDescription}")); diff --git a/OpenNest.Posts.Cincinnati/CoordinateFormatter.cs b/OpenNest.Posts.Cincinnati/CoordinateFormatter.cs index 592e170..0397026 100644 --- a/OpenNest.Posts.Cincinnati/CoordinateFormatter.cs +++ b/OpenNest.Posts.Cincinnati/CoordinateFormatter.cs @@ -13,7 +13,8 @@ namespace OpenNest.Posts.Cincinnati public string FormatCoord(double value) { - return System.Math.Round(value, _accuracy).ToString(_format); + return System.Math.Round(value, _accuracy) + .ToString(_format, System.Globalization.CultureInfo.InvariantCulture); } public static string Comment(string text) => $"( {text} )"; diff --git a/OpenNest.Posts.Cincinnati/SpeedClassifier.cs b/OpenNest.Posts.Cincinnati/SpeedClassifier.cs index 6c7e66c..f7b6a4a 100644 --- a/OpenNest.Posts.Cincinnati/SpeedClassifier.cs +++ b/OpenNest.Posts.Cincinnati/SpeedClassifier.cs @@ -8,7 +8,7 @@ namespace OpenNest.Posts.Cincinnati public string Classify(double contourLength, double sheetDiagonal) { var ratio = contourLength / sheetDiagonal; - if (ratio > FastThreshold) return "FAST"; + if (ratio >= FastThreshold) return "FAST"; if (ratio <= SlowThreshold) return "SLOW"; return "MEDIUM"; } @@ -22,7 +22,7 @@ namespace OpenNest.Posts.Cincinnati { // Cincinnati convention: no leading zero for values < 1 (e.g., ".8702" not "0.8702") var rounded = System.Math.Round(value, 4); - var str = rounded.ToString("0.####"); + var str = rounded.ToString("0.####", System.Globalization.CultureInfo.InvariantCulture); if (rounded > 0 && rounded < 1 && str.StartsWith("0.")) return str.Substring(1); return str; diff --git a/OpenNest.Tests/Cincinnati/SpeedClassifierTests.cs b/OpenNest.Tests/Cincinnati/SpeedClassifierTests.cs index e88ef09..2956ce5 100644 --- a/OpenNest.Tests/Cincinnati/SpeedClassifierTests.cs +++ b/OpenNest.Tests/Cincinnati/SpeedClassifierTests.cs @@ -6,7 +6,8 @@ public class SpeedClassifierTests { [Theory] [InlineData(20.0, 10.0, "FAST")] - [InlineData(5.0, 10.0, "MEDIUM")] + [InlineData(5.0, 10.0, "FAST")] + [InlineData(4.9, 10.0, "MEDIUM")] [InlineData(0.5, 10.0, "SLOW")] public void Classify_ReturnsExpectedClass(double contourLength, double sheetDiagonal, string expected) {