{
  "slug": "deduplicate-sort-list-order-test",
  "generatedAt": "2026-08-27T21:08:43.072Z",
  "coreSource": "assets/js/tools-src/core.js",
  "fixtureCount": 12,
  "results": [
    {
      "id": "list-dedupe-only-01",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "  Apple  \napple\nBanana\nbanana\nCherry\nItem 2\nItem 10\nItem 1\n\n   \nCafé\nCafe\nApple",
      "output": "Apple\nBanana\nCherry\nItem 2\nItem 10\nItem 1\n\nCafé\nCafe",
      "steps": [
        {
          "op": "removeDuplicateLines"
        }
      ],
      "lineCount": 9,
      "charCount": 52
    },
    {
      "id": "list-trim-dedupe-02",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "  Apple  \napple\nBanana\nbanana\nCherry\nItem 2\nItem 10\nItem 1\n\n   \nCafé\nCafe\nApple",
      "output": "Apple\nBanana\nCherry\nItem 2\nItem 10\nItem 1\n\nCafé\nCafe",
      "steps": [
        {
          "op": "trimText"
        },
        {
          "op": "removeDuplicateLines"
        }
      ],
      "lineCount": 9,
      "charCount": 52
    },
    {
      "id": "list-sort-dedupe-03",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "  Apple  \napple\nBanana\nbanana\nCherry\nItem 2\nItem 10\nItem 1\n\n   \nCafé\nCafe\nApple",
      "output": "\n   \n  Apple  \napple\nBanana\nCafe\nCafé\nCherry\nItem 1\nItem 10\nItem 2",
      "steps": [
        {
          "op": "sortLines"
        },
        {
          "op": "removeDuplicateLines"
        }
      ],
      "lineCount": 11,
      "charCount": 66
    },
    {
      "id": "list-trim-dedupe-sort-04",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "  Apple  \napple\nBanana\nbanana\nCherry\nItem 2\nItem 10\nItem 1\n\n   \nCafé\nCafe\nApple",
      "output": "\nApple\nBanana\nCafe\nCafé\nCherry\nItem 1\nItem 10\nItem 2",
      "steps": [
        {
          "op": "trimText"
        },
        {
          "op": "removeDuplicateLines"
        },
        {
          "op": "sortLines"
        }
      ],
      "lineCount": 9,
      "charCount": 52
    },
    {
      "id": "list-case-sensitive-05",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "Alpha\nalpha\nALPHA\nAlpha",
      "output": "Alpha\nalpha\nALPHA",
      "steps": [
        {
          "op": "removeDuplicateLines"
        }
      ],
      "lineCount": 3,
      "charCount": 17
    },
    {
      "id": "list-case-insensitive-06",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "Alpha\nalpha\nALPHA\nAlpha",
      "output": "Alpha",
      "steps": [
        {
          "op": "removeDuplicateLines"
        }
      ],
      "lineCount": 1,
      "charCount": 5
    },
    {
      "id": "list-unicode-accent-07",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "Café\nCafe\nCAFÉ",
      "output": "Café\nCafe",
      "steps": [
        {
          "op": "removeDuplicateLines"
        }
      ],
      "lineCount": 2,
      "charCount": 9
    },
    {
      "id": "list-numeric-sort-08",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "Item 10\nItem 2\nItem 1",
      "output": "Item 1\nItem 10\nItem 2",
      "steps": [
        {
          "op": "sortLines"
        }
      ],
      "lineCount": 3,
      "charCount": 21
    },
    {
      "id": "list-lexical-sort-09",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "Item 10\nItem 2\nItem 1",
      "output": "Item 1\nItem 10\nItem 2",
      "steps": [
        {
          "op": "sortLines"
        }
      ],
      "lineCount": 3,
      "charCount": 21
    },
    {
      "id": "list-empty-lines-10",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "Keep\n\n   \nKeep",
      "output": "Keep\n",
      "steps": [
        {
          "op": "trimText"
        },
        {
          "op": "removeDuplicateLines"
        }
      ],
      "lineCount": 2,
      "charCount": 5
    },
    {
      "id": "list-number-before-11",
      "kind": "observation",
      "generated": false,
      "status": "manual-review",
      "summary": "If you number lines first (1. Apple, 2. Apple), dedupe will not merge them. Prefer dedupe before numbering.",
      "notes": ""
    },
    {
      "id": "list-number-after-12",
      "kind": "pipeline",
      "generated": true,
      "status": "pass",
      "input": "Apple\nApple\nBanana",
      "output": "Apple\nBanana",
      "steps": [
        {
          "op": "removeDuplicateLines"
        },
        {
          "op": "identity"
        }
      ],
      "lineCount": 2,
      "charCount": 12
    }
  ]
}
