Deterministyczne sondy regresji różnicowej

HPDFCompareRegressionResultsDeterministic uruchamia dwa adaptery silników wielokrotnie w wybranych domenach, odrzuca przebiegi niestabilne lub nieudane i zapisuje jeden uporządkowany wynik czytelny maszynowo

API

function HPDFCompareRegressionResultsDeterministic(
  const Input: TBytes;
  Domains: THPDFRegressionDomains;
  const LeftProbe, RightProbe: THPDFRegressionProbe;
  const Options: THPDFDifferentialProbeOptions;
  out AInfo: THPDFDifferentialRegressionInfo): Boolean;

function HPDFProbeHotPDFDocument(
  Domain: THPDFRegressionDomain;
  const Input: TBytes): AnsiString;

function HPDFDifferentialRegressionInfoToJSON(
  const AInfo: THPDFDifferentialRegressionInfo): AnsiString;

Domeny

DomenaWbudowana sygnatura HotPDF
rgdParserPodsumowanie stron, obiektów, wersji, adnotacji, czcionek, obrazów, formularzy, podpisów, szyfrowania, AcroForm i struktury
rgdRendererPikselowe SHA-256 BGR od góry do dołu przy stałym DPI, z wyłączeniem alfy i dopełnienia linii skanu
rgdTextUTF-8 SHA-256 z granicami stron po normalizacji CRLF i CR
rgdSaveSHA-256 i długość w bajtach ograniczonego wyjścia wytworzonego z deterministyczną kolejnością słowników

Starsze wartości rgdSignature i rgdConformance pozostają dostępne, więc istniejące adaptery sond zachowują swoje wartości porządkowe i kompatybilność źródłową

HPDFRegressionDomainName(Domain) zwraca stabilną nazwę z małych liter jednej wartości THPDFRegressionDomain, np. parser albo renderer, do pól logów i raportów

Kontrakt stabilności

HPDFDefaultDifferentialProbeOptions wybiera trzy przebiegi, limit wejścia 256 MiB i stabilne zapasowe nazwy silników

RepeatCount przyjmuje od 2 do 64 przebiegów; zmiana sygnatury w obrębie jednego silnika oznacza domenę jako niestabilną, nawet gdy pierwsza sygnatura pasuje do drugiego silnika

Wyjątki sondy są konwertowane na stabilne sygnatury błędów zawierające klasę wyjątku i SHA-256 komunikatu, a każdy błąd sprawia, że niezgodność domeny zachowuje się fail-closed

To samo niezmienne wejście jest dostarczane w stałej kolejności domen i silników, a każda wybrana domena pojawia się w raporcie JSON dokładnie raz

Wbudowane ograniczenia

Konfigurowalne przeciążenie HPDFProbeHotPDFDocument przyjmuje DPI renderowania, maksymalną liczbę stron i maksymalną liczbę bajtów wyjścia

Odciski renderowania wykluczają alfę i dopełnienie wierszy, odciski tekstu normalizują reprezentację końców linii, a wyjście zapisu używa ograniczonego strumienia przed hashowaniem

Raport

THPDFDifferentialRegressionInfo przenosi porównane i różniące się zbiory domen, sygnatury lewą i prawą, zbiory niestabilności, zbiory błędów, nazwy silników, liczbę przebiegów oraz SHA-256 wejścia

HPDFDifferentialRegressionInfoToJSON emituje stały schemat hotpdf.differential.v1 ze stabilną kolejnością pól i domen, dla CI, triażu korpusu i przechowywania audytowego

Pomocnik kompatybilności

HPDFCompareRegressionResults zachowuje oryginalne zachowanie wywołania zwrotnego dla pojedynczego przebiegu, dla wywołujących już wytwarzających zewnętrznie ustabilizowane sygnatury