review(drawing): правки по ревью реализации (Codex + pi/glm-5.1 + pi/kimi-k2.6)
- K1 (kimi, Major): спайк подтвердил — для User КОМПАС САМ выводит VerticalOrientation из W/H (игнорирует флаг, W/H не свопает); read-back корректен, правка не нужна — задокументировано комментарием + тесты на Landscape (500×300→альбомная, 300×500→книжная) - K2: ValidateFormatDimensions называет точный нарушивший параметр (width/height) - тесты: A1 в Parse (C3), A4 landscape со свопом 297×210 (G2), sheetNumber=0 (C2/G3) - отклонено (нит): алиасы в описании (G4), сообщение NaN (G5), тип исключения standard (K5) 308 тестов зелёных, сборка Release чистая. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -118,7 +118,9 @@ public sealed class DrawingService
|
||||
fmt.Format = PaperFormats.ToKompas(format);
|
||||
if (format == PaperFormat.User)
|
||||
{
|
||||
// Для пользовательского ориентация задаётся соотношением width/height — VerticalOrientation не трогаем.
|
||||
// Для пользовательского КОМПАС САМ выводит VerticalOrientation из соотношения width/height
|
||||
// (W>H → альбомная, H>W → книжная) и игнорирует заданный флаг, W/H не свопает — проверено
|
||||
// спайком. Поэтому VerticalOrientation не трогаем; read-back ниже даёт верную ориентацию.
|
||||
fmt.FormatWidth = width;
|
||||
fmt.FormatHeight = height;
|
||||
}
|
||||
|
||||
@@ -63,15 +63,20 @@ public static class DrawingValidation
|
||||
{
|
||||
if (format == PaperFormat.User)
|
||||
{
|
||||
if (!double.IsFinite(width) || width <= 0 || !double.IsFinite(height) || height <= 0)
|
||||
if (!double.IsFinite(width) || width <= 0)
|
||||
throw new ArgumentOutOfRangeException(nameof(width),
|
||||
"Для format=user ширина и высота должны быть конечными и > 0.");
|
||||
"Для format=user ширина должна быть конечной и > 0.");
|
||||
if (!double.IsFinite(height) || height <= 0)
|
||||
throw new ArgumentOutOfRangeException(nameof(height),
|
||||
"Для format=user высота должна быть конечной и > 0.");
|
||||
}
|
||||
else if (width != 0 || height != 0)
|
||||
{
|
||||
// Точное имя нарушившего параметра (а не всегда width).
|
||||
var offender = width != 0 ? nameof(width) : nameof(height);
|
||||
throw new ArgumentException(
|
||||
"Ширина/высота задаются только для format=user; для стандартного формата размеры авто (передайте 0).",
|
||||
nameof(width));
|
||||
offender);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user