-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconstants.test.ts
93 lines (87 loc) · 3.55 KB
/
constants.test.ts
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
import { describe, it } from "node:test";
import { strict as assert } from "node:assert";
import { buildLabelsAndValues, SPEED_LIMIT_THRESHOLDS } from "./constants";
describe("speed", () => {
it("should be described correctly", () => {
assert.strictEqual(SPEED_LIMIT_THRESHOLDS[30][0].description(0), "Mittausdataa ei saatu. 🐛");
assert.strictEqual(SPEED_LIMIT_THRESHOLDS[30][3].description(60), "Suurin ylinopeus 30 km/h (100%). 😡😡😡");
assert.strictEqual(
SPEED_LIMIT_THRESHOLDS[30][4].description(60),
"Suurin ylinopeus 30 km/h (100%), siis 60 km/h kolmenkympin alueella! 😡😡😡"
);
});
});
describe("building labels and values", () => {
it("should not do anything fancy when there are no gaps in an even number of data items", () => {
const labelsAndValues: [string[], number[]] = buildLabelsAndValues([
{ speed: 10, timestamp: 1664571601 },
{ speed: 20, timestamp: 1664571602 },
{ speed: 30, timestamp: 1664571603 },
{ speed: 40, timestamp: 1664571604 }
]);
assert.deepStrictEqual(labelsAndValues[0], ["00:00:01", "00:00:02", "00:00:03", "00:00:04"]);
assert.deepStrictEqual(labelsAndValues[1], [10, 20, 30, 40]);
});
it("should not do anything fancy when there are no gaps in an odd number of data items", () => {
const labelsAndValues: [string[], number[]] = buildLabelsAndValues([
{ speed: 10, timestamp: 1664571601 },
{ speed: 20, timestamp: 1664571602 },
{ speed: 30, timestamp: 1664571603 },
{ speed: 40, timestamp: 1664571604 },
{ speed: 50, timestamp: 1664571605 }
]);
assert.deepStrictEqual(labelsAndValues[0], ["00:00:01", "00:00:02", "00:00:03", "00:00:04", "00:00:05"]);
assert.deepStrictEqual(labelsAndValues[1], [10, 20, 30, 40, 50]);
});
it("should fill in a single second gap", () => {
const labelsAndValues: [string[], number[]] = buildLabelsAndValues([
{ speed: 10, timestamp: 1664571601 },
//{ speed: 20, timestamp: 1664571602 },
{ speed: 30, timestamp: 1664571603 },
{ speed: 40, timestamp: 1664571604 }
]);
assert.deepStrictEqual(labelsAndValues[0], ["00:00:01", "00:00:02", "00:00:03", "00:00:04"]);
assert.deepStrictEqual(labelsAndValues[1], [10, undefined, 30, 40]);
});
it("should fill in a multi-second gap", () => {
const labelsAndValues: [string[], number[]] = buildLabelsAndValues([
{ speed: 10, timestamp: 1664571601 },
// missing five seconds
{ speed: 30, timestamp: 1664571607 },
{ speed: 40, timestamp: 1664571608 }
]);
assert.deepStrictEqual(labelsAndValues[0], [
"00:00:01",
"00:00:02",
"00:00:03",
"00:00:04",
"00:00:05",
"00:00:06",
"00:00:07",
"00:00:08"
]);
assert.deepStrictEqual(labelsAndValues[1], [10, undefined, undefined, undefined, undefined, undefined, 30, 40]);
});
it("should fill in several multi-second gaps", () => {
const labelsAndValues: [string[], number[]] = buildLabelsAndValues([
{ speed: 10, timestamp: 1664571601 },
// missing three seconds
{ speed: 30, timestamp: 1664571605 },
{ speed: 40, timestamp: 1664571606 },
// missing two seconds
{ speed: 50, timestamp: 1664571609 }
]);
assert.deepStrictEqual(labelsAndValues[0], [
"00:00:01",
"00:00:02",
"00:00:03",
"00:00:04",
"00:00:05",
"00:00:06",
"00:00:07",
"00:00:08",
"00:00:09"
]);
assert.deepStrictEqual(labelsAndValues[1], [10, undefined, undefined, undefined, 30, 40, undefined, undefined, 50]);
});
});