You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.9 KiB
83 lines
1.9 KiB
/** |
|
* Tests are taken from Text-Unidecode-0.04/test.pl |
|
* |
|
* @see <http://search.cpan.org/~sburke/Text-Unidecode-0.04/lib/Text/Unidecode.pm> |
|
*/ |
|
|
|
'use strict'; |
|
|
|
/* global describe, it */ |
|
|
|
var assert = require('assert'); |
|
var unidecode = require('../unidecode'); |
|
|
|
describe('# Purity tests', function(){ |
|
var code; |
|
var tests = []; |
|
|
|
for(code=0; code<=127; code++) { |
|
tests.push(String.fromCharCode(code)); |
|
} |
|
tests.forEach(function(test) { |
|
it(test.charCodeAt(0).toString(16) + ' ' + test, function(){ |
|
var exp = test; |
|
var res = unidecode(exp); |
|
assert.equal(res, exp); |
|
}); |
|
}); |
|
}); |
|
|
|
describe('# Basic string tests', function(){ |
|
|
|
var tests = [ |
|
"", |
|
1/10, |
|
"I like pie.", |
|
"\n", |
|
"\r\n", // "\cm\cj" - perl control chars Ctrl+M, CTRL+J === \r\n |
|
"I like pie.\n", |
|
]; |
|
|
|
tests.forEach(function(test) { |
|
it(test, function(){ |
|
var exp = test; |
|
var res = unidecode(test.toString()); |
|
assert.equal(res, exp); |
|
}); |
|
}); |
|
}); |
|
|
|
describe('# Complex tests', function(){ |
|
|
|
var tests = [ |
|
["\u00C6neid", "AEneid"], |
|
["\u00E9tude", "etude"], |
|
["\u5317\u4EB0", "Bei Jing "], |
|
// Chinese |
|
["\u1515\u14c7\u14c7", "shanana"], |
|
// Canadian syllabics |
|
["\u13d4\u13b5\u13c6", "taliqua"], |
|
// Cherokee |
|
["\u0726\u071b\u073d\u0710\u073a", "ptu'i"], |
|
// Syriac |
|
["\u0905\u092d\u093f\u091c\u0940\u0924", "abhijiit"], |
|
// Devanagari |
|
["\u0985\u09ad\u09bf\u099c\u09c0\u09a4", "abhijiit"], |
|
// Bengali |
|
["\u0d05\u0d2d\u0d3f\u0d1c\u0d40\u0d24", "abhijiit"], |
|
// Malayalaam |
|
["\u0d2e\u0d32\u0d2f\u0d3e\u0d32\u0d2e\u0d4d", "mlyaalm"], |
|
// the Malayaalam word for "Malayaalam" |
|
// Yes, if we were doing it right, that'd be "malayaalam", not "mlyaalm" |
|
["\u3052\u3093\u307e\u3044\u8336", "genmaiCha "], |
|
// Japanese, astonishingly unmangled. |
|
]; |
|
|
|
tests.forEach(function(test) { |
|
it(test[0] + '-->' + test[1], function(){ |
|
var exp = test[1]; |
|
var res = unidecode(test[0]); |
|
assert.equal(res, exp); |
|
}); |
|
}); |
|
}); |