UNPKG

als-statistics

Version:

Modular JS statistics toolkit for Node.js and the browser: descriptive stats, correlations (Pearson/Spearman/Kendall), t-tests & ANOVA (Student/Welch), reliability (Cronbach’s alpha), regression (linear/logistic), clustering (DBSCAN/HDBSCAN), and table/co

44 lines (35 loc) 1.53 kB
import { describe, it } from 'node:test'; import assert from 'node:assert'; import range from '../../lib/utils/range.js'; describe('range utility', () => { it('should correctly generate interval values', () => { const values = range(10, 25, 5); assert.deepStrictEqual(values, [10, 15, 20]); }); it('should handle single step correctly', () => { const values = range(1, 5); assert.deepStrictEqual(values, [1, 2, 3, 4]); }); it('range: стандартный случай', () => { assert.deepEqual(range(0, 5), [0, 1, 2, 3, 4]); assert.deepEqual(range(1, 2), [1]); assert.deepEqual(range(5, 5), []); }); it('range: дробный шаг', () => { const r = range(0, 1, 0.2); // ожидаем приблизительно 0..0.8 assert.equal(r.length >= 5 && r.length <= 6, true); assert.equal(r[0], 0); }); it('range: защита от step<=0', () => { assert.throws(() => range(0, 5, 0), /Invalid array length/i); assert.deepStrictEqual(range(0, 5, -1), []); }); it('range: start>end — либо пустой массив либо throw (зависит от твоей реализации)', () => { // Если ты выбрал бросать — раскомментируй: // assert.throws(() => range(5, 0), /range/i); // Если возвращаешь пустой: const r = range(5, 0); assert.ok(Array.isArray(r)); }); });