UNPKG

intelligence

Version:

Machine learning library written in javascript

71 lines (70 loc) 2.83 kB
var intelligence = require('./../src/intelligence'); module.exports = { setUp: function (callback) { this.individualOptions = { minLength: 10, maxLength: 20, geneFactory: intelligence.geneFactories.alphabet }; callback(); }, tearDown: function (callback) { callback(); }, individual_initialiseMissingOptions_throws: function (test) { test.throws(function () { var x = new intelligence.Individual(); }); test.done(); }, individual_initialiseValidOptions_initializesBody: function (test) { var ind = new intelligence.Individual(this.individualOptions); test.ok(ind.body ? true : false); test.done(); }, individual_initialisedWithFixedLengthBody_bodySizeIsCorrect: function (test) { this.individualOptions.minLength = 20; this.individualOptions.maxLength = 20; var ind = new intelligence.Individual(this.individualOptions); test.ok(ind.body.length === 20); test.done(); }, individual_initialisedWithVariableLengthBody_bodySizeIsWithinBounds: function (test) { var ind = new intelligence.Individual(this.individualOptions); test.ok(ind.body.length >= 10 && ind.body.length <= 20); test.done(); }, initialise_afterConstruction_resetsBody: function (test) { var ind = new intelligence.Individual(this.individualOptions); var prevBody = ind.body.slice(0); ind.initialise(); test.notDeepEqual(JSON.stringify(prevBody), JSON.stringify(ind.body)); test.done(); }, initialise_whenCalled_returnsIndividualInstance: function (test) { var ind = new intelligence.Individual(this.individualOptions); var retrned = ind.initialise(); test.equal(retrned, ind); test.done(); }, isFixedLength_whenIndividualIsFixedLength_returnsTrue: function (test) { this.individualOptions.minLength = 10; this.individualOptions.maxLength = 10; var ind = new intelligence.Individual(this.individualOptions); test.ok(ind.isFixedLength()); test.done(); }, isFixedLength_whenIndividualIsNotFixedLength_returnsFalse: function (test) { this.individualOptions.minLength = 10; this.individualOptions.maxLength = 20; var ind = new intelligence.Individual(this.individualOptions); test.ok(!ind.isFixedLength()); test.done(); }, copy_whenBodyHasBeenSet_bodyIsEqual: function (test) { var ind = new intelligence.Individual(this.individualOptions); var copy = ind.copy(); test.ok(JSON.stringify(ind) === JSON.stringify(copy)); test.done(); } };