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

31 lines (25 loc) 1.28 kB
import { EPS } from "../settings.js"; import { Analyze } from "../../lib/index.js"; const { Correlate } = Analyze; const { CronbachAlpha } = Correlate; // exported class import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { nearlyEqual, hasDataOrSkip, splitGroups, toRecordFromArray } from '../helpers.js' export function testReliability(g) { const { X, Y, group, score, before, after, Q1, Q2, Q3, Q4 } = g.data; describe('Reliability (Cronbach’s alpha)', () => { it('alpha and alpha-if-deleted', () => { const items = { Q1, Q2, Q3, Q4 }; const alpha = new CronbachAlpha(items); nearlyEqual(alpha.alpha, g.reliability.cronbach_alpha, 5e-6, 'alpha'); // Normalize shapes: library may expose array of [name, value] or an object; compare per-item const libMap = Array.isArray(alpha.ifItemsDeleted) ? Object.fromEntries(alpha.ifItemsDeleted) : alpha.ifItemsDeleted; for (const [k, v] of Object.entries(g.reliability.if_items_deleted)) { assert.ok(k in libMap, `missing alpha-if-deleted for ${k}`); nearlyEqual(libMap[k], v, 1e-5, `alpha_if_deleted ${k}`); } }); }); }