Corpus-minimalisatiefuncties

function HPDFMinimizeCorpusCase(const Input: TBytes;
  const Predicate: THPDFFailurePredicate; MaximumAttempts: Integer;
  out AInfo: THPDFCorpusMinimizationInfo): TBytes;

De reducer verwijdert eerst volledige indirecte-object-reeksen en past daarna steeds kleinere bytebereik-reducties toe

Een kandidaat wordt alleen geaccepteerd wanneer het predicaat nog steeds de oorspronkelijke faalhandtekening meldt

AInfo meldt pogingen, geaccepteerde reducties, verwijderde objectreeksen, verwijderde bytebereiken, oorspronkelijke en uiteindelijke groottes en de behouden handtekening

Continue corpusopslag

function HPDFDefaultCorpusStoreOptions: THPDFCorpusStoreOptions;

function HPDFMinimizeAndStoreCorpusCase(const Input: TBytes;
  const Predicate: THPDFFailurePredicate;
  const CorpusDirectory: string;
  const Options: THPDFCorpusStoreOptions;
  out AInfo: THPDFCorpusCaseInfo): Boolean;

function HPDFCorpusCaseInfoToJSON(
  const AInfo: THPDFCorpusCaseInfo): AnsiString;
type
  THPDFCorpusStoreAction = (csaAdded, csaReplaced, csaKeptExisting);

  THPDFCorpusStoreOptions = record
    MaximumAttempts: Integer;
    MaximumInputBytes: Int64;
    MaximumStoredBytes: Int64;
    LockRetryCount: Integer;
  end;

De opslag leidt een stabiele case-ID af van de SHA-256-digest van de faalhandtekening, valideert elk bestaand geval opnieuw, minimaliseert zowel het bestaande als het binnenkomende geval en behoudt het kleinste resultaat

Een procesoverschrijdende vergrendeling serialiseert beslissingen voor één corpusmap, terwijl write-through-tijdelijke bestanden en atomair vervangen voorkomen dat lezers gedeeltelijke PDF- of metadatabestanden observeren

THPDFCorpusStoreOptions begrenst minimalisatiepogingen, binnenkomende bytes, opgeslagen bytes en vergrendelingspogingen, en THPDFCorpusCaseInfo.Action meldt of het geval is toegevoegd, vervangen of behouden

Het zijliggend schema hotpdf.corpus.case.v1 registreert de case-ID, de exacte faalhandtekening, de inhoud-SHA-256 en het aantal opgeslagen bytes in stabiele veldvolgorde

HPDFCompareRegressionResultsDeterministic vergelijkt herhaalde kruisengine-handtekeningen over parse-, render-, tekst- en opslagdomeinen en wijst instabiele of mislukte runs af