{
  "enforce": [
    {
      "Name": "Basic",
      "Cases": [
        {
          "Input": "é̟",
          "Output": "é̟",
          "Err": false
        }
      ]
    },
    {
      "Name": "Context Rule 1",
      "Cases": [
        {
          "Input": "‌",
          "Output": "",
          "Err": true
        },
        {
          "Input": "‌a",
          "Output": "",
          "Err": true
        },
        {
          "Input": "a‌",
          "Output": "",
          "Err": true
        },
        {
          "Input": "‌ا",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ج‌",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ؐ‌ؐا",
          "Output": "",
          "Err": true
        },
        {
          "Input": "جؐ‌ؐ",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ج‌ا",
          "Output": "ج‌ا",
          "Err": false
        },
        {
          "Input": "جؐ‌ؐا",
          "Output": "جؐ‌ؐا",
          "Err": false
        },
        {
          "Input": "جؐؐ‌ؐؐا",
          "Output": "جؐؐ‌ؐؐا",
          "Err": false
        },
        {
          "Input": "جؐ‌ا",
          "Output": "جؐ‌ا",
          "Err": false
        },
        {
          "Input": "ج‌ؐا",
          "Output": "ج‌ؐا",
          "Err": false
        },
        {
          "Input": "ꡲ‌ج",
          "Output": "ꡲ‌ج",
          "Err": false
        },
        {
          "Input": "ꡲؐ‌ؐج",
          "Output": "ꡲؐ‌ؐج",
          "Err": false
        },
        {
          "Input": "ꡲؐؐ‌ؐؐج",
          "Output": "ꡲؐؐ‌ؐؐج",
          "Err": false
        },
        {
          "Input": "ꡲؐ‌ج",
          "Output": "ꡲؐ‌ج",
          "Err": false
        },
        {
          "Input": "ꡲ‌ؐج",
          "Output": "ꡲ‌ؐج",
          "Err": false
        },
        {
          "Input": "੍‌",
          "Output": "੍‌",
          "Err": false
        },
        {
          "Input": "ꡲ੍‌",
          "Output": "ꡲ੍‌",
          "Err": false
        },
        {
          "Input": "ꡲ੍ؐ‌",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ꡲ੍ؐ‌",
          "Output": "",
          "Err": true
        },
        {
          "Input": "્‌",
          "Output": "્‌",
          "Err": false
        },
        {
          "Input": "ꡲ્‌",
          "Output": "ꡲ્‌",
          "Err": false
        },
        {
          "Input": "ꡲ્ؐ‌",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ꡲ્ؐ‌",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ꡲ્‌ج",
          "Output": "ꡲ્‌ج",
          "Err": false
        },
        {
          "Input": "ꡲ‌્ج",
          "Output": "ꡲ‌્ج",
          "Err": false
        }
      ]
    },
    {
      "Name": "Context Rule 2",
      "Cases": [
        {
          "Input": "‍",
          "Output": "",
          "Err": true
        },
        {
          "Input": "‍a",
          "Output": "",
          "Err": true
        },
        {
          "Input": "a‍",
          "Output": "",
          "Err": true
        },
        {
          "Input": "੍‍",
          "Output": "੍‍",
          "Err": false
        },
        {
          "Input": "ꡲ੍‍",
          "Output": "ꡲ੍‍",
          "Err": false
        },
        {
          "Input": "੍a‍",
          "Output": "",
          "Err": true
        }
      ]
    },
    {
      "Name": "Context Rule 3",
      "Cases": [
        {
          "Input": "·",
          "Output": "",
          "Err": true
        },
        {
          "Input": "l·",
          "Output": "",
          "Err": true
        },
        {
          "Input": "·l",
          "Output": "",
          "Err": true
        },
        {
          "Input": "a·",
          "Output": "",
          "Err": true
        },
        {
          "Input": "l·a",
          "Output": "",
          "Err": true
        },
        {
          "Input": "a·a",
          "Output": "",
          "Err": true
        },
        {
          "Input": "l·l",
          "Output": "l·l",
          "Err": false
        },
        {
          "Input": "al·la",
          "Output": "al·la",
          "Err": false
        }
      ]
    },
    {
      "Name": "Context Rule 4",
      "Cases": [
        {
          "Input": "͵",
          "Output": "",
          "Err": true
        },
        {
          "Input": "͵a",
          "Output": "",
          "Err": true
        },
        {
          "Input": "α͵",
          "Output": "",
          "Err": true
        },
        {
          "Input": "͵α",
          "Output": "͵α",
          "Err": false
        },
        {
          "Input": "α͵α",
          "Output": "α͵α",
          "Err": false
        },
        {
          "Input": "͵͵α",
          "Output": "͵͵α",
          "Err": false
        },
        {
          "Input": "α͵͵α",
          "Output": "α͵͵α",
          "Err": false
        },
        {
          "Input": "α͵͵",
          "Output": "",
          "Err": true
        },
        {
          "Input": "α͵͵a",
          "Output": "",
          "Err": true
        }
      ]
    },
    {
      "Name": "Context Rule 5+6",
      "Cases": [
        {
          "Input": "׳",
          "Output": "",
          "Err": true
        },
        {
          "Input": "׳ה",
          "Output": "",
          "Err": true
        },
        {
          "Input": "a׳b",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ש׳",
          "Output": "ש׳",
          "Err": false
        },
        {
          "Input": "ש׳׳׳",
          "Output": "ש׳׳׳",
          "Err": false
        },
        {
          "Input": "״",
          "Output": "",
          "Err": true
        },
        {
          "Input": "״ה",
          "Output": "",
          "Err": true
        },
        {
          "Input": "a״b",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ש״",
          "Output": "ש״",
          "Err": false
        },
        {
          "Input": "ש״״״",
          "Output": "ש״״״",
          "Err": false
        },
        {
          "Input": "aש״״״",
          "Output": "aש״״״",
          "Err": false
        }
      ]
    },
    {
      "Name": "Context Rule 7",
      "Cases": [
        {
          "Input": "・",
          "Output": "",
          "Err": true
        },
        {
          "Input": "abc・",
          "Output": "",
          "Err": true
        },
        {
          "Input": "・def",
          "Output": "",
          "Err": true
        },
        {
          "Input": "abc・def",
          "Output": "",
          "Err": true
        },
        {
          "Input": "aヅc・def",
          "Output": "aヅc・def",
          "Err": false
        },
        {
          "Input": "abc・dぶf",
          "Output": "abc・dぶf",
          "Err": false
        },
        {
          "Input": "⺐bc・def",
          "Output": "⺐bc・def",
          "Err": false
        }
      ]
    },
    {
      "Name": "Context Rule 8+9",
      "Cases": [
        {
          "Input": "١٢٣٤٥۶",
          "Output": "",
          "Err": true
        },
        {
          "Input": "۱۲۳۴۵٦",
          "Output": "",
          "Err": true
        },
        {
          "Input": "١٢٣٤٥",
          "Output": "١٢٣٤٥",
          "Err": false
        },
        {
          "Input": "۱۲۳۴۵",
          "Output": "۱۲۳۴۵",
          "Err": false
        }
      ]
    },
    {
      "Name": "Nickname",
      "Cases": [
        {
          "Input": "  Swan  of   Avon   ",
          "Output": "Swan of Avon",
          "Err": false
        },
        {
          "Input": "",
          "Output": "",
          "Err": true
        },
        {
          "Input": " ",
          "Output": "",
          "Err": true
        },
        {
          "Input": "  ",
          "Output": "",
          "Err": true
        },
        {
          "Input": "a a a a a a a a a a a a a a a a　a",
          "Output": "a a a a a a a a a a a a a a a a a",
          "Err": false
        },
        {
          "Input": "Foo",
          "Output": "Foo",
          "Err": false
        },
        {
          "Input": "foo",
          "Output": "foo",
          "Err": false
        },
        {
          "Input": "Foo Bar",
          "Output": "Foo Bar",
          "Err": false
        },
        {
          "Input": "foo bar",
          "Output": "foo bar",
          "Err": false
        },
        {
          "Input": "Σ",
          "Output": "Σ",
          "Err": false
        },
        {
          "Input": "σ",
          "Output": "σ",
          "Err": false
        },
        {
          "Input": "ς",
          "Output": "ς",
          "Err": false
        },
        {
          "Input": "♚",
          "Output": "♚",
          "Err": false
        },
        {
          "Input": "Richard Ⅳ",
          "Output": "Richard IV",
          "Err": false
        },
        {
          "Input": "Å",
          "Output": "Å",
          "Err": false
        },
        {
          "Input": "ﬀ",
          "Output": "ff",
          "Err": false
        },
        {
          "Input": "שa",
          "Output": "שa",
          "Err": false
        },
        {
          "Input": "동일조건변경허락",
          "Output": "동일조건변경허락",
          "Err": false
        }
      ]
    },
    {
      "Name": "OpaqueString",
      "Cases": [
        {
          "Input": "  Swan  of   Avon   ",
          "Output": "  Swan  of   Avon   ",
          "Err": false
        },
        {
          "Input": "",
          "Output": "",
          "Err": true
        },
        {
          "Input": " ",
          "Output": " ",
          "Err": false
        },
        {
          "Input": "  ",
          "Output": "  ",
          "Err": false
        },
        {
          "Input": "a a a a a a a a a a a a a a a a　a",
          "Output": "a a a a a a a a a a a a a a a a a",
          "Err": false
        },
        {
          "Input": "Foo",
          "Output": "Foo",
          "Err": false
        },
        {
          "Input": "foo",
          "Output": "foo",
          "Err": false
        },
        {
          "Input": "Foo Bar",
          "Output": "Foo Bar",
          "Err": false
        },
        {
          "Input": "foo bar",
          "Output": "foo bar",
          "Err": false
        },
        {
          "Input": "σ",
          "Output": "σ",
          "Err": false
        },
        {
          "Input": "Richard Ⅳ",
          "Output": "Richard Ⅳ",
          "Err": false
        },
        {
          "Input": "Å",
          "Output": "Å",
          "Err": false
        },
        {
          "Input": "Jack of ♦s",
          "Output": "Jack of ♦s",
          "Err": false
        },
        {
          "Input": "my cat is a \tby",
          "Output": "",
          "Err": true
        },
        {
          "Input": "שa",
          "Output": "שa",
          "Err": false
        }
      ]
    },
    {
      "Name": "UsernameCaseMapped",
      "Cases": [
        {
          "Input": "juliet@example.com",
          "Output": "juliet@example.com",
          "Err": false
        },
        {
          "Input": "fussball",
          "Output": "fussball",
          "Err": false
        },
        {
          "Input": "fußball",
          "Output": "fußball",
          "Err": false
        },
        {
          "Input": "π",
          "Output": "π",
          "Err": false
        },
        {
          "Input": "Σ",
          "Output": "σ",
          "Err": false
        },
        {
          "Input": "σ",
          "Output": "σ",
          "Err": false
        },
        {
          "Input": "ς",
          "Output": "ς",
          "Err": false
        },
        {
          "Input": "I",
          "Output": "i",
          "Err": false
        },
        {
          "Input": "I",
          "Output": "i",
          "Err": false
        },
        {
          "Input": "ϒ",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ΰ",
          "Output": "ΰ",
          "Err": false
        },
        {
          "Input": "foo bar",
          "Output": "",
          "Err": true
        },
        {
          "Input": "♚",
          "Output": "",
          "Err": true
        },
        {
          "Input": "~",
          "Output": "~",
          "Err": false
        },
        {
          "Input": "a",
          "Output": "a",
          "Err": false
        },
        {
          "Input": "!",
          "Output": "!",
          "Err": false
        },
        {
          "Input": "²",
          "Output": "",
          "Err": true
        },
        {
          "Input": "\t",
          "Output": "",
          "Err": true
        },
        {
          "Input": "\n",
          "Output": "",
          "Err": true
        },
        {
          "Input": "⛖",
          "Output": "",
          "Err": true
        },
        {
          "Input": "⛿",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ﬀ",
          "Output": "",
          "Err": true
        },
        {
          "Input": " ",
          "Output": "",
          "Err": true
        },
        {
          "Input": " ",
          "Output": "",
          "Err": true
        },
        {
          "Input": "  ",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ǅ",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ᛮ",
          "Output": "",
          "Err": true
        },
        {
          "Input": "҈",
          "Output": "",
          "Err": true
        },
        {
          "Input": "Å",
          "Output": "å",
          "Err": false
        },
        {
          "Input": "Å",
          "Output": "å",
          "Err": false
        },
        {
          "Input": "Å",
          "Output": "å",
          "Err": false
        },
        {
          "Input": "ç",
          "Output": "ç",
          "Err": false
        },
        {
          "Input": "ç",
          "Output": "ç",
          "Err": false
        },
        {
          "Input": "Ř",
          "Output": "ř",
          "Err": false
        },
        {
          "Input": "Ř",
          "Output": "ř",
          "Err": false
        },
        {
          "Input": "ṡ",
          "Output": "ṡ",
          "Err": false
        },
        {
          "Input": "А",
          "Output": "а",
          "Err": false
        },
        {
          "Input": "ＡＢ",
          "Output": "ab",
          "Err": false
        },
        {
          "Input": "שc",
          "Output": "",
          "Err": true
        }
      ]
    },
    {
      "Name": "UsernameCasePreserved",
      "Cases": [
        {
          "Input": "ABC",
          "Output": "ABC",
          "Err": false
        },
        {
          "Input": "ＡＢ",
          "Output": "AB",
          "Err": false
        },
        {
          "Input": "שc",
          "Output": "",
          "Err": true
        },
        {
          "Input": "ﬀ",
          "Output": "",
          "Err": true
        },
        {
          "Input": "Å",
          "Output": "Å",
          "Err": false
        },
        {
          "Input": "ẛ",
          "Output": "",
          "Err": true
        }
      ]
    },
    {
      "Name": "UsernameCaseMappedRestricted",
      "Cases": [
        {
          "Input": "juliet@example.com",
          "Output": "",
          "Err": true
        },
        {
          "Input": "I",
          "Output": "i",
          "Err": false
        }
      ]
    }
  ],
  "compare": [
    {
      "Name": "Nickname",
      "P": {},
      "Cases": [
        {
          "A": "a",
          "B": "b",
          "Result": false
        },
        {
          "A": "  Swan  of   Avon   ",
          "B": "swan of avon",
          "Result": true
        },
        {
          "A": "Foo",
          "B": "foo",
          "Result": true
        },
        {
          "A": "foo",
          "B": "foo",
          "Result": true
        },
        {
          "A": "Foo Bar",
          "B": "foo bar",
          "Result": true
        },
        {
          "A": "foo bar",
          "B": "foo bar",
          "Result": true
        },
        {
          "A": "Σ",
          "B": "σ",
          "Result": true
        },
        {
          "A": "Σ",
          "B": "ς",
          "Result": false
        },
        {
          "A": "σ",
          "B": "ς",
          "Result": false
        },
        {
          "A": "Richard Ⅳ",
          "B": "richard iv",
          "Result": true
        },
        {
          "A": "Å",
          "B": "å",
          "Result": true
        },
        {
          "A": "ﬀ",
          "B": "ff",
          "Result": true
        },
        {
          "A": "ß",
          "B": "sS",
          "Result": false
        },
        {
          "A": "¨",
          "B": " ̈",
          "Result": true
        },
        {
          "A": "¨",
          "B": "̈",
          "Result": true
        },
        {
          "A": " ̈",
          "B": "̈",
          "Result": true
        }
      ]
    }
  ]
}
