Skip to content

Instantly share code, notes, and snippets.

@typeofweb
Last active April 27, 2021 17:45
Show Gist options
  • Save typeofweb/183a0fa3aa2b9d9ca0ed4d952235287a to your computer and use it in GitHub Desktop.
Save typeofweb/183a0fa3aa2b9d9ca0ed4d952235287a to your computer and use it in GitHub Desktop.
// prettier-ignore
const pairs = [
[0x00E5,0x212B],[0x00C5,0x212B],[0x0399,0x1FBE],[0x03B9,0x1FBE],[0x03B2,0x03D0],
[0x03B5,0x03F5],[0x03B8,0x03D1],[0x03B8,0x03F4],[0x03D1,0x03F4],[0x03B9,0x1FBE],
[0x0345,0x03B9],[0x0345,0x1FBE],[0x03BA,0x03F0],[0x00B5,0x03BC],[0x03C0,0x03D6],
[0x03C1,0x03F1],[0x03C2,0x03C3],[0x03C6,0x03D5],[0x03C9,0x2126],[0x0392,0x03D0],
[0x0395,0x03F5],[0x03D1,0x03F4],[0x0398,0x03D1],[0x0398,0x03F4],[0x0345,0x1FBE],
[0x0345,0x0399],[0x0399,0x1FBE],[0x039A,0x03F0],[0x00B5,0x039C],[0x03A0,0x03D6],
[0x03A1,0x03F1],[0x03A3,0x03C2],[0x03A6,0x03D5],[0x03A9,0x2126],[0x0398,0x03F4],
[0x03B8,0x03F4],[0x03B8,0x03D1],[0x0398,0x03D1],[0x0432,0x1C80],[0x0434,0x1C81],
[0x043E,0x1C82],[0x0441,0x1C83],[0x0442,0x1C84],[0x0442,0x1C85],[0x1C84,0x1C85],
[0x044A,0x1C86],[0x0412,0x1C80],[0x0414,0x1C81],[0x041E,0x1C82],[0x0421,0x1C83],
[0x1C84,0x1C85],[0x0422,0x1C84],[0x0422,0x1C85],[0x042A,0x1C86],[0x0463,0x1C87],
[0x0462,0x1C87]
].map(([a, b]) => [String.fromCodePoint(a), String.fromCodePoint(b)]);
const printChar = (char) => `${char} (U${char.codePointAt(0).toString(16).padStart(4, '0')})`
const results = pairs.map(([a, b]) => {
const resultToUpperCase = [printChar(a.toUpperCase()), printChar(b.toUpperCase())];
const resultToLowerCase = [printChar(a.toLowerCase()), printChar(b.toLowerCase())];
const resultToLocaleUpperCase = [printChar(a.toLocaleUpperCase()), printChar(b.toLocaleUpperCase())];
const resultToLocaleLowerCase = [printChar(a.toLocaleLowerCase()), printChar(b.toLocaleLowerCase())];
return {
a: printChar(a),
b: printChar(b),
toUpperCase: (a.toUpperCase() === b.toUpperCase() ? '✅ ' : '❌ ') + resultToUpperCase.join(' | '),
toLowerCase: (a.toLowerCase() === b.toLowerCase() ? '✅ ' : '❌ ') + resultToLowerCase.join(' | '),
toLocaleUpperCase: (a.toLocaleUpperCase() === b.toLocaleUpperCase() ? '✅ ' : '❌ ') + resultToLocaleUpperCase.join(' | '),
toLocaleLowerCase: (a.toLocaleLowerCase() === b.toLocaleLowerCase() ? '✅ ' : '❌ ') + resultToLocaleLowerCase.join(' | '),
};
}, {upper: 0, lower: 0});
const summary = results.reduce(
(acc, result) => {
acc.toUpperCase += Number(result.toUpperCase.includes("✅"));
acc.toLowerCase += Number(result.toLowerCase.includes("✅"));
acc.toLocaleUpperCase += Number(result.toLocaleUpperCase.includes("✅"));
acc.toLocaleLowerCase += Number(result.toLocaleLowerCase.includes("✅"));
return acc;
},
{
toUpperCase: 0,
toLowerCase: 0,
toLocaleUpperCase: 0,
toLocaleLowerCase: 0,
}
);
console.table(results);
console.log(summary);
a b toUpperCase toLowerCase toLocaleUpperCase toLocaleLowerCase
å (U00e5) Å (U212b) ❌ Å (U00c5) | Å (U212b) ✅ å (U00e5) | å (U00e5) ❌ Å (U00c5) | Å (U212b) ✅ å (U00e5) | å (U00e5)
Å (U00c5) Å (U212b) ❌ Å (U00c5) | Å (U212b) ✅ å (U00e5) | å (U00e5) ❌ Å (U00c5) | Å (U212b) ✅ å (U00e5) | å (U00e5)
Ι (U0399) ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ι (U03b9) | ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ι (U03b9) | ι (U1fbe)
ι (U03b9) ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ι (U03b9) | ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ι (U03b9) | ι (U1fbe)
β (U03b2) ϐ (U03d0) ✅ Β (U0392) | Β (U0392) ❌ β (U03b2) | ϐ (U03d0) ✅ Β (U0392) | Β (U0392) ❌ β (U03b2) | ϐ (U03d0)
ε (U03b5) ϵ (U03f5) ✅ Ε (U0395) | Ε (U0395) ❌ ε (U03b5) | ϵ (U03f5) ✅ Ε (U0395) | Ε (U0395) ❌ ε (U03b5) | ϵ (U03f5)
θ (U03b8) ϑ (U03d1) ✅ Θ (U0398) | Θ (U0398) ❌ θ (U03b8) | ϑ (U03d1) ✅ Θ (U0398) | Θ (U0398) ❌ θ (U03b8) | ϑ (U03d1)
θ (U03b8) ϴ (U03f4) ❌ Θ (U0398) | ϴ (U03f4) ✅ θ (U03b8) | θ (U03b8) ❌ Θ (U0398) | ϴ (U03f4) ✅ θ (U03b8) | θ (U03b8)
ϑ (U03d1) ϴ (U03f4) ❌ Θ (U0398) | ϴ (U03f4) ❌ ϑ (U03d1) | θ (U03b8) ❌ Θ (U0398) | ϴ (U03f4) ❌ ϑ (U03d1) | θ (U03b8)
ι (U03b9) ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ι (U03b9) | ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ι (U03b9) | ι (U1fbe)
ͅ (U0345) ι (U03b9) ✅ Ι (U0399) | Ι (U0399) ❌ ͅ (U0345) | ι (U03b9) ✅ Ι (U0399) | Ι (U0399) ❌ ͅ (U0345) | ι (U03b9)
ͅ (U0345) ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ͅ (U0345) | ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ͅ (U0345) | ι (U1fbe)
κ (U03ba) ϰ (U03f0) ✅ Κ (U039a) | Κ (U039a) ❌ κ (U03ba) | ϰ (U03f0) ✅ Κ (U039a) | Κ (U039a) ❌ κ (U03ba) | ϰ (U03f0)
µ (U00b5) μ (U03bc) ✅ Μ (U039c) | Μ (U039c) ❌ µ (U00b5) | μ (U03bc) ✅ Μ (U039c) | Μ (U039c) ❌ µ (U00b5) | μ (U03bc)
π (U03c0) ϖ (U03d6) ✅ Π (U03a0) | Π (U03a0) ❌ π (U03c0) | ϖ (U03d6) ✅ Π (U03a0) | Π (U03a0) ❌ π (U03c0) | ϖ (U03d6)
ρ (U03c1) ϱ (U03f1) ✅ Ρ (U03a1) | Ρ (U03a1) ❌ ρ (U03c1) | ϱ (U03f1) ✅ Ρ (U03a1) | Ρ (U03a1) ❌ ρ (U03c1) | ϱ (U03f1)
ς (U03c2) σ (U03c3) ✅ Σ (U03a3) | Σ (U03a3) ❌ ς (U03c2) | σ (U03c3) ✅ Σ (U03a3) | Σ (U03a3) ❌ ς (U03c2) | σ (U03c3)
φ (U03c6) ϕ (U03d5) ✅ Φ (U03a6) | Φ (U03a6) ❌ φ (U03c6) | ϕ (U03d5) ✅ Φ (U03a6) | Φ (U03a6) ❌ φ (U03c6) | ϕ (U03d5)
ω (U03c9) Ω (U2126) ❌ Ω (U03a9) | Ω (U2126) ✅ ω (U03c9) | ω (U03c9) ❌ Ω (U03a9) | Ω (U2126) ✅ ω (U03c9) | ω (U03c9)
Β (U0392) ϐ (U03d0) ✅ Β (U0392) | Β (U0392) ❌ β (U03b2) | ϐ (U03d0) ✅ Β (U0392) | Β (U0392) ❌ β (U03b2) | ϐ (U03d0)
Ε (U0395) ϵ (U03f5) ✅ Ε (U0395) | Ε (U0395) ❌ ε (U03b5) | ϵ (U03f5) ✅ Ε (U0395) | Ε (U0395) ❌ ε (U03b5) | ϵ (U03f5)
ϑ (U03d1) ϴ (U03f4) ❌ Θ (U0398) | ϴ (U03f4) ❌ ϑ (U03d1) | θ (U03b8) ❌ Θ (U0398) | ϴ (U03f4) ❌ ϑ (U03d1) | θ (U03b8)
Θ (U0398) ϑ (U03d1) ✅ Θ (U0398) | Θ (U0398) ❌ θ (U03b8) | ϑ (U03d1) ✅ Θ (U0398) | Θ (U0398) ❌ θ (U03b8) | ϑ (U03d1)
Θ (U0398) ϴ (U03f4) ❌ Θ (U0398) | ϴ (U03f4) ✅ θ (U03b8) | θ (U03b8) ❌ Θ (U0398) | ϴ (U03f4) ✅ θ (U03b8) | θ (U03b8)
ͅ (U0345) ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ͅ (U0345) | ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ͅ (U0345) | ι (U1fbe)
ͅ (U0345) Ι (U0399) ✅ Ι (U0399) | Ι (U0399) ❌ ͅ (U0345) | ι (U03b9) ✅ Ι (U0399) | Ι (U0399) ❌ ͅ (U0345) | ι (U03b9)
Ι (U0399) ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ι (U03b9) | ι (U1fbe) ✅ Ι (U0399) | Ι (U0399) ❌ ι (U03b9) | ι (U1fbe)
Κ (U039a) ϰ (U03f0) ✅ Κ (U039a) | Κ (U039a) ❌ κ (U03ba) | ϰ (U03f0) ✅ Κ (U039a) | Κ (U039a) ❌ κ (U03ba) | ϰ (U03f0)
µ (U00b5) Μ (U039c) ✅ Μ (U039c) | Μ (U039c) ❌ µ (U00b5) | μ (U03bc) ✅ Μ (U039c) | Μ (U039c) ❌ µ (U00b5) | μ (U03bc)
Π (U03a0) ϖ (U03d6) ✅ Π (U03a0) | Π (U03a0) ❌ π (U03c0) | ϖ (U03d6) ✅ Π (U03a0) | Π (U03a0) ❌ π (U03c0) | ϖ (U03d6)
Ρ (U03a1) ϱ (U03f1) ✅ Ρ (U03a1) | Ρ (U03a1) ❌ ρ (U03c1) | ϱ (U03f1) ✅ Ρ (U03a1) | Ρ (U03a1) ❌ ρ (U03c1) | ϱ (U03f1)
Σ (U03a3) ς (U03c2) ✅ Σ (U03a3) | Σ (U03a3) ❌ σ (U03c3) | ς (U03c2) ✅ Σ (U03a3) | Σ (U03a3) ❌ σ (U03c3) | ς (U03c2)
Φ (U03a6) ϕ (U03d5) ✅ Φ (U03a6) | Φ (U03a6) ❌ φ (U03c6) | ϕ (U03d5) ✅ Φ (U03a6) | Φ (U03a6) ❌ φ (U03c6) | ϕ (U03d5)
Ω (U03a9) Ω (U2126) ❌ Ω (U03a9) | Ω (U2126) ✅ ω (U03c9) | ω (U03c9) ❌ Ω (U03a9) | Ω (U2126) ✅ ω (U03c9) | ω (U03c9)
Θ (U0398) ϴ (U03f4) ❌ Θ (U0398) | ϴ (U03f4) ✅ θ (U03b8) | θ (U03b8) ❌ Θ (U0398) | ϴ (U03f4) ✅ θ (U03b8) | θ (U03b8)
θ (U03b8) ϴ (U03f4) ❌ Θ (U0398) | ϴ (U03f4) ✅ θ (U03b8) | θ (U03b8) ❌ Θ (U0398) | ϴ (U03f4) ✅ θ (U03b8) | θ (U03b8)
θ (U03b8) ϑ (U03d1) ✅ Θ (U0398) | Θ (U0398) ❌ θ (U03b8) | ϑ (U03d1) ✅ Θ (U0398) | Θ (U0398) ❌ θ (U03b8) | ϑ (U03d1)
Θ (U0398) ϑ (U03d1) ✅ Θ (U0398) | Θ (U0398) ❌ θ (U03b8) | ϑ (U03d1) ✅ Θ (U0398) | Θ (U0398) ❌ θ (U03b8) | ϑ (U03d1)
в (U0432) ᲀ (U1c80) ✅ В (U0412) | В (U0412) ❌ в (U0432) | ᲀ (U1c80) ✅ В (U0412) | В (U0412) ❌ в (U0432) | ᲀ (U1c80)
д (U0434) ᲁ (U1c81) ✅ Д (U0414) | Д (U0414) ❌ д (U0434) | ᲁ (U1c81) ✅ Д (U0414) | Д (U0414) ❌ д (U0434) | ᲁ (U1c81)
о (U043e) ᲂ (U1c82) ✅ О (U041e) | О (U041e) ❌ о (U043e) | ᲂ (U1c82) ✅ О (U041e) | О (U041e) ❌ о (U043e) | ᲂ (U1c82)
с (U0441) ᲃ (U1c83) ✅ С (U0421) | С (U0421) ❌ с (U0441) | ᲃ (U1c83) ✅ С (U0421) | С (U0421) ❌ с (U0441) | ᲃ (U1c83)
т (U0442) ᲄ (U1c84) ✅ Т (U0422) | Т (U0422) ❌ т (U0442) | ᲄ (U1c84) ✅ Т (U0422) | Т (U0422) ❌ т (U0442) | ᲄ (U1c84)
т (U0442) ᲅ (U1c85) ✅ Т (U0422) | Т (U0422) ❌ т (U0442) | ᲅ (U1c85) ✅ Т (U0422) | Т (U0422) ❌ т (U0442) | ᲅ (U1c85)
ᲄ (U1c84) ᲅ (U1c85) ✅ Т (U0422) | Т (U0422) ❌ ᲄ (U1c84) | ᲅ (U1c85) ✅ Т (U0422) | Т (U0422) ❌ ᲄ (U1c84) | ᲅ (U1c85)
ъ (U044a) ᲆ (U1c86) ✅ Ъ (U042a) | Ъ (U042a) ❌ ъ (U044a) | ᲆ (U1c86) ✅ Ъ (U042a) | Ъ (U042a) ❌ ъ (U044a) | ᲆ (U1c86)
В (U0412) ᲀ (U1c80) ✅ В (U0412) | В (U0412) ❌ в (U0432) | ᲀ (U1c80) ✅ В (U0412) | В (U0412) ❌ в (U0432) | ᲀ (U1c80)
Д (U0414) ᲁ (U1c81) ✅ Д (U0414) | Д (U0414) ❌ д (U0434) | ᲁ (U1c81) ✅ Д (U0414) | Д (U0414) ❌ д (U0434) | ᲁ (U1c81)
О (U041e) ᲂ (U1c82) ✅ О (U041e) | О (U041e) ❌ о (U043e) | ᲂ (U1c82) ✅ О (U041e) | О (U041e) ❌ о (U043e) | ᲂ (U1c82)
С (U0421) ᲃ (U1c83) ✅ С (U0421) | С (U0421) ❌ с (U0441) | ᲃ (U1c83) ✅ С (U0421) | С (U0421) ❌ с (U0441) | ᲃ (U1c83)
ᲄ (U1c84) ᲅ (U1c85) ✅ Т (U0422) | Т (U0422) ❌ ᲄ (U1c84) | ᲅ (U1c85) ✅ Т (U0422) | Т (U0422) ❌ ᲄ (U1c84) | ᲅ (U1c85)
Т (U0422) ᲄ (U1c84) ✅ Т (U0422) | Т (U0422) ❌ т (U0442) | ᲄ (U1c84) ✅ Т (U0422) | Т (U0422) ❌ т (U0442) | ᲄ (U1c84)
Т (U0422) ᲅ (U1c85) ✅ Т (U0422) | Т (U0422) ❌ т (U0442) | ᲅ (U1c85) ✅ Т (U0422) | Т (U0422) ❌ т (U0442) | ᲅ (U1c85)
Ъ (U042a) ᲆ (U1c86) ✅ Ъ (U042a) | Ъ (U042a) ❌ ъ (U044a) | ᲆ (U1c86) ✅ Ъ (U042a) | Ъ (U042a) ❌ ъ (U044a) | ᲆ (U1c86)
ѣ (U0463) ᲇ (U1c87) ✅ Ѣ (U0462) | Ѣ (U0462) ❌ ѣ (U0463) | ᲇ (U1c87) ✅ Ѣ (U0462) | Ѣ (U0462) ❌ ѣ (U0463) | ᲇ (U1c87)
Ѣ (U0462) ᲇ (U1c87) ✅ Ѣ (U0462) | Ѣ (U0462) ❌ ѣ (U0463) | ᲇ (U1c87) ✅ Ѣ (U0462) | Ѣ (U0462) ❌ ѣ (U0463) | ᲇ (U1c87)
  • toUpperCase: 46
  • toLowerCase: 8
  • toLocaleUpperCase: 46
  • toLocaleLowerCase: 8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment