Comparing version 1.0.4 to 1.0.5
export * from './lsFinder'; | ||
export * from './lsScan'; | ||
export * from './lsScanR2'; | ||
export * from './lsScanBrute'; | ||
export * from './lsScanRapid'; |
@@ -18,4 +18,4 @@ "use strict"; | ||
__exportStar(require("./lsFinder"), exports); | ||
__exportStar(require("./lsScan"), exports); | ||
__exportStar(require("./lsScanR2"), exports); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQiwyQ0FBeUI7QUFDekIsNkNBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sc0ZpbmRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xzU2Nhbic7XG5leHBvcnQgKiBmcm9tICcuL2xzU2NhblIyJztcbiJdfQ== | ||
__exportStar(require("./lsScanBrute"), exports); | ||
__exportStar(require("./lsScanRapid"), exports); | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUEyQjtBQUMzQixnREFBOEI7QUFDOUIsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sc0ZpbmRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xzU2NhbkJydXRlJztcbmV4cG9ydCAqIGZyb20gJy4vbHNTY2FuUmFwaWQnO1xuIl19 |
export * from './lsFinder'; | ||
export * from './lsScan'; | ||
export * from './lsScanR2'; | ||
export * from './lsScanBrute'; | ||
export * from './lsScanRapid'; |
@@ -5,4 +5,4 @@ import range from 'lodash.range'; | ||
import {lsFind} from './lsFinder'; | ||
import {lsScan} from './lsScan'; | ||
import {lsScanR2} from './lsScanR2'; | ||
import {lsScanBrute} from './lsScanBrute'; | ||
import {lsScanRapid} from './lsScanRapid'; | ||
@@ -34,8 +34,16 @@ function from(random: PRNG, n: number) { | ||
function randomArray(random: PRNG, length: number, range: number) { | ||
const array: number[] = []; | ||
while (array.length < length) { | ||
array.push(from(random, range)); | ||
} | ||
return array; | ||
} | ||
describe('lsCustom.test', () => { | ||
describe('Performs comparison tests', () => range(50).forEach((testNumber: number) => | ||
describe('Comparison tests', () => range(50).forEach((testNumber: number) => | ||
it(`Test ${testNumber}`, () => { | ||
const testData = generateTestData(alea(testNumber.toString()), 10 + testNumber ** 1.7); | ||
console.log(testData); | ||
[lsScan, lsScanR2].forEach(lsFinder => { | ||
[lsScanBrute, lsScanRapid].forEach(lsFinder => { | ||
const label = (lsFinder as any).name; | ||
@@ -49,2 +57,21 @@ console.time(label); | ||
); | ||
describe('Comparison tests with random data', () => range(10).forEach((testNumber: number) => | ||
it(`Test ${testNumber}`, () => { | ||
const testData = randomArray(alea(testNumber.toString()), 3 + testNumber ** 1.9, 1000); | ||
console.log(testData); | ||
let reference: number[]; | ||
[lsScanBrute, lsScanRapid].forEach(lsFinder => { | ||
const label = (lsFinder as any).name; | ||
console.time(label); | ||
const out = lsFind(lsFinder, testData, (a, b) => b > a); | ||
console.timeEnd(label); | ||
if (reference) { | ||
expect(out).to.deep.equal(reference); | ||
} else { | ||
reference = out; | ||
} | ||
}); | ||
})) | ||
); | ||
}); |
import {alea} from 'seedrandom'; | ||
import {expect} from 'chai'; | ||
import {lsFind} from './lsFinder'; | ||
import {lsScan} from './lsScan'; | ||
import {lsScanBrute} from './lsScanBrute'; | ||
@@ -10,5 +10,5 @@ describe('lsScan.test', () => { | ||
describe(`${test.data} -> ${test.expected}`, () => | ||
expect(lsFind(lsScan, test.data, (a, b) => b > a)).to.deep.equal(test.expected)); | ||
expect(lsFind(lsScanBrute, test.data, (a, b) => b > a)).to.deep.equal(test.expected)); | ||
}); | ||
}) | ||
}); |
{ | ||
"name": "ls-custom", | ||
"description": "A Longest Subsequence finder for TS/JS with a preferable runtime to the most commonly\nseen implementation (n logn vs n^2), and that allows clients to supply a custom comparator.", | ||
"version": "1.0.4", | ||
"version": "1.0.5", | ||
"author": "jimblackler@gmail.com", | ||
@@ -6,0 +6,0 @@ "license": "Apache-2.0", |
23961
25
308