1
0
Fork 0
forked from External/ergo

fix an edge case in skeletonization

'm' skeletonizes to 'rn' (but is exempted by the isBoring check),
but the fullwidth 'm' does not skeletonize to anything. The root cause
of this is the (still unexplained) patchiness of the skeleton mapping
for fullwidth -> standard-width Latin characters; the fix is to perform
width mapping first, before either skeletonization or isBoring.
This commit is contained in:
Shivaram Lingamneni 2019-06-18 02:34:16 -04:00
parent 8991846fcf
commit be4d098945
2 changed files with 8 additions and 4 deletions

View file

@ -181,6 +181,10 @@ func TestSkeleton(t *testing.T) {
t.Errorf("after skeletonizing, we should casefold")
}
if skeleton("sm") != "smt" {
t.Errorf("our friend lover successfully tricked the skeleton algorithm!")
}
if skeleton("еvan") != "evan" {
t.Errorf("we must protect against cyrillic homoglyph attacks")
}