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
JavaScript
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 });
});
});