Files
mdg-filius/packages/fls/test/path-folding.cases.json
julian.kiedaischandClaude Opus 5.5 0c843dc3de fix(fls): archive path folding measured against Swift
41 path pairs replayed in the Swift core decide which spellings name
the same file. Two corrections: full Unicode case folding (ß, ligatures,
final sigma, micro, long s) instead of toLowerCase, and width folding of
the whole Halfwidth and Fullwidth Forms block. Swift treats composed and
decomposed spellings as one dictionary key; here the writer refuses both.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 20:09:19 +00:00

208 lines
4.4 KiB
JSON
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
{
"name": "ascii case",
"first": "projekt/x/a.txt",
"second": "projekt/x/A.TXT"
},
{
"name": "fullwidth letter",
"first": "projekt/x/A.txt",
"second": "projekt/x/A.txt"
},
{
"name": "fullwidth digit",
"first": "projekt/x/1.txt",
"second": "projekt/x/1.txt"
},
{
"name": "halfwidth katakana",
"first": "projekt/x/ア.txt",
"second": "projekt/x/ア.txt"
},
{
"name": "sharp s vs SS",
"first": "projekt/x/straße.txt",
"second": "projekt/x/STRASSE.txt"
},
{
"name": "sharp s vs ss",
"first": "projekt/x/straße.txt",
"second": "projekt/x/strasse.txt"
},
{
"name": "capital sharp s",
"first": "projekt/x/ẞ.txt",
"second": "projekt/x/ß.txt"
},
{
"name": "kelvin sign",
"first": "projekt/x/K.txt",
"second": "projekt/x/k.txt"
},
{
"name": "angstrom sign",
"first": "projekt/x/Å.txt",
"second": "projekt/x/å.txt"
},
{
"name": "ohm sign",
"first": "projekt/x/Ω.txt",
"second": "projekt/x/ω.txt"
},
{
"name": "fi ligature",
"first": "projekt/x/fi.txt",
"second": "projekt/x/fi.txt"
},
{
"name": "composed vs decomposed",
"first": "projekt/x/é.txt",
"second": "projekt/x/é.txt"
},
{
"name": "dotted capital I",
"first": "projekt/x/İ.txt",
"second": "projekt/x/i.txt"
},
{
"name": "dotless i",
"first": "projekt/x/ı.txt",
"second": "projekt/x/I.txt"
},
{
"name": "final sigma",
"first": "projekt/x/ς.txt",
"second": "projekt/x/σ.txt"
},
{
"name": "micro sign",
"first": "projekt/x/µ.txt",
"second": "projekt/x/μ.txt"
},
{
"name": "circled letter",
"first": "projekt/x/Ⓐ.txt",
"second": "projekt/x/ⓐ.txt"
},
{
"name": "superscript two",
"first": "projekt/x/².txt",
"second": "projekt/x/2.txt"
},
{
"name": "ideographic space",
"first": "projekt/x/a b.txt",
"second": "projekt/x/a b.txt"
},
{
"name": "umlaut case",
"first": "projekt/x/Ä.txt",
"second": "projekt/x/ä.txt"
},
{
"name": "fullwidth tilde",
"first": "projekt/x/~.txt",
"second": "projekt/x/~.txt"
},
{
"name": "halfwidth hangul",
"first": "projekt/x/ᄀ.txt",
"second": "projekt/x/ㄱ.txt"
},
{
"name": "fullwidth won sign",
"first": "projekt/x/₩.txt",
"second": "projekt/x/₩.txt"
},
{
"name": "different names",
"first": "projekt/x/a.txt",
"second": "projekt/x/b.txt"
},
{
"name": "halfwidth left arrow",
"first": "projekt/x/←.txt",
"second": "projekt/x/←.txt"
},
{
"name": "halfwidth forms light vertical",
"first": "projekt/x/│.txt",
"second": "projekt/x/│.txt"
},
{
"name": "halfwidth katakana middle dot",
"first": "projekt/x/・.txt",
"second": "projekt/x/・.txt"
},
{
"name": "halfwidth hangul filler",
"first": "projekt/x/ᅠ.txt",
"second": "projekt/x/ㅤ.txt"
},
{
"name": "halfwidth hangul last",
"first": "projekt/x/ᅵ.txt",
"second": "projekt/x/ㅣ.txt"
},
{
"name": "fullwidth cent sign",
"first": "projekt/x/¢.txt",
"second": "projekt/x/¢.txt"
},
{
"name": "long s",
"first": "projekt/x/ſ.txt",
"second": "projekt/x/s.txt"
},
{
"name": "capital sharp s vs ss",
"first": "projekt/x/ẞ.txt",
"second": "projekt/x/ss.txt"
},
{
"name": "ff ligature",
"first": "projekt/x/ff.txt",
"second": "projekt/x/ff.txt"
},
{
"name": "dotless i vs i",
"first": "projekt/x/ı.txt",
"second": "projekt/x/i.txt"
},
{
"name": "dotted capital I vs i dot",
"first": "projekt/x/İ.txt",
"second": "projekt/x/i̇.txt"
},
{
"name": "greek iota with dialytika and tonos",
"first": "projekt/x/ΐ.txt",
"second": "projekt/x/ΐ.txt"
},
{
"name": "cherokee small letter",
"first": "projekt/x/ꭰ.txt",
"second": "projekt/x/Ꭰ.txt"
},
{
"name": "fullwidth lower vs ascii upper",
"first": "projekt/x/a.txt",
"second": "projekt/x/A.txt"
},
{
"name": "halfwidth hangul vs its NFKC form",
"first": "projekt/x/ᄀ.txt",
"second": "projekt/x/ᄀ.txt"
},
{
"name": "halfwidth hangul filler vs its NFKC form",
"first": "projekt/x/ᅠ.txt",
"second": "projekt/x/ᅠ.txt"
},
{
"name": "halfwidth hangul last vs its NFKC form",
"first": "projekt/x/ᅵ.txt",
"second": "projekt/x/ᅵ.txt"
}
]