UNPKG

enome

Version:

A genome generation and evolution library.

134 lines 12.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var Chance = require("chance"); var _ = require("lodash"); var index_1 = require("../index"); var chance = new Chance(); var Gene = (function () { function Gene(value) { if (value === void 0) { value = chance.floating({ min: 0, max: 1 }); } this.value = value; } Gene.reverseFloat = function (min, max, float) { return index_1.reverseLerp(min, max, float); }; Gene.reverseInt = function (min, max, int) { var i = Math.round(int); return index_1.reverseLerp(min, max, i); }; Gene.reverseNatural = function (min, max, natural) { var n = Math.max(0, natural); return index_1.reverseLerp(min, max, n); }; Gene.reverseBool = function (bool) { if (bool) { return 0.75; } else { return 0.25; } }; Gene.reverseLetter = function (letter) { if (letter.length !== 1) { throw new Error('letter.length must equal 1'); } var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGIJKLMNOPQRSTUVWXYZ'.split(''); return this.reverseElement(letter, letters); }; Gene.reverseLetterLower = function (letter) { if (letter.length !== 1) { throw new Error('letter.length must equal 1'); } var letters = 'abcdefghijklmnopqrstuvwxyz'.split(''); return this.reverseElement(letter, letters); }; Gene.reverseLetterUpper = function (letter) { if (letter.length !== 1) { throw new Error('letter.length must equal 1'); } var letters = 'ABCDEFGIJKLMNOPQRSTUVWXYZ'.split(''); return this.reverseElement(letter, letters); }; Gene.reverseLetterOrSpace = function (letter) { if (letter.length !== 1) { throw new Error('letter.length must equal 1'); } var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGIJKLMNOPQRSTUVWXYZ '.split(''); return this.reverseElement(letter, letters); }; Gene.reverseChar = function (char) { var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()'.split(''); return this.reverseElement(char, chars); }; Gene.reverseElement = function (element, array) { var index = array.indexOf(element); return this.reverseInt(0, array.length, index); }; Gene.reverseElements = function (elements, array) { return this.reverseInt(0, array.length, elements.length); }; Gene.reverseHex = function (hex) { return this.reverseElement(hex, '0123456789abcdef'.split('')); }; Gene.prototype.float = function (min, max, t) { if (t === void 0) { t = this.value; } return index_1.lerp(min, max, t); }; Gene.prototype.int = function (min, max, t) { if (t === void 0) { t = this.value; } return Math.round(index_1.lerp(min, max, t)); }; Gene.prototype.natural = function (min, max, t) { if (t === void 0) { t = this.value; } return Math.max(0, this.int(min, max, t)); }; Gene.prototype.bool = function (t) { if (t === void 0) { t = this.value; } return this.element([true, false], t); }; Gene.prototype.letter = function (t) { if (t === void 0) { t = this.value; } var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGIJKLMNOPQRSTUVWXYZ'.split(''); return this.element(letters, t); }; Gene.prototype.letterOrSpace = function (t) { if (t === void 0) { t = this.value; } var letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGIJKLMNOPQRSTUVWXYZ '.split(''); return this.element(letters, t); }; Gene.prototype.letterLower = function (t) { if (t === void 0) { t = this.value; } var letters = 'abcdefghijklmnopqrstuvwxyz'.split(''); return this.element(letters, t); }; Gene.prototype.letterUpper = function (t) { if (t === void 0) { t = this.value; } var letters = 'ABCDEFGIJKLMNOPQRSTUVWXYZ'.split(''); return this.element(letters, t); }; Gene.prototype.char = function (t) { if (t === void 0) { t = this.value; } var chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()'.split(''); return this.element(chars, t); }; Gene.prototype.element = function (array, t) { if (t === void 0) { t = this.value; } return array[this.int(0, array.length - 1, t)]; }; Gene.prototype.elements = function (array, t) { if (t === void 0) { t = this.value; } return _.take(array, this.int(0, array.length, t)); }; Gene.prototype.randomElements = function (array, t) { if (t === void 0) { t = this.value; } return _.take(chance.shuffle(array), this.int(0, array.length, t)); }; Gene.prototype.hex = function (t) { if (t === void 0) { t = this.value; } var hex = '0123456789abcdef'.split(''); return this.element(hex); }; return Gene; }()); exports.Gene = Gene; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nZW5vdHlwZXMvZ2VuZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtCQUFpQztBQUNqQywwQkFBNEI7QUFDNUIsa0NBQTZDO0FBRTdDLElBQU0sTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7QUFFNUI7SUE4RkUsY0FBbUIsS0FBbUQ7UUFBbkQsc0JBQUEsRUFBQSxRQUFnQixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFBbkQsVUFBSyxHQUFMLEtBQUssQ0FBOEM7SUFBRyxDQUFDO0lBN0Y1RCxpQkFBWSxHQUExQixVQUEyQixHQUFXLEVBQUUsR0FBVyxFQUFFLEtBQWE7UUFDaEUsTUFBTSxDQUFDLG1CQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRWEsZUFBVSxHQUF4QixVQUF5QixHQUFXLEVBQUUsR0FBVyxFQUFFLEdBQVc7UUFDNUQsSUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixNQUFNLENBQUMsbUJBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFYSxtQkFBYyxHQUE1QixVQUNFLEdBQVcsRUFDWCxHQUFXLEVBQ1gsT0FBZTtRQUVmLElBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxtQkFBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVhLGdCQUFXLEdBQXpCLFVBQTBCLElBQWE7UUFJckMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZ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