bling-hashes
Version:
String hash algorithms.
70 lines (61 loc) • 1.78 kB
JavaScript
/**
* XadillaX created at 2015-09-11 12:40:44 With ♥
*
* Copyright (c) 2015 Souche.com, all rights
* reserved.
*/
require("should");
var bling = require("../");
describe("hash algorithm tests", function() {
var words = [];
var algorithms = [
"BKDR",
"AP",
"DJB",
"JS",
"RS",
"SDBM",
"PJW",
"ELF",
"CITY32",
"CITY64",
"CITY128"
];
before(function() {
var fs = require("fs");
var str = fs.readFileSync(__dirname + "/resources/words.txt", { encoding: "utf8" });
var temp = str.split("\n");
for(var i = 0; i < temp.length; i++) {
if(!temp[i]) continue;
var line = temp[i].split(" ");
for(var j = 0; j < line.length; j++) {
if(!line[j]) continue;
words.push(line[j]);
}
}
});
var getProcesser = function(name) {
name = name.toLowerCase();
return function() {
var res = [];
for(var i = 0; i < words.length; i++) {
res.push(bling[name](words[i]));
}
if(name === "city128") {
var fs = require("fs");
fs.writeFileSync(__dirname + "/resources/" + name + ".txt", res.join("\n"), {
encoding: "utf8"
});
return;
}
var fs = require("fs");
var std = fs.readFileSync(__dirname + "/resources/" + name + ".txt", {
encoding: "utf8"
});
res.join("\n").should.be.eql(std);
};
};
for(var i = 0; i < algorithms.length; i++) {
it(algorithms[i] + " Hash", getProcesser(algorithms[i]));
}
});