Skip to content

Commit 89bdd88

Browse files
authored
Merge pull request #22 from AlphaQuantJS/dev
Dev
2 parents 1e42cad + 02cabd4 commit 89bdd88

File tree

12 files changed

+90
-117
lines changed

12 files changed

+90
-117
lines changed

src/methods/dataframe/filtering/index.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@ export { where } from './where.js';
1818
export { expr$ } from './expr$.js';
1919
export { select } from './select.js';
2020
export { drop } from './drop.js';
21-
export { at } from './at.js';
22-
export { iloc } from './iloc.js';
23-
export { stratifiedSample } from './stratifiedSample.js';
24-
export { head } from './head.js';
25-
export { tail } from './tail.js';
26-
export { sample } from './sample.js';
2721
export { selectByPattern } from './selectByPattern.js';
28-
export { loc } from './loc.js';
2922
export { query } from './query.js';
23+
export { stratifiedSample } from './stratifiedSample.js';

src/methods/dataframe/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import './filtering/index.js';
88
import './display/index.js';
99
import './transform/index.js';
10+
import './indexing/index.js';
1011
// Import other method groups as needed
1112

1213
// Export nothing as methods are attached to DataFrame prototype
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/**
2+
* DataFrame indexing methods
3+
* @module methods/dataframe/indexing
4+
*/
5+
6+
import { DataFrame } from '../../../core/dataframe/DataFrame.js';
7+
import { registerDataFrameIndexing } from './register.js';
8+
9+
// Register all indexing methods on DataFrame
10+
registerDataFrameIndexing(DataFrame);
11+
12+
// Export nothing as methods are attached to DataFrame prototype
13+
export {};

