feat: drawing_create_standard_views — упрочнение по ревью Codex реализации

#1: непустота проверяется у ВНОВЬ созданных видов (разница IView.Number), не по
всей коллекции — прежняя геометрия чертежа не маскирует пустые новые виды.
#3: откат созданных видов (IView.Delete) при created!=3 или пустых видах.
#7: unit-тест нормализации кириллического пути. #4: повторный вызов (дубликаты)
отражён в описании инструмента. #5/#6/#2 — по обоснованию (release RCW отклонён v2-2).

Тесты: 116 unit + 61 integration = 177 зелёных.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-27 14:37:35 +03:00
parent de063290f4
commit 5aa4221a37
4 changed files with 59 additions and 16 deletions
@@ -23,6 +23,7 @@ public sealed class DrawingValidationTests
[InlineData(@"C:\m\part.m3d", ".m3d")]
[InlineData(@"C:\m\frame.a3d", ".a3d")]
[InlineData(@" C:\m\part.M3D ", ".m3d")]
[InlineData(@"C:\модели\деталь.m3d", ".m3d")] // кириллица в пути
public void NormalizeModelPath_accepts_model_files(string path, string expectedExt)
{
var result = DrawingValidation.NormalizeModelPath(path);
@@ -30,6 +31,14 @@ public sealed class DrawingValidationTests
Assert.EndsWith(expectedExt, result, StringComparison.OrdinalIgnoreCase);
}
[Fact]
public void NormalizeModelPath_preserves_cyrillic()
{
var result = DrawingValidation.NormalizeModelPath(@"C:\модели\деталь.m3d");
Assert.Contains("деталь", result);
Assert.Contains("модели", result);
}
[Theory]
[InlineData(0)]
[InlineData(-1)]