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

#2: инвариант диаметра value>0 (value<=0||!IsFinite, не Abs<1e-6). #3: сообщение
create_standard_views обобщено (номера видов для инструментов размеров). #4a:
ToRadians проверяет конечность результата (переполнение). #5d: тест viewNumber:999
(вид не найден). #6: комментарий DimensionType переформулирован (COM-дефолт).

Тесты: DrawingDiametralTests 4→5. Итого 141 unit + 77 integration = 218.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-27 18:38:33 +03:00
parent 910d120c8a
commit b6ca2f7b21
5 changed files with 37 additions and 6 deletions
@@ -1,7 +1,19 @@
# Дизайн: диаметральный размер на виде чертежа (drawing_add_diametral_dimension) через API7
**Дата:** 2026-05-27
**Статус:** реализовано и проверено (4 интеграционных + unit, всего 217); ревью Codex спека учтено
**Статус:** реализовано и проверено (5 интеграционных + unit, всего 218); ревью Codex спека и реализации учтено
## Правки по ревью реализации Codex
- **#2** инвариант диаметра: пост-проверка `value <= 0 || !double.IsFinite(value)` (а не `Abs<1e-6`).
- **#3** сообщение `drawing_create_standard_views` обобщено: «номера видов для инструментов размеров».
- **#4a** `DimensionAngles.ToRadians` — проверка конечности результата (защита от переполнения).
- **#5d** тест `viewNumber: 999` (виды есть, номер не найден) — покрывает ветку FindView.
- **#6** комментарий `DimensionType` переформулирован (просто COM-дефолт, без претензии на «стиль»).
- **#4b** минимальный радиус — отклонён (`>0` честный контракт). **#5a/#5b/#5c** (реальная окружность,
read-back угла, пост-Add откат) — отклонены (инструмент geometry-agnostic; ToRadians покрыт unit;
пост-Add сбой для radius>0 не форсировать). Транзитный сбой пакета (нестабильность КОМПАС после
большого прогона) не воспроизводится — повторный прогон 5/5 зелёный.
## Правки по ревью Codex