"use strict";
var import_fingerprint = require("./fingerprint");
var import_fingerprintAblation = require("./fingerprintAblation.fixtures");
const PLACEHOLDER = "__REPLACE_AFTER_FIRST_RUN__";
const actual = import_fingerprintAblation.ABLATION_FIXTURES.map((entry) => ({
  name: entry.name,
  hash: (0, import_fingerprint.computeFingerprintFromInput)(entry.input),
  expected: entry.expectedHash
}));
const placeholders = actual.filter((a) => a.expected === PLACEHOLDER);
const locked = actual.filter((a) => a.expected !== PLACEHOLDER);
let drifted = 0;
for (const a of locked) {
  if (a.hash === a.expected) {
    console.log("  \u2713", a.name, a.hash);
  } else {
    drifted++;
    console.log("  \u2717", a.name);
    console.log("      expected:", a.expected);
    console.log("      got     :", a.hash);
  }
}
const uniq = new Set(actual.map((a) => a.hash));
if (uniq.size !== actual.length) {
  drifted++;
  console.log("  \u2717 COLLISION \u2014 two or more fixtures share the same fingerprint hash");
}
if (placeholders.length > 0) {
  console.log("\nBootstrap mode \u2014 paste these hashes into fingerprintAblation.fixtures.ts:");
  for (const a of placeholders)
    console.log(`  ${a.name}: '${a.hash}',`);
  console.log("\nThen re-run the test. (Note: locked entries above were still verified; any \u2717 are real drift and must be investigated, not re-bootstrapped.)");
  process.exit(1);
}
if (drifted > 0) {
  console.log(`
${drifted} failed`);
  process.exit(1);
}
console.log(`
${actual.length} passed`);
