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.22 kB
JavaScript
const { describe, it } = require('node:test');
const assert = require('node:assert');
const BaseColumn = require('../../lib/column/base');
const ColumnFilter = require('../../lib/table/filter');
describe('BaseColumn - New Features', () => {
it('should count values with filter applied', () => {
const filter = new ColumnFilter();
filter.filterRows([1, 3]); // Фильтруем индексы 1 и 3
const column = new BaseColumn([10, 20, 30, 40, 50], filter);
const count = column.count((x) => x > 15, true);
assert.deepStrictEqual(count, [30, 50]); // 20 и 40 отфильтрованы
});
it('should count all values when filtered=false', () => {
const filter = new ColumnFilter();
filter.filterRows([1, 3]);
const column = new BaseColumn([10, 20, 30, 40, 50], filter);
const count = column.count((x) => x > 15, false);
assert.deepStrictEqual(count, [20, 30, 40, 50]);
});
it('should return empty array when no values match', () => {
const column = new BaseColumn([10, 20, 30], null);
const count = column.count((x) => x > 50);
assert.deepStrictEqual(count, []);
});
});