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.

30 lines (25 loc) 1.32 kB
const { describe, it } = require('node:test'); const assert = require('node:assert'); const Column = require('../../lib/column/index'); describe('Column class (nominal-like)', () => { it('should create a column with valid string values', () => { const column = new Column(['A', 'B', 'A', 'C', 'B', 'A']); assert.deepStrictEqual(column.values, ['A', 'B', 'A', 'C', 'B', 'A']); assert.strictEqual(column.n, 6); }); it('should compute absolute frequencies', () => { const column = new Column(['A', 'B', 'A', 'C', 'B', 'A']); assert.deepStrictEqual(column.frequencies, { A: 3, B: 2, C: 1 }); }); it('should compute relative frequencies', () => { const column = new Column(['A', 'B', 'A', 'C', 'B', 'A']); assert.deepStrictEqual(column.relativeFrequencies, { A: 3 / 6, B: 2 / 6, C: 1 / 6 }); }); it('should respect filtering', () => { const column = new Column(['A', 'B', 'A', 'C', 'B', 'A']); column.filterRows([0, 4]); // Фильтруем элементы 0 и 4 assert.deepStrictEqual(column.values, ['B', 'A', 'C', 'A']); assert.deepStrictEqual(column.frequencies, { A: 2, B: 1, C: 1 }); assert.deepStrictEqual(column.relativeFrequencies, { A: 2 / 4, B: 1 / 4, C: 1 / 4 }); }); });