UNPKG

als-statistics

Version:

A powerful and lightweight JavaScript library for descriptive statistics, regression, clustering, outlier detection, and noise analysis using a flexible table/column architecture.

38 lines (32 loc) 1.48 kB
const { describe, it } = require('node:test'); const assert = require('node:assert'); const Column = require('../../lib/column/index'); describe('Column class (ordinal-like)', () => { it('should create a column with valid values', () => { const column = new Column([3, 1, 4, 2]); assert.deepStrictEqual(column.values, [3, 1, 4, 2]); }); it('should sort numeric values correctly', () => { const column = new Column([3, 1, 4, 2]); assert.deepStrictEqual(column.sorted, [1, 2, 3, 4]); }); it('should sort string values correctly', () => { const column = new Column(['Bronze', 'Gold', 'Silver', 'Platinum']); assert.deepStrictEqual(column.sorted, ['Bronze', 'Gold', 'Platinum', 'Silver']); }); it('should calculate percentile correctly', () => { const column = new Column([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]); assert.strictEqual(column.percentile(50), 50); assert.strictEqual(column.percentile(25), 30); assert.strictEqual(column.percentile(75), 70); }); it('should return correct median', () => { const column = new Column([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]); assert.strictEqual(column.median, 50); }); it('should return correct quartiles', () => { const column = new Column([10, 20, 30, 40, 50, 60, 70, 80, 90, 100]); assert.strictEqual(column.q1, 30); assert.strictEqual(column.q3, 70); }); });