{
  "fixtures": [
    {
      "id": "diff-exact-01",
      "label": "Exact match",
      "kind": "diff",
      "original": "Hello world",
      "changed": "Hello world",
      "options": {},
      "expectMatch": true
    },
    {
      "id": "diff-case-02",
      "label": "Case-only (sensitive)",
      "kind": "diff",
      "original": "Hello",
      "changed": "hello",
      "options": {
        "ignoreCase": false
      },
      "expectMatch": false
    },
    {
      "id": "diff-case-ignore-03",
      "label": "Case-only (ignore case)",
      "kind": "diff",
      "original": "Hello",
      "changed": "hello",
      "options": {
        "ignoreCase": true
      },
      "expectMatch": true
    },
    {
      "id": "diff-ws-04",
      "label": "Whitespace-only (exact)",
      "kind": "diff",
      "original": "Hello  world",
      "changed": "Hello world",
      "options": {
        "ignoreWhitespace": false
      },
      "expectMatch": false
    },
    {
      "id": "diff-ws-ignore-05",
      "label": "Whitespace-only (ignore)",
      "kind": "diff",
      "original": "Hello  world",
      "changed": "Hello world",
      "options": {
        "ignoreWhitespace": true
      },
      "expectMatch": true
    },
    {
      "id": "diff-insert-06",
      "label": "Inserted line",
      "kind": "diff",
      "original": "A\nB",
      "changed": "A\nB\nC",
      "options": {},
      "expectMatch": false
    },
    {
      "id": "diff-delete-07",
      "label": "Deleted line",
      "kind": "diff",
      "original": "A\nB\nC",
      "changed": "A\nC",
      "options": {},
      "expectMatch": false
    },
    {
      "id": "diff-reorder-08",
      "label": "Reordered lines",
      "kind": "diff",
      "original": "A\nB\nC",
      "changed": "A\nC\nB",
      "options": {},
      "expectMatch": false
    },
    {
      "id": "diff-punct-09",
      "label": "Punctuation change",
      "kind": "diff",
      "original": "Hello, world",
      "changed": "Hello world",
      "options": {},
      "expectMatch": false
    },
    {
      "id": "diff-unicode-10",
      "label": "Unicode composed vs combining",
      "kind": "diff",
      "original": "é",
      "changed": "é",
      "options": {},
      "expectMatch": false
    },
    {
      "id": "diff-blank-11",
      "label": "Blank lines ignored",
      "kind": "diff",
      "original": "A\n\nB",
      "changed": "A\nB",
      "options": {
        "ignoreBlankLines": true
      },
      "expectMatch": true
    },
    {
      "id": "diff-long-12",
      "label": "Long line change",
      "kind": "diff",
      "original": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "changed": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxy",
      "options": {},
      "expectMatch": false
    },
    {
      "id": "diff-words-13",
      "label": "Word mode change",
      "kind": "diff",
      "original": "The fox jumps",
      "changed": "The fox leaps",
      "options": {
        "compareWords": true
      },
      "expectMatch": false
    },
    {
      "id": "diff-newlines-14",
      "label": "CRLF vs LF after line split",
      "kind": "diff",
      "original": "a\nb",
      "changed": "a\r\nb",
      "options": {},
      "expectMatch": true,
      "notes": "Observed: generateTextDiffWithStats line splitting treats CRLF and LF as the same line breaks, so this pair matches under default options."
    }
  ]
}
