refactor: extract shared feature utilities and sub-program registry from CincinnatiPostProcessor

Consolidate duplicated static methods (SplitFeatures, ComputeCutDistance,
IsFeatureEtch, feature ordering) from CincinnatiSheetWriter and
CincinnatiPartSubprogramWriter into a shared FeatureUtils class. Move
inline sub-program registry building from Post() into
CincinnatiPartSubprogramWriter.BuildRegistry().

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-25 21:54:04 -04:00
parent 1aac03c9ef
commit cbabf5e9d1
5 changed files with 151 additions and 187 deletions

View File

@@ -152,7 +152,7 @@ public class CincinnatiSheetWriterTests
new LinearMove(1, 1) { Layer = LayerType.Scribe }
};
Assert.True(CincinnatiSheetWriter.IsFeatureEtch(codes));
Assert.True(FeatureUtils.IsEtch(codes));
}
[Fact]
@@ -165,7 +165,7 @@ public class CincinnatiSheetWriterTests
new LinearMove(1, 1) { Layer = LayerType.Cut }
};
Assert.False(CincinnatiSheetWriter.IsFeatureEtch(codes));
Assert.False(FeatureUtils.IsEtch(codes));
}
[Fact]
@@ -176,7 +176,7 @@ public class CincinnatiSheetWriterTests
new RapidMove(0, 0)
};
Assert.False(CincinnatiSheetWriter.IsFeatureEtch(codes));
Assert.False(FeatureUtils.IsEtch(codes));
}
private static Program CreateSimpleProgram()