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

28 lines (24 loc) 874 B
import assert from 'node:assert/strict'; export function nearlyEqual(a, b, tol, msg) { const da = Math.abs(Number(a) - Number(b)); assert.ok(Number.isFinite(da) && da <= tol, `${msg} | expected≈ ${b}, got ${a}, |Δ|=${da} tol=${tol}`); } export function hasDataOrSkip(g) { if (!g.data || !g.data.X || !g.data.Y) { assert.fail('Golden JSON has no "data" field. Regenerate goldens with data included.'); } } export function splitGroups(scoreArr, groupArr, k = 3) { const groups = {}; for (let i = 0; i < k; i++) groups[String(i)] = []; for (let i = 0; i < scoreArr.length; i++) { const gi = String(groupArr[i]); if (groups[gi]) groups[gi].push(scoreArr[i]); } return groups; } export function toRecordFromArray(names, arrays) { const rec = {}; names.forEach((n, i) => { rec[n] = arrays[i]; }); return rec; }