{
  "version": "1.0.0",
  "license": "CC0-1.0",
  "fixture_base": "https://bozos.si/examples/source-reliability/fixtures",
  "fixtures": [
    {
      "path": "/article.html",
      "content_type": "text/html; charset=utf-8",
      "bytes": 1080,
      "sha256": "c83ed374b1cced8b22db978c271f19490e86cf3d4a3408cc00955aa16efe1213"
    },
    {
      "path": "/layout-v1.pdf",
      "content_type": "application/pdf",
      "bytes": 2134,
      "sha256": "53e3b6fd379c98fbe572ab0afd90daa28e1e47e29db3cef14140835f8cd2e4de"
    },
    {
      "path": "/long.txt",
      "content_type": "text/plain; charset=utf-8",
      "bytes": 115249,
      "sha256": "51571cf7def028e293e059e7339bb53394e388fb3f8ee9d4f62209adc55e300c"
    },
    {
      "path": "/whitespace.txt",
      "content_type": "text/plain; charset=utf-8",
      "bytes": 46,
      "sha256": "615bd7e8259dac63a05913e313e8395ed14b1a9d266444c297fdefc12b6318c9"
    }
  ],
  "cases": [
    {
      "id": "unicode-exact",
      "label": "Unicode punctuation and emoji offsets",
      "path": "/article.html",
      "quote": "The researcher wrote “café”—not “cafe”.",
      "status": "exact_match",
      "matched": true,
      "passage": "The researcher wrote “café”—not “cafe”."
    },
    {
      "id": "unicode-changed",
      "label": "Straight quotes differ from curly quotes",
      "path": "/article.html",
      "quote": "The researcher wrote \"café\"—not \"cafe\".",
      "status": "not_found",
      "matched": false
    },
    {
      "id": "number-changed",
      "label": "Changed count in article text",
      "path": "/article.html",
      "quote": "The primary group recorded 25 samples",
      "status": "not_found",
      "matched": false
    },
    {
      "id": "navigation-excluded",
      "label": "Navigation is not article evidence",
      "path": "/article.html",
      "quote": "Navigation says the trial succeeded.",
      "status": "not_found",
      "matched": false
    },
    {
      "id": "html-table",
      "label": "A row extracted from an HTML table",
      "path": "/article.html",
      "quote": "Primary 24 18 ms",
      "status": "normalized_match",
      "matched": true
    },
    {
      "id": "whitespace",
      "label": "Line breaks normalize but the passage is preserved",
      "path": "/whitespace.txt",
      "quote": "The measured value is 42.",
      "status": "normalized_match",
      "matched": true,
      "passage": "The measured\n  value is 42."
    },
    {
      "id": "pdf-left",
      "label": "Left PDF column, page 1",
      "path": "/layout-v1.pdf",
      "quote": "The left column reports 24 samples.",
      "status": "exact_match",
      "matched": true,
      "page": 1
    },
    {
      "id": "pdf-right",
      "label": "Right PDF column, page 1",
      "path": "/layout-v1.pdf",
      "quote": "The control group contains 19 samples.",
      "status": "exact_match",
      "matched": true,
      "page": 1
    },
    {
      "id": "pdf-table",
      "label": "PDF table cells, page 2",
      "path": "/layout-v1.pdf",
      "quote": "Treatment 42 7.5",
      "status": "exact_match",
      "matched": true,
      "passage": "Treatment 42 7.5",
      "page": 2
    },
    {
      "id": "pdf-page",
      "label": "PDF sentence, page 2",
      "path": "/layout-v1.pdf",
      "quote": "The table reports selected fictional values.",
      "status": "exact_match",
      "matched": true,
      "page": 2
    },
    {
      "id": "redirect",
      "label": "Redirected article keeps final URL provenance",
      "path": "/old-article",
      "quote": "The researcher wrote “café”—not “cafe”.",
      "status": "exact_match",
      "matched": true,
      "final_path": "/article.html",
      "redirects": 1
    },
    {
      "id": "fetched-truncation",
      "label": "Missing quotation beyond the fetched output limit",
      "path": "/long.txt",
      "quote": "The final section contains the missing quotation.",
      "status": "source_truncated",
      "matched": null,
      "truncated": true
    },
    {
      "id": "missing-source",
      "label": "HTTP 404 keeps quotation unchecked",
      "path": "/missing",
      "quote": "No source was read.",
      "error": "upstream_error",
      "http_status": 404
    },
    {
      "id": "robots-denied",
      "label": "A robots denial keeps quotation unchecked",
      "path": "/denied",
      "quote": "No source was read.",
      "error": "robots_disallowed"
    }
  ]
}
