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
JavaScript
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));
});
});