commit 3fae1182da53d90cf7525168b2aadc7a5d832842
parent 3f1bfede77139446a6732fda189f5d66a3b6ff13
Author: Anthony <aarroyo@appliedminds.com>
Date: Fri, 2 Feb 2018 11:09:19 -0800
update names
Diffstat:
D | nom.js | | | 360 | ------------------------------------------------------------------------------- |
M | test/main.js | | | 2 | +- |
2 files changed, 1 insertion(+), 361 deletions(-)
diff --git a/nom.js b/nom.js
@@ -1,360 +0,0 @@
-'use strict';
-
-/*
- * Utility methods
- */
-
-//var bn = require('bignum');
-var bnjs = require('bn.js');
-
-var raku = [
- 3077398253,
- 3995603712,
- 2243735041,
- 1261992695
-];
-
-var prefix = "dozmarbinwansamlitsighidfidlissogdirwacsabwissibrigsoldopmodfoglidhopdardorlorhodfolrintogsilmirholpaslacrovlivdalsatlibtabhanticpidtorbolfosdotlosdilforpilramtirwintadbicdifrocwidbisdasmidloprilnardapmolsanlocnovsitnidtipsicropwitnatpanminritpodmottamtolsavposnapnopsomfinfonbanmorworsipronnorbotwicsocwatdolmagpicdavbidbaltimtasmalligsivtagpadsaldivdactansidfabtarmonranniswolmispallasdismaprabtobrollatlonnodnavfignomnibpagsopralbilhaddocridmocpacravripfaltodtiltinhapmicfanpattaclabmogsimsonpinlomrictapfirhasbosbatpochactidhavsaplindibhosdabbitbarracparloddosbortochilmactomdigfilfasmithobharmighinradmashalraglagfadtopmophabnilnosmilfopfamdatnoldinhatnacrisfotribhocnimlarfitwalrapsarnalmoslandondanladdovrivbacpollaptalpitnambonrostonfodponsovnocsorlavmatmipfip"
-
-var suffix = "zodnecbudwessevpersutletfulpensytdurwepserwylsunrypsyxdyrnuphebpeglupdepdysputlughecryttyvsydnexlunmeplutseppesdelsulpedtemledtulmetwenbynhexfebpyldulhetmevruttylwydtepbesdexsefwycburderneppurrysrebdennutsubpetrulsynregtydsupsemwynrecmegnetsecmulnymtevwebsummutnyxrextebfushepbenmuswyxsymselrucdecwexsyrwetdylmynmesdetbetbeltuxtugmyrpelsyptermebsetdutdegtexsurfeltudnuxruxrenwytnubmedlytdusnebrumtynseglyxpunresredfunrevrefmectedrusbexlebduxrynnumpyxrygryxfeptyrtustyclegnemfermertenlusnussyltecmexpubrymtucfyllepdebbermughuttunbylsudpemdevlurdefbusbeprunmelpexdytbyttyplevmylwedducfurfexnulluclennerlexrupnedlecrydlydfenwelnydhusrelrudneshesfetdesretdunlernyrsebhulrylludremlysfynwerrycsugnysnyllyndyndemluxfedsedbecmunlyrtesmudnytbyrsenwegfyrmurtelreptegpecnelnevfes"
-
-var getsyllable = function(s, i) {
- return s.slice(i * 3, (i * 3) + 3);
-};
-
-var getprefix = function(i) {
- return getsyllable(prefix, i);
-};
-
-var getsuffix = function(i) {
- return getsyllable(suffix, i);
-};
-
-var getsyllableindex = function(str, syl) {
- var i = str.indexOf(syl);
- if (i < 0) {
- return;
- };
- return i / 3
-};
-
-var getprefixindex = function(syl) {
- return getsyllableindex(prefix, syl);
-};
-
-var getsuffixindex = function(syl) {
- return getsyllableindex(suffix, syl);
-};
-
-var wordtonum = function(word) {
- if (word.length == 3) {
- return 1 * getsuffixindex(word);
- } else if (word.length == 6) {
- var addr = getprefixindex(word.slice(0, 2));
- addr = addr * 0x100;
- addr = addr + getsuffixindex(word.slice(3, 5));
- return addr;
- } else {
- return;
- }
-};
-
-var feen = function(pyn) {
- var f = 4294967295
- if (pyn >= 0x10000 && pyn <= 0xFFFFFFFF) {
- var tmp = fice(pyn - 0x10000) + 0x10000;
- return tmp;
- }
- if (pyn >= 0x100000000 && pyn <= 0xffffffffffffffff) {
- var pynBn = new bnjs(pyn);
- var lo = pynBn.and(f);
- var hi = pynBn.and('18446744069414584000');
- return hi.or(feen(lo)).toNumber();
- }
- return pyn;
-}
-
-var fend = function(cry) {
- if (cry >= 0x10000 && cry <= 0xFFFFFFFF) {
- var res = new bnjs(teil(cry - 0x10000));
- res = res.add(new bnjs(65536)).toNumber();
- return res;
- };
- if (cry >= 0x100000000 && cry <= bn(0xffffffffffffffff)) {
- var cryBn = new bnjs(cry);
- var lo = cryBn.and(new bnjs('0xFFFFFFFF'));
- var hi = cryBn.and(new bnjs('0xffffffff00000000'));
- var res = hi.or(fend(lo));
- return res.toNumber();
- };
- return cry;
-};
-
-var fice = function(nor) {
- var sel = [
- nor % 65535,
- nor / 65535
- ];
- for (var i = 0; i < 4; i++) {
- sel = rynd(i, sel[0], sel[1]);
- };
-
- var res = 65535 * sel[0] + sel[1];
- return res;
-};
-
-var teil = function(vip) {
- var sel = [
- vip % 65535,
- vip / 65535
- //vip % 0xFFFF,
- //vip / 0x10000
- ];
- // maybe the for loops got borked in lua conversion
- for (var i = 3; i > -1; i--) {
- sel = rund(i, sel[0], sel[1]);
- };
- //var res = bn(bn(0xFFFF).mul(sel[0])).add(sel[1]);
- var r1 = new bnjs(65535);
- var res = r1.mul(new bnjs(sel[0])).add(new bnjs(sel[1]));
- return res.toNumber();
-};
-
-var rynd = function(n, l, r) {
- l = Math.floor(l);
- var res = [r, 0];
- var m = new bnjs(65536);
- if (n % 2 == 0) {
- m = new bnjs(65535);
- };
- //res[1] = (bn(muk(raku[n], 2, r)).add(l)) % m;
- var r1 = new bnjs(muk(raku[n], 2, r));
- var r2 = r1.add(new bnjs(l)).mod(m);
- res[1] = r2.toNumber();
- return res
-};
-
-var rund = function(n, l, r) {
- l = Math.floor(l);
- var res = [r, 0];
- var m = new bnjs(65536);
- if (n % 2 == 0) {
- m = new bnjs(65535);
- };
- var h = new bnjs(muk(raku[n], 2, r));
- var r1 = new bnjs(m + l);
- var r2 = r1.sub(h.mod(m)).mod(m).toString();
- res[1] = r2;
- return res
-};
-
-var muk = function(syd, len, key) {
- //key = bn(key);
- var lo = key & 0xFF;
- var hi = (key & 0xFF00) / 256;
- var res = murmur3(String.fromCharCode(lo) + String.fromCharCode(hi), syd);
- return res;
-};
-
-var murmur3 = function(data, seed) {
- if (!seed) {
- seed = 0;
- }
- var c1 = new bnjs(3432918353);
- var c2 = new bnjs(461845907);
-
- var f = 4294967295
-
- var length = new bnjs(data.length);
- var h1 = new bnjs(seed);
- var k1;
- var roundedEnd = length & 0xFFFFFFFC;
- // this will likely need to be redone with bignum
- for (var i = 0; i < roundedEnd; i += 4) {
- var x = data.charCodeAt(i + 3) ? data.charCodeAt(i + 3) : 0;
- k1 = bn(data.charCodeAt(i) & 0xFF)
- | ((data.charCodeAt(i + 1) & 0xFF) << 8)
- | ((data.charCodeAt(i + 2) & 0xFF) << 16)
- | (x << 24);
- k1 = k1 * c1;
- k1 = (k1 << 15) | ((k1 & 0xFFFFFFFF) >> 17);
- k1 = k1 * c2;
- h1 = h1 ^ k1;
- h1 = (h1 << 13) | ((h1 & 0xFFFFFFFF) >> 19);
- h1 = h1 * 5 + 3864292196;
- };
-
- k1 = 0;
- var val = length & 0x03;
- if (val == 3) {
- k1 = (data.charCodeAt(roundedEnd + 2) & 0xFF) << 16;
- };
- if (val == 3 || val == 2) {
- k1 = k1 | (data.charCodeAt(roundedEnd + 1) & 0xFF) << 8;
- };
- if (val == 3 || val == 2 || val == 1) {
- k1 = k1 | (data.charCodeAt(roundedEnd) & 0xFF);
- k1 = new bnjs(k1 * c1);
- var k2 = new bnjs(k1.and(new bnjs(f)).shrn(17));
- k1 = k1.shln(15).or(k2);
- k1 = k1.mul(c2);
- h1 = h1.xor(k1);
- };
- h1 = h1.xor(length);
- h1 = h1.xor(h1.and(new bnjs(f)).shrn(16));
- h1 = h1.mul(new bnjs(2246822507));
- h1 = h1.xor(h1.and(new bnjs(f)).shrn(13));
- h1 = h1.mul(new bnjs(3266489909));
- h1 = h1.xor(h1.and(new bnjs(f)).shrn(16));
- return h1.and(new bnjs(f)).toNumber();
-};
-
-/*
- * Public methods
- * -- toAddress ( ship name )
- * -- => address number
- * -- to{Galaxy,Star,Planet}Ship ( address number )
- * -- => ship name
- * ####################### NOT YET IMPLEMENTED ##########################
- * -- clan ( ship name or address number (int or bn) )
- * -- => "galaxy", "star", "planet", "moon" or "comet"
- * -- sein ( ship name or address number (int or bn) )
- * -- => parent name or address number
- *
- */
-
-var toAddress = function(name, unscramble) {
- if (!unscramble) {
- unscramble = true;
- };
- // our method of planet discovery needs hep
- name = name.replace(/~/g, '');
- if (name.length == 3) {
- return getsuffixindex(name);
- } else if (name.length == 6) {
- var addr = getprefixindex(name.slice(0, 3));
- addr = addr * 256;
- addr = addr + getsuffixindex(name.slice(3, name.length));
- return addr;
- } else if (name.length == 13) {
- var addr = toAddress(name.slice(0, 6));
- addr = addr * 65536;
- addr = addr + toAddress(name.slice(7, addr.length));
- if (unscramble) {
- addr = fend(addr);
- };
- return addr;
- } else {
- return;
- }
-};
-
-
-//var toAddress = function(name) {
-// var nome = name.replace(/~|-/g, '');
-// var lent = nome.length;
-//
-// if (lent % 3 != 0) {
-// return;
-// }
-//
-// var syls = lent / 3;
-// if (syls > 1 && syls % 2 != 0) {
-// return;
-// }
-//
-// if (syls == 1) {
-// return bn(wordtonum(nome))
-// } else if (syls >= 4 && syls <= 8) {
-// var padr = wordtonum(nome.slice(lent - 12, lent - 6));
-// padr = padr * 256
-// padr = padr + wordtonum(nome.slice(lent - 6, lent));
-// padr = fend(padr);
-//
-// if (syls == 4) {
-// return padr;
-// };
-//
-// var addr = 0;
-// for (var i = 0; i <= syls - 6; i += 2) {
-// addr = addr + wordtonum(nome.slice(i * 3, i * 3 + 6));
-// addr = addr * 0x10000;
-// };
-// return (addr * 0x10000) + padr;
-// } else {
-// var addr = 0;
-//
-// for (var i = 0; i <= syls - 2; i +=2) {
-// addr = addr * 0x10000;
-// addr = addr + wordtonum(nome.slice(i * 3, i * 3 + 6));
-// };
-// return addr;
-// }
-//
-//}
-
-var toGalaxyName = function(galaxy) {
- return toShipName(galaxy, 1);
-};
-
-var toStarName = function(star) {
- return toShipName(star, 2);
-};
-
-// better ES6 better way to do this
-var toPlanetName = function(scrambled, scramble) {
- if (!scramble) {
- scramble = true;
- }
- return toShipName(scrambled, 4, scramble);
-};
-
-var toShipName = function(addr, minBytes, scramble) {
- if (!scramble) {
- scramble = true;
- };
-
- if (!minBytes) {
- if (addr < 0x100) {
- minBytes = 1;
- } else if (addr < 0x10000) {
- minBytes = 2;
- } else {
- minBytes = 4;
- }
- }
-
- if (minBytes == 4 && scramble) {
- addr = feen(addr);
- };
-
- var name = ""
- for (var i = 0; i < minBytes; i ++) {
- var byt = Math.floor(addr % 256);
- var syllable = "";
- if (i % 2 == 1) {
- syllable = getprefix(byt);
- } else {
- syllable = getsuffix(byt);
- }
- if (i == 2) {
- name = "-" + name
- };
- name = syllable + name;
- addr = addr / 256;
- };
- return name;
-};
-
-module.exports = {
- toAddress: toAddress,
- toGalaxyName: toGalaxyName,
- toStarName: toStarName,
- toPlanetName: toPlanetName,
- _wordtonum: wordtonum,
- _getsuffix: getsuffix,
- _muk: muk,
- _feen: feen,
- _fend: fend,
- _teil: teil
-};
diff --git a/test/main.js b/test/main.js
@@ -1,5 +1,5 @@
//var assert = require('assert');
-var nom = require('../nom');
+var nom = require('../index.js');
//var bn = require('bignum');
exports['test that stops execution'] = function(assert) {