mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-21 07:28:12 +08:00
* initial dataframe commit * initial dataframe port of core app * rename variables for clarity * remove unused import * comment out unused code * fix array handling bug in crossfilter dimension creation * allow creation of empty dataframes * handle non-existent columns * handle non-existent columns * revise tests for new dataframe * comments for clarity * comments for clarity * generate bulk add placeholder with real gene names * fix bug in gene name adding * more dataframe unit tests * fix bug - subset from current world, not universe * put cut and pasted code into a single function * improve caching of crossfilter * remove cascading update bug from graph * more performance work * improve state handling for scatterplot * performance optimization of critical path * add column summarization * dataframe utils * add callOnceLazy * fix tests * minor updates found during review * fix misspelling * remove RESTv02 from function names * comment cleanup * cut/icut col parameter defaults to null * break up large test * improve tests and comments on dataframe at/has functions
63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
import {
|
|
countCategoryValues2D,
|
|
clearCaches
|
|
} from "../../../src/util/stateManager/worldUtil";
|
|
import * as Dataframe from "../../../src/util/dataframe";
|
|
|
|
describe("WorldUtil cache management", () => {
|
|
test("empty", () => {
|
|
const count = countCategoryValues2D(
|
|
"a",
|
|
"b",
|
|
new Dataframe.Dataframe([0, 0], [])
|
|
);
|
|
expect(count).toMatchObject(new Map());
|
|
expect(count.size).toBe(0);
|
|
});
|
|
|
|
test("simple couts", () => {
|
|
const df = new Dataframe.Dataframe(
|
|
[3, 2],
|
|
[[0, 0, 1], [false, true, false]],
|
|
null,
|
|
new Dataframe.KeyIndex(["a", "b"])
|
|
);
|
|
const count = countCategoryValues2D("a", "b", df);
|
|
expect(count).toMatchObject(
|
|
new Map([
|
|
[0, new Map([[true, 1], [false, 1]])],
|
|
[1, new Map([[false, 1]])]
|
|
])
|
|
);
|
|
});
|
|
|
|
test("memo cache clear", () => {
|
|
clearCaches();
|
|
const df1 = new Dataframe.Dataframe([0, 0], []);
|
|
const df2 = new Dataframe.Dataframe(
|
|
[3, 2],
|
|
[[0, 0, 1], [false, true, false]],
|
|
null,
|
|
new Dataframe.KeyIndex(["a", "b"])
|
|
);
|
|
|
|
const count1 = countCategoryValues2D("a", "b", df1);
|
|
const count2 = countCategoryValues2D("a", "b", df1);
|
|
const count3 = countCategoryValues2D("a", "b", df1.clone());
|
|
const count4 = countCategoryValues2D("a", "b", df2);
|
|
|
|
clearCaches();
|
|
const count10 = countCategoryValues2D("a", "b", df1);
|
|
const count11 = countCategoryValues2D("a", "b", df2);
|
|
|
|
expect(count1).toEqual(count2);
|
|
expect(count1).toEqual(count3);
|
|
expect(count1).toEqual(count10);
|
|
expect(count1).not.toBe(count3);
|
|
expect(count1).not.toBe(count10);
|
|
|
|
expect(count4).toEqual(count11);
|
|
expect(count4).not.toBe(count11);
|
|
});
|
|
});
|