// Run with Node.js: node verify-apa-descriptive.mjs // Place apa-descriptive-data.csv beside this file. Synthetic teaching data. import fs from 'node:fs'; const rows = fs.readFileSync(new URL('./apa-descriptive-data.csv', import.meta.url), 'utf8').trim().split(/\r?\n/).slice(1).map(row => row.split(',')); for (const group of ['A', 'B']) { const values = rows.filter(row => row[0] === group).map(row => Number(row[1])); const n = values.length; const mean = values.reduce((sum, x) => sum + x, 0) / n; const sd = Math.sqrt(values.reduce((sum, x) => sum + (x - mean) ** 2, 0) / (n - 1)); if (n !== 5 || mean !== (group === 'A' ? 12 : 16) || Math.abs(sd - Math.sqrt(10)) > 1e-12) throw new Error('Unexpected reference result'); console.log({ group, n, mean: mean.toFixed(2), sampleSD: sd.toFixed(2) }); }