mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-16 21:37:59 +08:00
First cut at test for stateManager/world. Test data for REST responses factored out into separate file for shared use by Universe and World tests. Also cleaned up some debugging code.
117 lines
2.6 KiB
JavaScript
117 lines
2.6 KiB
JavaScript
/* eslint no-bitwise: "off" */
|
|
import _ from "lodash";
|
|
|
|
/*
|
|
test data mocking REST 0.2 API responses. Used in several tests.
|
|
*/
|
|
const nObs = 10;
|
|
const nVar = 32;
|
|
const field4Categories = [83, true, "foo", 2.222222];
|
|
const fieldDCategories = [99, false, "mumble", 3.1415];
|
|
|
|
const aConfigResponse = {
|
|
config: {
|
|
features: [
|
|
{ method: "POST", path: "/cluster/", available: false },
|
|
{ method: "POST", path: "/layout/", available: false },
|
|
{ method: "POST", path: "/diffexp/", available: false },
|
|
{ method: "POST", path: "/saveLocal/", available: false }
|
|
],
|
|
displayNames: {
|
|
engine: "the little engine that could",
|
|
dataset: "all your zeros are mine"
|
|
}
|
|
}
|
|
};
|
|
|
|
const aSchemaResponse = {
|
|
schema: {
|
|
dataframe: {
|
|
nObs,
|
|
nVar,
|
|
type: "float32"
|
|
},
|
|
annotations: {
|
|
obs: [
|
|
{ name: "name", type: "string" },
|
|
{ name: "field1", type: "int32" },
|
|
{ name: "field2", type: "float32" },
|
|
{ name: "field3", type: "boolean" },
|
|
{
|
|
name: "field4",
|
|
type: "categorical",
|
|
categories: field4Categories
|
|
}
|
|
],
|
|
var: [
|
|
{ name: "name", type: "string" },
|
|
{ name: "fieldA", type: "int32" },
|
|
{ name: "fieldB", type: "float32" },
|
|
{ name: "fieldC", type: "boolean" },
|
|
{
|
|
name: "fieldD",
|
|
type: "categorical",
|
|
categories: fieldDCategories
|
|
}
|
|
]
|
|
}
|
|
}
|
|
};
|
|
|
|
const anAnnotationsObsResponse = {
|
|
names: ["name", "field1", "field2", "field3", "field4"],
|
|
data: _()
|
|
.range(nObs)
|
|
.map(idx => [
|
|
idx,
|
|
`obs${idx}`,
|
|
2 * idx,
|
|
idx + 0.0133,
|
|
!!(idx & 1),
|
|
field4Categories[idx % field4Categories.length]
|
|
])
|
|
.value()
|
|
};
|
|
|
|
const anAnnotationsVarResponse = {
|
|
names: ["fieldA", "fieldB", "fieldC", "fieldD", "name"],
|
|
data: _()
|
|
.range(nVar)
|
|
.map(idx => [
|
|
idx,
|
|
10 * idx,
|
|
idx + 2.90143,
|
|
!!(idx & 1),
|
|
fieldDCategories[idx % fieldDCategories.length],
|
|
`var${idx}`
|
|
])
|
|
.value()
|
|
};
|
|
|
|
const aLayoutResponse = {
|
|
layout: {
|
|
ndims: 2,
|
|
coordinates: _()
|
|
.range(nObs)
|
|
.map(idx => [idx, Math.random(), Math.random()])
|
|
.value()
|
|
}
|
|
};
|
|
|
|
const aDataObsResponse = {
|
|
var: [2, 4, 29],
|
|
obs: _()
|
|
.range(nObs)
|
|
.map(idx => [idx, Math.random(), Math.random(), Math.random()])
|
|
.value()
|
|
};
|
|
|
|
export {
|
|
aLayoutResponse as layoutObs,
|
|
aDataObsResponse as dataObs,
|
|
anAnnotationsVarResponse as annotationsVar,
|
|
anAnnotationsObsResponse as annotationsObs,
|
|
aSchemaResponse as schema,
|
|
aConfigResponse as config
|
|
};
|