Add unicode tests
This commit is contained in:
parent
13a54ec318
commit
3ab95384df
@ -19,7 +19,7 @@ class RemoveDiacritics extends Operation {
|
|||||||
|
|
||||||
this.name = "Remove Diacritics";
|
this.name = "Remove Diacritics";
|
||||||
this.module = "Default";
|
this.module = "Default";
|
||||||
this.description = "Replaces accented characters with their latin character equivalent.";
|
this.description = "Replaces accented characters with their latin character equivalent. Accented characters are made up of Unicode combining characters, so unicode text formatting such as strikethroughs and underlines will also be removed.";
|
||||||
this.infoURL = "https://wikipedia.org/wiki/Diacritic";
|
this.infoURL = "https://wikipedia.org/wiki/Diacritic";
|
||||||
this.inputType = "string";
|
this.inputType = "string";
|
||||||
this.outputType = "string";
|
this.outputType = "string";
|
||||||
|
@ -46,7 +46,6 @@ class UnicodeTextFormat extends Operation {
|
|||||||
run(input, args) {
|
run(input, args) {
|
||||||
const [underline, strikethrough] = args;
|
const [underline, strikethrough] = args;
|
||||||
let output = input.map(char => [char]);
|
let output = input.map(char => [char]);
|
||||||
console.dir(output);
|
|
||||||
if (strikethrough) {
|
if (strikethrough) {
|
||||||
output = output.map(charFormat => {
|
output = output.map(charFormat => {
|
||||||
charFormat.push(...Utils.strToUtf8ByteArray("\u0336"));
|
charFormat.push(...Utils.strToUtf8ByteArray("\u0336"));
|
||||||
@ -59,8 +58,8 @@ class UnicodeTextFormat extends Operation {
|
|||||||
return charFormat;
|
return charFormat;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
console.dir(output);
|
// return output.flat(); - Not supported in Node 10, polyfilled
|
||||||
return output.flat();
|
return [].concat(...output);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,6 @@ import "./tests/ParseQRCode.mjs";
|
|||||||
import "./tests/PowerSet.mjs";
|
import "./tests/PowerSet.mjs";
|
||||||
import "./tests/Regex.mjs";
|
import "./tests/Regex.mjs";
|
||||||
import "./tests/Register.mjs";
|
import "./tests/Register.mjs";
|
||||||
import "./tests/RemoveDiacritics.mjs";
|
|
||||||
import "./tests/Rotate.mjs";
|
import "./tests/Rotate.mjs";
|
||||||
import "./tests/SeqUtils.mjs";
|
import "./tests/SeqUtils.mjs";
|
||||||
import "./tests/SetDifference.mjs";
|
import "./tests/SetDifference.mjs";
|
||||||
@ -101,6 +100,7 @@ import "./tests/LuhnChecksum.mjs";
|
|||||||
import "./tests/CipherSaber2.mjs";
|
import "./tests/CipherSaber2.mjs";
|
||||||
import "./tests/Colossus.mjs";
|
import "./tests/Colossus.mjs";
|
||||||
import "./tests/ParseObjectIDTimestamp.mjs";
|
import "./tests/ParseObjectIDTimestamp.mjs";
|
||||||
|
import "./tests/Unicode.mjs";
|
||||||
|
|
||||||
|
|
||||||
// Cannot test operations that use the File type yet
|
// Cannot test operations that use the File type yet
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
/**
|
|
||||||
* Remove Diacritics tests.
|
|
||||||
*
|
|
||||||
* @author Klaxon [klaxon@veyr.com]
|
|
||||||
* @copyright Crown Copyright 2017
|
|
||||||
* @license Apache-2.0
|
|
||||||
*/
|
|
||||||
import TestRegister from "../../lib/TestRegister.mjs";
|
|
||||||
|
|
||||||
TestRegister.addTests([
|
|
||||||
{
|
|
||||||
name: "Remove Diacritics",
|
|
||||||
input: "\xe0, \xe8, \xec, \xf2, \xf9 \xc0, \xc8, \xcc, \xd2, \xd9\n\xe1, \xe9, \xed, \xf3, \xfa, \xfd \xc1, \xc9, \xcd, \xd3, \xda, \xdd\n\xe2, \xea, \xee, \xf4, \xfb \xc2, \xca, \xce, \xd4, \xdb\n\xe3, \xf1, \xf5 \xc3, \xd1, \xd5\n\xe4, \xeb, \xef, \xf6, \xfc, \xff \xc4, \xcb, \xcf, \xd6, \xdc, \u0178\n\xe5, \xc5",
|
|
||||||
expectedOutput: "a, e, i, o, u A, E, I, O, U\na, e, i, o, u, y A, E, I, O, U, Y\na, e, i, o, u A, E, I, O, U\na, n, o A, N, O\na, e, i, o, u, y A, E, I, O, U, Y\na, A",
|
|
||||||
recipeConfig: [
|
|
||||||
{
|
|
||||||
"op": "Remove Diacritics",
|
|
||||||
"args": []
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
]);
|
|
83
tests/operations/tests/Unicode.mjs
Normal file
83
tests/operations/tests/Unicode.mjs
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
/**
|
||||||
|
* Unicode operation tests.
|
||||||
|
*
|
||||||
|
* @author Matt C [me@mitt.dev]
|
||||||
|
* @author Klaxon [klaxon@veyr.com]
|
||||||
|
*
|
||||||
|
* @copyright Crown Copyright 2020
|
||||||
|
* @license Apache-2.0
|
||||||
|
*/
|
||||||
|
import TestRegister from "../../lib/TestRegister.mjs";
|
||||||
|
|
||||||
|
TestRegister.addTests([
|
||||||
|
{
|
||||||
|
name: "Unicode Text Format: underline",
|
||||||
|
input: "a",
|
||||||
|
expectedOutput: "a\u0332",
|
||||||
|
recipeConfig: [
|
||||||
|
{
|
||||||
|
"op": "Unicode Text Format",
|
||||||
|
"args": [true, false],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Unicode Text Format: strikethrough",
|
||||||
|
input: "a",
|
||||||
|
expectedOutput: "a\u0336",
|
||||||
|
recipeConfig: [
|
||||||
|
{
|
||||||
|
"op": "Unicode Text Format",
|
||||||
|
"args": [false, true],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Unicode Text Format: both",
|
||||||
|
input: "a",
|
||||||
|
expectedOutput: "a\u0336\u0332",
|
||||||
|
recipeConfig: [
|
||||||
|
{
|
||||||
|
"op": "Unicode Text Format",
|
||||||
|
"args": [true, true],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Remove Diacritics: text formatting",
|
||||||
|
input: "a",
|
||||||
|
expectedOutput: "a",
|
||||||
|
recipeConfig: [
|
||||||
|
{
|
||||||
|
"op": "Unicode Text Format",
|
||||||
|
"args": [true, true],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"op": "Remove Diacritics",
|
||||||
|
"args": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Remove Diacritics: all diacritical marks one char",
|
||||||
|
input: "à̴̵̶̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔̽̾̿̀́͂̓̈́̕̚͠͡ͅ", // sorry about this line lol
|
||||||
|
expectedOutput: "a",
|
||||||
|
recipeConfig: [
|
||||||
|
{
|
||||||
|
"op": "Remove Diacritics",
|
||||||
|
"args": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Remove Diacritics: default",
|
||||||
|
input: "\xe0, \xe8, \xec, \xf2, \xf9 \xc0, \xc8, \xcc, \xd2, \xd9\n\xe1, \xe9, \xed, \xf3, \xfa, \xfd \xc1, \xc9, \xcd, \xd3, \xda, \xdd\n\xe2, \xea, \xee, \xf4, \xfb \xc2, \xca, \xce, \xd4, \xdb\n\xe3, \xf1, \xf5 \xc3, \xd1, \xd5\n\xe4, \xeb, \xef, \xf6, \xfc, \xff \xc4, \xcb, \xcf, \xd6, \xdc, \u0178\n\xe5, \xc5",
|
||||||
|
expectedOutput: "a, e, i, o, u A, E, I, O, U\na, e, i, o, u, y A, E, I, O, U, Y\na, e, i, o, u A, E, I, O, U\na, n, o A, N, O\na, e, i, o, u, y A, E, I, O, U, Y\na, A",
|
||||||
|
recipeConfig: [
|
||||||
|
{
|
||||||
|
"op": "Remove Diacritics",
|
||||||
|
"args": []
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]);
|
Loading…
Reference in New Issue
Block a user