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

34 lines (28 loc) 1.58 kB
import test from 'node:test'; import assert from 'node:assert/strict'; import Stats from '../../lib/descriptive/index.js'; test('relativeFrequencies: использует переданные frequencies как есть', () => { const values = [1, 1, 2, 3, 3, 3]; const freq = { 1: 2, 2: 1, 3: 3 }; const rf = Stats.relativeFrequencies({ values, frequencies: freq }); assert.deepEqual(rf, { 1: 2 / 6, 2: 1 / 6, 3: 3 / 6 }); }); test('relativeDispersion: median=0 → 0 независимо от std', () => { const r = Stats.relativeDispersion({ values: [0, 1, 2], median: 0, stdDev: 10 }); assert.equal(r, 0); }); test('iqr: если заданы q1/q3 — возвращает их разницу без перерасчёта', () => { const v = [1, 2, 3, 4, 5]; const i = Stats.iqr({ values: v, q1: 2, q3: 4 }); assert.equal(i, 2); }); test('outliersIQR: с заранее вычисленными q1/q3/iqr', () => { const values = [1, 2, 3, 4, 100]; const res = Stats.outliersIQR({ values, q1: 2, q3: 4, iqr: 2 }); assert.deepStrictEqual(res, [100]); // ниже 2-1.5*2 = -1 → 1 является выбросом? (будет < lowerBound) и 100 > upperBound=7 }); test('outliersIQR: с заранее вычисленными q1/q3/iqr', () => { const values = [1, 2, 3, 4,5,8, 100]; const res = Stats.outliersIQR({ values }); assert.deepStrictEqual(res, [100]); // ниже 2-1.5*2 = -1 → 1 является выбросом? (будет < lowerBound) и 100 > upperBound=7 });