-
Notifications
You must be signed in to change notification settings - Fork 526
/
Copy pathdata.js
108 lines (97 loc) · 2.57 KB
/
data.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
/*eslint-disable no-magic-numbers*/
import { range } from "lodash";
import seedrandom from "seedrandom";
// const polarData = [
// { x: 45, y: 2 },
// { x: 90, y: 3 },
// { x: 135, y: 5 },
// { x: 180, y: 4 },
// { x: 225, y: 7 },
// { x: 270, y: 2 },
// { x: 315, y: 4 },
// { x: 360, y: 7 }
// ];
const getTimeData = (num, seed) => {
seed = seed || "getData";
const baseSeed = seedrandom(seed);
const rand = () => baseSeed.quick() * 10;
const current = 1523389495000;
return range(num).map((v) => {
return {
x: new Date((current / num) * (v + 1)),
y: rand()
};
});
};
const getData = (num, seed, max = 10) => {
seed = seed || "getData";
const baseSeed = seedrandom(seed);
const rand = () => baseSeed.quick() * max;
return range(num).map((v) => ({ x: v + 1, y: rand() }));
};
const getDescendingSmallData = () => {
return [
{ x: 1, y: 2 },
{ x: 2, y: 1 },
{ x: 3, y: 0.5 },
{ x: 4, y: 0.2 },
{ x: 5, y: 0.1 },
{ x: 6, y: -0.1 },
{ x: 7, y: -0.2 },
{ x: 8, y: -0.5 },
{ x: 9, y: -1 },
{ x: 10, y: -2 }
];
};
const getStringData = (num, seed) => {
seed = seed || "getData";
const baseSeed = seedrandom(seed);
const rand = () => baseSeed.quick() * 10;
return range(num).map((v) => ({ x: `#${v + 1}`, y: rand() }));
};
const getLogData = (num, seed) => {
seed = seed || "getData";
const baseSeed = seedrandom(seed);
const rand = () => baseSeed.quick() * 100000;
return range(num).map((v) => ({ x: v + 1, y: rand() }));
};
const getMixedData = (num, seed) => {
seed = seed || "getMixedData";
const baseSeed = seedrandom(seed);
const rand = () => baseSeed.quick() * 10 - 5;
return range(num).map((v) => ({ x: v + 1, y: rand() }));
};
const getFourQuadrantData = (num, seed) => {
seed = seed || "getMixedData";
const baseSeed = seedrandom(seed);
const rand = () => baseSeed.quick() * 10 - 5;
return range(num).map((v) => ({ x: v - Math.round(num / 2), y: rand() }));
};
const getArrayData = (num, samples) => {
const seed = "getData";
samples = samples || 10;
const baseSeed = seedrandom(seed);
const rand = () => baseSeed.quick() * 10;
return range(num).map((v) => {
return {
x: v + 1,
y: range(samples).map(() => rand())
};
});
};
const getStackedData = (num, samples, useStrings) => {
return range(num).map(() => {
return useStrings ? getStringData(samples) : getData(samples);
});
};
export {
getData,
getStringData,
getMixedData,
getTimeData,
getLogData,
getFourQuadrantData,
getArrayData,
getStackedData,
getDescendingSmallData
};