src/methods/dataframe/indexing/register.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import { register as registerSample } from './sample.js';
1313
* Register all indexing methods on DataFrame prototype
1414
* @param {object} DataFrame - DataFrame constructor
1515
*/
16-
export function register(DataFrame) {
16+
export function registerDataFrameIndexing(DataFrame) {
1717
registerAt(DataFrame);
1818
registerHead(DataFrame);
1919
registerTail(DataFrame);

test/methods/dataframe/filtering/index.test.js

Lines changed: 44 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,15 @@
55
import { describe, test, expect } from 'vitest';
66
import { DataFrame } from '../../../../src/core/dataframe/DataFrame.js';
77
import * as filteringMethods from '../../../../src/methods/dataframe/filtering/index.js';
8-
import registerDataFrameFiltering from '../../../../src/methods/dataframe/filtering/register.js';
9-
import { register as registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
8+
import { registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
9+
10+
import {
11+
testWithBothStorageTypes,
12+
createDataFrameWithStorage,
13+
} from '../../../utils/storageTestUtils.js';
14+
15+
// Регистрируем методы индексирования на DataFrame
16+
registerDataFrameIndexing(DataFrame);
1017

1118
// Test data for use in all tests
1219
const testData = [
@@ -18,34 +25,42 @@ const testData = [
1825
];
1926

2027
describe('Filtering Methods Index', () => {
21-
// Register filtering and indexing methods for DataFrame
22-
registerDataFrameFiltering(DataFrame);
23-
registerDataFrameIndexing(DataFrame);
24-
25-
describe('with standard storage', () => {
26-
// Create DataFrame using fromRows
27-
const df = DataFrame.fromRows(testData);
28-
29-
test('should export all filtering methods', () => {
30-
// Check that all expected methods are exported
31-
expect(filteringMethods).toHaveProperty('select');
32-
expect(filteringMethods).toHaveProperty('drop');
33-
expect(filteringMethods).toHaveProperty('selectByPattern');
34-
expect(filteringMethods).toHaveProperty('filter');
35-
expect(filteringMethods).toHaveProperty('query');
36-
expect(filteringMethods).toHaveProperty('where');
37-
expect(filteringMethods).toHaveProperty('stratifiedSample');
38-
});
28+
// Run tests with both storage types
29+
testWithBothStorageTypes((storageType) => {
30+
describe(`with ${storageType} storage`, () => {
31+
// Create DataFrame with the specified storage type
32+
const df = createDataFrameWithStorage(DataFrame, testData, storageType);
33+
34+
test('should export all filtering methods', () => {
35+
// Check that all expected methods are exported
36+
expect(filteringMethods).toHaveProperty('select');
37+
expect(filteringMethods).toHaveProperty('drop');
38+
expect(filteringMethods).toHaveProperty('selectByPattern');
39+
expect(filteringMethods).toHaveProperty('filter');
40+
expect(filteringMethods).toHaveProperty('query');
41+
expect(filteringMethods).toHaveProperty('where');
42+
expect(filteringMethods).toHaveProperty('stratifiedSample');
43+
});
44+
45+
test('should successfully extend DataFrame with filtering methods', () => {
46+
// Create a sample DataFrame
47+
// df was created above using createDataFrameWithStorage
48+
49+
// Check that all filtering methods are available on the DataFrame instance
50+
expect(typeof df.select).toBe('function');
51+
expect(typeof df.drop).toBe('function');
52+
expect(typeof df.selectByPattern).toBe('function');
53+
expect(typeof df.filter).toBe('function');
54+
expect(typeof df.query).toBe('function');
55+
expect(typeof df.where).toBe('function');
56+
expect(typeof df.stratifiedSample).toBe('function');
3957

40-
test('should successfully extend DataFrame with filtering methods', () => {
41-
// Check that all filtering methods are available on the DataFrame instance
42-
expect(typeof df.select).toBe('function');
43-
expect(typeof df.drop).toBe('function');
44-
expect(typeof df.selectByPattern).toBe('function');
45-
expect(typeof df.filter).toBe('function');
46-
expect(typeof df.query).toBe('function');
47-
expect(typeof df.where).toBe('function');
48-
expect(typeof df.stratifiedSample).toBe('function');
58+
// Проверяем, что методы индексирования также доступны (они регистрируются отдельно)
59+
expect(typeof df.at).toBe('function');
60+
expect(typeof df.iloc).toBe('function');
61+
expect(typeof df.loc).toBe('function');
62+
expect(typeof df.sample).toBe('function');
63+
});
4964
});
5065
});
5166
});

test/methods/dataframe/indexing/at.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import { describe, test, expect } from 'vitest';
66
import { DataFrame } from '../../../../src/core/dataframe/DataFrame.js';
7-
import { register as registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
7+
import { registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
88

99
// Test data for use in all tests
1010
const testData = [

test/methods/dataframe/indexing/head.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import { describe, it, expect, vi } from 'vitest';
66
import { DataFrame } from '../../../../src/core/dataframe/DataFrame.js';
7-
import { register as registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
7+
import { registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
88

99
// Test data for use in all tests
1010
const testData = [

test/methods/dataframe/indexing/iloc.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import { describe, test, expect } from 'vitest';
66
import { DataFrame } from '../../../../src/core/dataframe/DataFrame.js';
7-
import { register as registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
7+
import { registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
88

99
// Test data for use in all tests
1010
const testData = [

test/methods/dataframe/indexing/loc.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import { describe, test, expect } from 'vitest';
66
import { DataFrame } from '../../../../src/core/dataframe/DataFrame.js';
7-
import { register as registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
7+
import { registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
88

99
// Test data for use in all tests
1010
const testData = [

test/methods/dataframe/indexing/sample.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import { describe, test, expect } from 'vitest';
66
import { DataFrame } from '../../../../src/core/dataframe/DataFrame.js';
7-
import { register as registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
7+
import { registerDataFrameIndexing } from '../../../../src/methods/dataframe/indexing/register.js';
88

99
// Register indexing methods on DataFrame
1010
registerDataFrameIndexing(DataFrame);

0 commit comments

Comments
 (0)