مرجع HotPDF
function HPDFMinimizeCorpusCase(const Input: TBytes;
const Predicate: THPDFFailurePredicate; MaximumAttempts: Integer;
out AInfo: THPDFCorpusMinimizationInfo): TBytes;
يزيل المُصغِّر (reducer) أولًا نطاقات الكائنات غير المباشرة الكاملة، ثم يطبّق تخفيضات نطاق بايتات أصغر تدريجيًا
لا يُقبل المرشّح (candidate) إلا عندما تستمر الدالة الشرطية (predicate) في الإبلاغ عن توقيع الفشل الأصلي
يُبلغ AInfo عن المحاولات، والتخفيضات المقبولة، ونطاقات الكائنات المُزالة، ونطاقات البايتات المُزالة، والحجمَين الأصلي والنهائي، والتوقيع المحفوظ
تخزين مستمر للمجموعة (corpus)
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;
لا يُقبل المرشّح (candidate) إلا عندما تستمر الدالة الشرطية (predicate) في الإبلاغ عن توقيع الفشل الأصلي
لا يُقبل المرشّح (candidate) إلا عندما تستمر الدالة الشرطية (predicate) في الإبلاغ عن توقيع الفشل الأصلي
تحدّ THPDFCorpusStoreOptions محاولات التصغير (minimisation)، والبايتات الواردة، والبايتات المخزَّنة، وإعادة محاولات القفل، وتُبلغ THPDFCorpusCaseInfo.Action عمّا إذا كانت الحالة قد أُضيفت أو استُبدلت أو احتُفظ بها
يسجّل مخطط الملف المرافق (sidecar) hotpdf.corpus.case.v1 معرّف الحالة، وتوقيع الفشل الدقيق، وSHA-256 للمحتوى، وعدد البايتات المخزَّنة بترتيب حقول ثابت
تقارن HPDFCompareRegressionResultsDeterministic توقيعات متكرّرة عبر المحركات في نطاقات التحليل والرسم والنص والحفظ، وترفض عمليات التشغيل غير المستقرة أو الفاشلة