@neurodevs/node-lsl 11.4.2 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/tasks.json +19 -1
- package/README.md +8 -9
- package/build/__tests__/{AbstractLslTest.d.ts → AbstractPackageTest.d.ts} +7 -6
- package/build/__tests__/AbstractPackageTest.js +53 -0
- package/build/__tests__/AbstractPackageTest.js.map +1 -0
- package/build/__tests__/{modules → impl}/LiblslAdapter.test.d.ts +6 -3
- package/build/__tests__/{modules → impl}/LiblslAdapter.test.js +193 -151
- package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -0
- package/build/__tests__/{modules/EventMarkerOutlet.test.d.ts → impl/LslEventMarkerOutlet.test.d.ts} +5 -4
- package/build/__tests__/{modules/EventMarkerOutlet.test.js → impl/LslEventMarkerOutlet.test.js} +54 -52
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -0
- package/build/__tests__/{modules → impl}/LslStreamInfo.test.d.ts +3 -3
- package/build/__tests__/{modules → impl}/LslStreamInfo.test.js +53 -59
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -0
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +11 -0
- package/build/__tests__/{modules → impl}/LslStreamInlet.test.js +28 -26
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -0
- package/build/__tests__/{modules → impl}/LslStreamOutlet.test.d.ts +3 -3
- package/build/__tests__/{modules → impl}/LslStreamOutlet.test.js +56 -60
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -0
- package/build/__tests__/impl/LslWebSocketBridge.test.d.ts +7 -0
- package/build/__tests__/impl/LslWebSocketBridge.test.js +26 -0
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -0
- package/build/assertions.d.ts +1 -1
- package/build/assertions.js +13 -20
- package/build/assertions.js.map +1 -1
- package/build/consts.js +2 -5
- package/build/consts.js.map +1 -1
- package/build/{modules → impl}/LiblslAdapter.d.ts +5 -4
- package/build/{modules → impl}/LiblslAdapter.js +60 -51
- package/build/impl/LiblslAdapter.js.map +1 -0
- package/build/impl/LslEventMarkerOutlet.d.ts +23 -0
- package/build/{modules/EventMarkerOutlet.js → impl/LslEventMarkerOutlet.js} +12 -14
- package/build/impl/LslEventMarkerOutlet.js.map +1 -0
- package/build/{modules → impl}/LslStreamInfo.d.ts +1 -1
- package/build/{modules → impl}/LslStreamInfo.js +19 -16
- package/build/impl/LslStreamInfo.js.map +1 -0
- package/build/impl/LslStreamInlet.d.ts +34 -0
- package/build/{modules → impl}/LslStreamInlet.js +19 -16
- package/build/impl/LslStreamInlet.js.map +1 -0
- package/build/{modules → impl}/LslStreamOutlet.d.ts +10 -10
- package/build/{modules → impl}/LslStreamOutlet.js +22 -23
- package/build/impl/LslStreamOutlet.js.map +1 -0
- package/build/impl/LslWebSocketBridge.d.ts +8 -0
- package/build/impl/LslWebSocketBridge.js +8 -0
- package/build/impl/LslWebSocketBridge.js.map +1 -0
- package/build/index.d.ts +34 -30
- package/build/index.js +39 -69
- package/build/index.js.map +1 -1
- package/build/scripts/{demoMarkerOutlet.js → runLslEventMarkerOutlet.js} +3 -8
- package/build/scripts/runLslEventMarkerOutlet.js.map +1 -0
- package/build/scripts/{demoStreamOutlet.js → runLslStreamOutlet.js} +3 -8
- package/build/scripts/runLslStreamOutlet.js.map +1 -0
- package/build/testDoubles/{MarkerOutlet/FakeMarkerOutlet.d.ts → EventMarkerOutlet/FakeEventMarkerOutlet.d.ts} +3 -3
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +26 -0
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/{MarkerOutlet/MockMarkerOutlet.d.ts → EventMarkerOutlet/MockEventMarkerOutlet.d.ts} +3 -3
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js +46 -0
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +9 -0
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +19 -0
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts +10 -0
- package/build/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.js → EventMarkerOutlet/ThrowingEventMarkerOutlet.js} +3 -6
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +1 -0
- package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +4 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.js +23 -15
- package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -1
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +2 -2
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js +3 -6
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +2 -2
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js +2 -8
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +12 -0
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js +18 -0
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -0
- package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +8 -0
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js +16 -0
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -0
- package/build/testDoubles/{LslOutlet/FakeLslOutlet.d.ts → StreamOutlet/FakeStreamOutlet.d.ts} +10 -11
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +57 -0
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -0
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.d.ts +6 -0
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js +10 -0
- package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js.map +1 -0
- package/build/testDoubles/consts.js +4 -7
- package/build/testDoubles/consts.js.map +1 -1
- package/build/testDoubles/generateRandomOutletOptions.d.ts +2 -2
- package/build/testDoubles/generateRandomOutletOptions.js +14 -17
- package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
- package/build/types.d.ts +9 -4
- package/build/types.js +1 -2
- package/build/validations.js +4 -10
- package/build/validations.js.map +1 -1
- package/package.json +22 -12
- package/src/__tests__/AbstractPackageTest.ts +65 -0
- package/src/__tests__/{modules → impl}/LiblslAdapter.test.ts +71 -44
- package/src/__tests__/{modules/EventMarkerOutlet.test.ts → impl/LslEventMarkerOutlet.test.ts} +40 -28
- package/src/__tests__/{modules → impl}/LslStreamInfo.test.ts +10 -8
- package/src/__tests__/{modules → impl}/LslStreamInlet.test.ts +27 -14
- package/src/__tests__/{modules → impl}/LslStreamOutlet.test.ts +24 -17
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +25 -0
- package/src/assertions.ts +3 -3
- package/src/{modules → impl}/LiblslAdapter.ts +33 -21
- package/src/{modules/EventMarkerOutlet.ts → impl/LslEventMarkerOutlet.ts} +17 -12
- package/src/{modules → impl}/LslStreamInfo.ts +5 -4
- package/src/{modules → impl}/LslStreamInlet.ts +27 -16
- package/src/{modules → impl}/LslStreamOutlet.ts +19 -16
- package/src/impl/LslWebSocketBridge.ts +13 -0
- package/src/index.ts +43 -35
- package/src/scripts/{demoMarkerOutlet.ts → runLslEventMarkerOutlet.ts} +2 -2
- package/src/scripts/{demoStreamOutlet.ts → runLslStreamOutlet.ts} +1 -1
- package/src/testDoubles/{MarkerOutlet/FakeMarkerOutlet.ts → EventMarkerOutlet/FakeEventMarkerOutlet.ts} +7 -7
- package/src/testDoubles/{MarkerOutlet/MockMarkerOutlet.ts → EventMarkerOutlet/MockEventMarkerOutlet.ts} +5 -4
- package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +24 -0
- package/src/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.ts} +3 -3
- package/src/testDoubles/Liblsl/FakeLiblsl.ts +9 -1
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +2 -2
- package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +1 -1
- package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +27 -0
- package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +22 -0
- package/src/testDoubles/{LslOutlet/FakeLslOutlet.ts → StreamOutlet/FakeStreamOutlet.ts} +22 -19
- package/src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts +15 -0
- package/src/testDoubles/generateRandomOutletOptions.ts +5 -4
- package/src/types.ts +11 -4
- package/tsconfig.json +17 -28
- package/build/__tests__/AbstractLslTest.js +0 -87
- package/build/__tests__/AbstractLslTest.js.map +0 -1
- package/build/__tests__/modules/EventMarkerOutlet.test.js.map +0 -1
- package/build/__tests__/modules/LiblslAdapter.test.js.map +0 -1
- package/build/__tests__/modules/LslStreamInfo.test.js.map +0 -1
- package/build/__tests__/modules/LslStreamInlet.test.d.ts +0 -10
- package/build/__tests__/modules/LslStreamInlet.test.js.map +0 -1
- package/build/__tests__/modules/LslStreamOutlet.test.js.map +0 -1
- package/build/modules/EventMarkerOutlet.d.ts +0 -23
- package/build/modules/EventMarkerOutlet.js.map +0 -1
- package/build/modules/LiblslAdapter.js.map +0 -1
- package/build/modules/LslStreamInfo.js.map +0 -1
- package/build/modules/LslStreamInlet.d.ts +0 -31
- package/build/modules/LslStreamInlet.js.map +0 -1
- package/build/modules/LslStreamOutlet.js.map +0 -1
- package/build/scripts/demoMarkerOutlet.js.map +0 -1
- package/build/scripts/demoStreamOutlet.js.map +0 -1
- package/build/testDoubles/LslInlet/FakeLslInlet.d.ts +0 -11
- package/build/testDoubles/LslInlet/FakeLslInlet.js +0 -16
- package/build/testDoubles/LslInlet/FakeLslInlet.js.map +0 -1
- package/build/testDoubles/LslInlet/SpyLslInlet.d.ts +0 -7
- package/build/testDoubles/LslInlet/SpyLslInlet.js +0 -20
- package/build/testDoubles/LslInlet/SpyLslInlet.js.map +0 -1
- package/build/testDoubles/LslOutlet/FakeLslOutlet.js +0 -59
- package/build/testDoubles/LslOutlet/FakeLslOutlet.js.map +0 -1
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js +0 -29
- package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js.map +0 -1
- package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js +0 -49
- package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js.map +0 -1
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.d.ts +0 -9
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js +0 -24
- package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js.map +0 -1
- package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.d.ts +0 -10
- package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.js.map +0 -1
- package/src/__tests__/AbstractLslTest.ts +0 -59
- package/src/testDoubles/LslInlet/FakeLslInlet.ts +0 -22
- package/src/testDoubles/LslInlet/SpyLslInlet.ts +0 -16
- package/src/testDoubles/MarkerOutlet/SpyMarkerOutlet.ts +0 -24
- /package/build/scripts/{demoMarkerOutlet.d.ts → runLslEventMarkerOutlet.d.ts} +0 -0
- /package/build/scripts/{demoStreamOutlet.d.ts → runLslStreamOutlet.d.ts} +0 -0
package/build/__tests__/{modules/EventMarkerOutlet.test.js → impl/LslEventMarkerOutlet.test.js}
RENAMED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const AbstractLslTest_1 = __importDefault(require("../AbstractLslTest"));
|
|
18
|
-
class EventMarkerOutletTest extends AbstractLslTest_1.default {
|
|
7
|
+
import { randomInt } from 'crypto';
|
|
8
|
+
import generateId from '@neurodevs/generate-id';
|
|
9
|
+
import { assert, test } from '@neurodevs/node-tdd';
|
|
10
|
+
import LslEventMarkerOutlet from '../../impl/LslEventMarkerOutlet.js';
|
|
11
|
+
import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions.js';
|
|
12
|
+
import FakeStreamOutlet from '../../testDoubles/StreamOutlet/FakeStreamOutlet.js';
|
|
13
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
14
|
+
export default class EventMarkerOutletTest extends AbstractPackageTest {
|
|
15
|
+
static instance;
|
|
19
16
|
static async beforeEach() {
|
|
20
17
|
await super.beforeEach();
|
|
21
18
|
this.setFakeLiblsl();
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
this.instance = await this.
|
|
19
|
+
this.setFakeStreamOutlet();
|
|
20
|
+
this.setSpyEventMarkerOutlet();
|
|
21
|
+
this.instance = await this.LslEventMarkerOutlet();
|
|
22
|
+
}
|
|
23
|
+
static async createsInstance() {
|
|
24
|
+
assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
25
25
|
}
|
|
26
26
|
static async loadsWithEventMarkerSpecificOptions() {
|
|
27
|
-
|
|
27
|
+
assert.isEqualDeep(FakeStreamOutlet.callsToConstructor[0].options, {
|
|
28
28
|
name: 'Event markers',
|
|
29
29
|
type: 'Markers',
|
|
30
30
|
channelNames: ['Markers'],
|
|
@@ -38,25 +38,25 @@ class EventMarkerOutletTest extends AbstractLslTest_1.default {
|
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
static async canOverrideDefaultOptions() {
|
|
41
|
-
const options = (
|
|
42
|
-
await this.
|
|
43
|
-
|
|
41
|
+
const options = generateRandomOutletOptions();
|
|
42
|
+
await this.LslEventMarkerOutlet(options);
|
|
43
|
+
assert.isEqualDeep(FakeStreamOutlet.callsToConstructor[1].options, options);
|
|
44
44
|
}
|
|
45
45
|
static async pushingSingleMarkerIncrementsHitCountAndWaitTime() {
|
|
46
46
|
const markers = [this.generateDurationMarker()];
|
|
47
47
|
await this.instance.pushMarkers(markers);
|
|
48
48
|
const marker = markers[0];
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
assert.isEqual(FakeStreamOutlet.callsToPushSample[0][0], marker.name, 'Pushed the wrong marker!');
|
|
50
|
+
assert.isEqual(this.instance.totalWaitTimeMs, marker.durationMs);
|
|
51
51
|
}
|
|
52
52
|
static async pushingTwoMarkersIncrementsHitCountAndWaitTimeTwice() {
|
|
53
53
|
const markers = await this.pushTotalMarkers(2);
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
assert.isEqual(FakeStreamOutlet.callsToPushSample.length, 2);
|
|
55
|
+
assert.isEqual(this.instance.totalWaitTimeMs, markers[0].durationMs + markers[1].durationMs);
|
|
56
56
|
}
|
|
57
57
|
static async canStopEventMarkersMidPush(bailIdx) {
|
|
58
58
|
let hitCount = 0;
|
|
59
|
-
const outlet = this.instance.
|
|
59
|
+
const outlet = this.instance.getStreamOutlet();
|
|
60
60
|
outlet.pushSample = () => {
|
|
61
61
|
hitCount += 1;
|
|
62
62
|
if (hitCount === bailIdx) {
|
|
@@ -64,17 +64,17 @@ class EventMarkerOutletTest extends AbstractLslTest_1.default {
|
|
|
64
64
|
}
|
|
65
65
|
};
|
|
66
66
|
await this.pushTotalMarkers(10);
|
|
67
|
-
|
|
67
|
+
assert.isEqual(hitCount, bailIdx);
|
|
68
68
|
}
|
|
69
69
|
static async canStartAgainAfterStopping() {
|
|
70
70
|
this.instance.stop();
|
|
71
71
|
let hitCount = 0;
|
|
72
|
-
const outlet = this.instance.
|
|
72
|
+
const outlet = this.instance.getStreamOutlet();
|
|
73
73
|
outlet.pushSample = () => {
|
|
74
74
|
hitCount++;
|
|
75
75
|
};
|
|
76
76
|
await this.pushTotalMarkers(10);
|
|
77
|
-
|
|
77
|
+
assert.isEqual(hitCount, 10);
|
|
78
78
|
}
|
|
79
79
|
static async doesNotWaitIfStopped() {
|
|
80
80
|
await this.setupOutlet();
|
|
@@ -83,24 +83,24 @@ class EventMarkerOutletTest extends AbstractLslTest_1.default {
|
|
|
83
83
|
this.instance.stop();
|
|
84
84
|
await promise;
|
|
85
85
|
const endMs = Date.now();
|
|
86
|
-
|
|
86
|
+
assert.isBelow(endMs - startMs, 10);
|
|
87
87
|
}
|
|
88
88
|
static async clearsTheTimeoutOnStop() {
|
|
89
89
|
void this.pushTotalMarkers(2, 100);
|
|
90
90
|
this.instance.stop();
|
|
91
|
-
this.
|
|
91
|
+
this.streamOutlet.pushSample = () => assert.fail('Should not have been called');
|
|
92
92
|
}
|
|
93
93
|
static async pushMarkerCallsPushSampleOnMarkerOutlet() {
|
|
94
|
-
const markerName =
|
|
94
|
+
const markerName = generateId();
|
|
95
95
|
this.instance.pushMarker(markerName);
|
|
96
|
-
|
|
96
|
+
assert.isEqual(FakeStreamOutlet.callsToPushSample[0][0], markerName);
|
|
97
97
|
}
|
|
98
|
-
static get
|
|
99
|
-
return this.instance.
|
|
98
|
+
static get streamOutlet() {
|
|
99
|
+
return this.instance.getStreamOutlet();
|
|
100
100
|
}
|
|
101
101
|
static async setupOutlet() {
|
|
102
|
-
|
|
103
|
-
this.instance = await this.
|
|
102
|
+
LslEventMarkerOutlet.Class = LslEventMarkerOutlet;
|
|
103
|
+
this.instance = await this.LslEventMarkerOutlet();
|
|
104
104
|
}
|
|
105
105
|
static async pushTotalMarkers(total, durationMs) {
|
|
106
106
|
const markers = new Array(total)
|
|
@@ -111,42 +111,44 @@ class EventMarkerOutletTest extends AbstractLslTest_1.default {
|
|
|
111
111
|
}
|
|
112
112
|
static generateDurationMarker(durationMs) {
|
|
113
113
|
return {
|
|
114
|
-
name:
|
|
115
|
-
durationMs: durationMs ??
|
|
114
|
+
name: generateId(),
|
|
115
|
+
durationMs: durationMs ?? randomInt(100, 1000),
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
|
-
static async
|
|
119
|
-
return (await
|
|
118
|
+
static async LslEventMarkerOutlet(options) {
|
|
119
|
+
return (await LslEventMarkerOutlet.Create(options));
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
|
-
exports.default = EventMarkerOutletTest;
|
|
123
122
|
__decorate([
|
|
124
|
-
|
|
123
|
+
test()
|
|
124
|
+
], EventMarkerOutletTest, "createsInstance", null);
|
|
125
|
+
__decorate([
|
|
126
|
+
test()
|
|
125
127
|
], EventMarkerOutletTest, "loadsWithEventMarkerSpecificOptions", null);
|
|
126
128
|
__decorate([
|
|
127
|
-
|
|
129
|
+
test()
|
|
128
130
|
], EventMarkerOutletTest, "canOverrideDefaultOptions", null);
|
|
129
131
|
__decorate([
|
|
130
|
-
|
|
132
|
+
test()
|
|
131
133
|
], EventMarkerOutletTest, "pushingSingleMarkerIncrementsHitCountAndWaitTime", null);
|
|
132
134
|
__decorate([
|
|
133
|
-
|
|
135
|
+
test()
|
|
134
136
|
], EventMarkerOutletTest, "pushingTwoMarkersIncrementsHitCountAndWaitTimeTwice", null);
|
|
135
137
|
__decorate([
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
test('can stop on the first marker', 1),
|
|
139
|
+
test('can stop on the second marker', 2),
|
|
140
|
+
test('can stop on the third marker', 3)
|
|
139
141
|
], EventMarkerOutletTest, "canStopEventMarkersMidPush", null);
|
|
140
142
|
__decorate([
|
|
141
|
-
|
|
143
|
+
test()
|
|
142
144
|
], EventMarkerOutletTest, "canStartAgainAfterStopping", null);
|
|
143
145
|
__decorate([
|
|
144
|
-
|
|
146
|
+
test()
|
|
145
147
|
], EventMarkerOutletTest, "doesNotWaitIfStopped", null);
|
|
146
148
|
__decorate([
|
|
147
|
-
|
|
149
|
+
test()
|
|
148
150
|
], EventMarkerOutletTest, "clearsTheTimeoutOnStop", null);
|
|
149
151
|
__decorate([
|
|
150
|
-
|
|
152
|
+
test()
|
|
151
153
|
], EventMarkerOutletTest, "pushMarkerCallsPushSampleOnMarkerOutlet", null);
|
|
152
|
-
//# sourceMappingURL=
|
|
154
|
+
//# sourceMappingURL=LslEventMarkerOutlet.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LslEventMarkerOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslEventMarkerOutlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class LslStreamInfoTest extends
|
|
1
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
2
|
+
export default class LslStreamInfoTest extends AbstractPackageTest {
|
|
3
3
|
private static instance;
|
|
4
4
|
protected static beforeEach(): Promise<void>;
|
|
5
|
-
protected static
|
|
5
|
+
protected static createsInstance(): Promise<void>;
|
|
6
6
|
protected static generatesUniqueNameIfNotProvided(): Promise<void>;
|
|
7
7
|
protected static uniqueNameHasSetPrefix(): Promise<void>;
|
|
8
8
|
protected static canManuallySetName(): Promise<void>;
|
|
@@ -1,81 +1,77 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const LslStreamInfo_1 = __importDefault(require("../../modules/LslStreamInfo"));
|
|
16
|
-
const AbstractLslTest_1 = __importDefault(require("../AbstractLslTest"));
|
|
17
|
-
class LslStreamInfoTest extends AbstractLslTest_1.default {
|
|
7
|
+
import generateId from '@neurodevs/generate-id';
|
|
8
|
+
import { test, assert } from '@neurodevs/node-tdd';
|
|
9
|
+
import { CHANNEL_FORMATS } from '../../consts.js';
|
|
10
|
+
import LslStreamInfo from '../../impl/LslStreamInfo.js';
|
|
11
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
12
|
+
export default class LslStreamInfoTest extends AbstractPackageTest {
|
|
13
|
+
static instance;
|
|
18
14
|
static async beforeEach() {
|
|
19
15
|
await super.beforeEach();
|
|
20
16
|
this.setSpyStreamInfo();
|
|
21
17
|
this.instance = this.LslStreamInfo();
|
|
22
18
|
}
|
|
23
|
-
static async
|
|
24
|
-
|
|
19
|
+
static async createsInstance() {
|
|
20
|
+
assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
25
21
|
}
|
|
26
22
|
static async generatesUniqueNameIfNotProvided() {
|
|
27
23
|
const instance1 = this.LslStreamInfo({ name: undefined });
|
|
28
24
|
const instance2 = this.LslStreamInfo({ name: undefined });
|
|
29
|
-
|
|
25
|
+
assert.isNotEqual(instance1.getName(), instance2.getName(), 'Inlet names should be unique!');
|
|
30
26
|
}
|
|
31
27
|
static async uniqueNameHasSetPrefix() {
|
|
32
28
|
const instance = this.LslStreamInfo({ name: undefined });
|
|
33
|
-
|
|
29
|
+
assert.doesInclude(instance.getName(), 'lsl-stream-info-', 'Name should have set prefix!');
|
|
34
30
|
}
|
|
35
31
|
static async canManuallySetName() {
|
|
36
|
-
const name =
|
|
32
|
+
const name = generateId();
|
|
37
33
|
const instance = this.LslStreamInfo({ name });
|
|
38
|
-
|
|
34
|
+
assert.isEqual(instance.getName(), name, 'Name should be set to provided value!');
|
|
39
35
|
}
|
|
40
36
|
static async generatesUniqueTypeIfNotProvided() {
|
|
41
37
|
const instance1 = this.LslStreamInfo({ type: undefined });
|
|
42
38
|
const instance2 = this.LslStreamInfo({ type: undefined });
|
|
43
|
-
|
|
39
|
+
assert.isNotEqual(instance1.getType(), instance2.getType(), 'Inlet types should be unique!');
|
|
44
40
|
}
|
|
45
41
|
static async canManuallySetType() {
|
|
46
|
-
const type =
|
|
42
|
+
const type = generateId();
|
|
47
43
|
const instance = this.LslStreamInfo({ type });
|
|
48
|
-
|
|
44
|
+
assert.isEqual(instance.getType(), type, 'Type should be set to provided value!');
|
|
49
45
|
}
|
|
50
46
|
static async generatesUniqueSourceIdIfNotProvided() {
|
|
51
47
|
const instance1 = this.LslStreamInfo({ sourceId: undefined });
|
|
52
48
|
const instance2 = this.LslStreamInfo({ sourceId: undefined });
|
|
53
|
-
|
|
49
|
+
assert.isNotEqual(instance1.getSourceId(), instance2.getSourceId(), 'Inlet sourceIds should be unique!');
|
|
54
50
|
}
|
|
55
51
|
static async canManuallySetSourceId() {
|
|
56
|
-
const sourceId =
|
|
52
|
+
const sourceId = generateId();
|
|
57
53
|
const instance = this.LslStreamInfo({ sourceId });
|
|
58
|
-
|
|
54
|
+
assert.isEqual(instance.getSourceId(), sourceId, 'SourceId should be set to provided value!');
|
|
59
55
|
}
|
|
60
56
|
static async setsUnitsToNAIfNotProvided() {
|
|
61
|
-
|
|
57
|
+
assert.isEqual(this.instance.getUnits(), 'N/A', 'Units should be set to "N/A"!');
|
|
62
58
|
}
|
|
63
59
|
static async canManuallySetUnits() {
|
|
64
|
-
const units =
|
|
60
|
+
const units = generateId();
|
|
65
61
|
const instance = this.LslStreamInfo({ units });
|
|
66
|
-
|
|
62
|
+
assert.isEqual(instance.getUnits(), units, 'Units should be set to provided value!');
|
|
67
63
|
}
|
|
68
64
|
static async callsBindingsToCreateStreamInfo() {
|
|
69
|
-
|
|
65
|
+
assert.isEqual(this.fakeLiblsl.createStreamInfoHitCount, 1, 'Should have called createStreamInfo!');
|
|
70
66
|
}
|
|
71
67
|
static async passesOptionsToStreamInfo() {
|
|
72
|
-
const randomChannelIdx = Math.floor(Math.random() *
|
|
68
|
+
const randomChannelIdx = Math.floor(Math.random() * CHANNEL_FORMATS.length);
|
|
73
69
|
const options = {
|
|
74
|
-
name:
|
|
75
|
-
type:
|
|
76
|
-
sourceId:
|
|
70
|
+
name: generateId(),
|
|
71
|
+
type: generateId(),
|
|
72
|
+
sourceId: generateId(),
|
|
77
73
|
channelCount: this.channelNames.length,
|
|
78
|
-
channelFormat:
|
|
74
|
+
channelFormat: CHANNEL_FORMATS[randomChannelIdx],
|
|
79
75
|
sampleRate: 100 * Math.random(),
|
|
80
76
|
};
|
|
81
77
|
this.LslStreamInfo(options);
|
|
@@ -83,11 +79,11 @@ class LslStreamInfoTest extends AbstractLslTest_1.default {
|
|
|
83
79
|
...options,
|
|
84
80
|
channelFormat: randomChannelIdx,
|
|
85
81
|
};
|
|
86
|
-
|
|
82
|
+
assert.isEqualDeep(this.fakeLiblsl.lastCreateStreamInfoOptions, expected, 'Should have passed options to createStreamInfo!');
|
|
87
83
|
}
|
|
88
84
|
static async appendsChannelsToStreamInfo() {
|
|
89
85
|
this.LslStreamInfo({ units: this.units, type: this.type });
|
|
90
|
-
|
|
86
|
+
assert.isEqualDeep(this.fakeLiblsl.lastAppendChannelsToStreamInfoOptions, {
|
|
91
87
|
info: this.instance.getStreamInfo(),
|
|
92
88
|
channels: this.channelNames.map((label) => ({
|
|
93
89
|
label,
|
|
@@ -96,60 +92,58 @@ class LslStreamInfoTest extends AbstractLslTest_1.default {
|
|
|
96
92
|
})),
|
|
97
93
|
}, 'Should have called appendChannelsToStreamInfo!');
|
|
98
94
|
}
|
|
95
|
+
static defaultOptions = {
|
|
96
|
+
name: generateId(),
|
|
97
|
+
type: generateId(),
|
|
98
|
+
sourceId: generateId(),
|
|
99
|
+
channelNames: this.channelNames,
|
|
100
|
+
channelFormat: 'float32',
|
|
101
|
+
sampleRate: 100 * Math.random(),
|
|
102
|
+
};
|
|
99
103
|
static LslStreamInfo(options) {
|
|
100
|
-
return
|
|
104
|
+
return LslStreamInfo.Create({
|
|
101
105
|
...this.defaultOptions,
|
|
102
106
|
...options,
|
|
103
107
|
});
|
|
104
108
|
}
|
|
105
109
|
}
|
|
106
|
-
_a = LslStreamInfoTest;
|
|
107
|
-
LslStreamInfoTest.defaultOptions = {
|
|
108
|
-
name: (0, test_utils_1.generateId)(),
|
|
109
|
-
type: (0, test_utils_1.generateId)(),
|
|
110
|
-
sourceId: (0, test_utils_1.generateId)(),
|
|
111
|
-
channelNames: _a.channelNames,
|
|
112
|
-
channelFormat: 'float32',
|
|
113
|
-
sampleRate: 100 * Math.random(),
|
|
114
|
-
};
|
|
115
|
-
exports.default = LslStreamInfoTest;
|
|
116
110
|
__decorate([
|
|
117
|
-
|
|
118
|
-
], LslStreamInfoTest, "
|
|
111
|
+
test()
|
|
112
|
+
], LslStreamInfoTest, "createsInstance", null);
|
|
119
113
|
__decorate([
|
|
120
|
-
|
|
114
|
+
test()
|
|
121
115
|
], LslStreamInfoTest, "generatesUniqueNameIfNotProvided", null);
|
|
122
116
|
__decorate([
|
|
123
|
-
|
|
117
|
+
test()
|
|
124
118
|
], LslStreamInfoTest, "uniqueNameHasSetPrefix", null);
|
|
125
119
|
__decorate([
|
|
126
|
-
|
|
120
|
+
test()
|
|
127
121
|
], LslStreamInfoTest, "canManuallySetName", null);
|
|
128
122
|
__decorate([
|
|
129
|
-
|
|
123
|
+
test()
|
|
130
124
|
], LslStreamInfoTest, "generatesUniqueTypeIfNotProvided", null);
|
|
131
125
|
__decorate([
|
|
132
|
-
|
|
126
|
+
test()
|
|
133
127
|
], LslStreamInfoTest, "canManuallySetType", null);
|
|
134
128
|
__decorate([
|
|
135
|
-
|
|
129
|
+
test()
|
|
136
130
|
], LslStreamInfoTest, "generatesUniqueSourceIdIfNotProvided", null);
|
|
137
131
|
__decorate([
|
|
138
|
-
|
|
132
|
+
test()
|
|
139
133
|
], LslStreamInfoTest, "canManuallySetSourceId", null);
|
|
140
134
|
__decorate([
|
|
141
|
-
|
|
135
|
+
test()
|
|
142
136
|
], LslStreamInfoTest, "setsUnitsToNAIfNotProvided", null);
|
|
143
137
|
__decorate([
|
|
144
|
-
|
|
138
|
+
test()
|
|
145
139
|
], LslStreamInfoTest, "canManuallySetUnits", null);
|
|
146
140
|
__decorate([
|
|
147
|
-
|
|
141
|
+
test()
|
|
148
142
|
], LslStreamInfoTest, "callsBindingsToCreateStreamInfo", null);
|
|
149
143
|
__decorate([
|
|
150
|
-
|
|
144
|
+
test()
|
|
151
145
|
], LslStreamInfoTest, "passesOptionsToStreamInfo", null);
|
|
152
146
|
__decorate([
|
|
153
|
-
|
|
147
|
+
test()
|
|
154
148
|
], LslStreamInfoTest, "appendsChannelsToStreamInfo", null);
|
|
155
149
|
//# sourceMappingURL=LslStreamInfo.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LslStreamInfo.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslStreamInfo.test.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,aAAoC,MAAM,6BAA6B,CAAA;AAE9E,OAAO,mBAAmB,MAAM,2BAA2B,CAAA;AAE3D,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,mBAAmB;IACtD,MAAM,CAAC,QAAQ,CAAe;IAE5B,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAEvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;IACxC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,eAAe;QAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAA;IAChE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gCAAgC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAEzD,MAAM,CAAC,UAAU,CACb,SAAS,CAAC,OAAO,EAAE,EACnB,SAAS,CAAC,OAAO,EAAE,EACnB,+BAA+B,CAClC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAExD,MAAM,CAAC,WAAW,CACd,QAAQ,CAAC,OAAO,EAAE,EAClB,kBAAkB,EAClB,8BAA8B,CACjC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,kBAAkB;QACrC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAE7C,MAAM,CAAC,OAAO,CACV,QAAQ,CAAC,OAAO,EAAE,EAClB,IAAI,EACJ,uCAAuC,CAC1C,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gCAAgC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAEzD,MAAM,CAAC,UAAU,CACb,SAAS,CAAC,OAAO,EAAE,EACnB,SAAS,CAAC,OAAO,EAAE,EACnB,+BAA+B,CAClC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,kBAAkB;QACrC,MAAM,IAAI,GAAG,UAAU,EAAE,CAAA;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;QAE7C,MAAM,CAAC,OAAO,CACV,QAAQ,CAAC,OAAO,EAAE,EAClB,IAAI,EACJ,uCAAuC,CAC1C,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,oCAAoC;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;QAE7D,MAAM,CAAC,UAAU,CACb,SAAS,CAAC,WAAW,EAAE,EACvB,SAAS,CAAC,WAAW,EAAE,EACvB,mCAAmC,CACtC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACzC,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAA;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEjD,MAAM,CAAC,OAAO,CACV,QAAQ,CAAC,WAAW,EAAE,EACtB,QAAQ,EACR,2CAA2C,CAC9C,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B;QAC7C,MAAM,CAAC,OAAO,CACV,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EACxB,KAAK,EACL,+BAA+B,CAClC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mBAAmB;QACtC,MAAM,KAAK,GAAG,UAAU,EAAE,CAAA;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QAE9C,MAAM,CAAC,OAAO,CACV,QAAQ,CAAC,QAAQ,EAAE,EACnB,KAAK,EACL,wCAAwC,CAC3C,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B;QAClD,MAAM,CAAC,OAAO,CACV,IAAI,CAAC,UAAU,CAAC,wBAAwB,EACxC,CAAC,EACD,sCAAsC,CACzC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,yBAAyB;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAC/B,IAAI,CAAC,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,CACzC,CAAA;QAED,MAAM,OAAO,GAAG;YACZ,IAAI,EAAE,UAAU,EAAE;YAClB,IAAI,EAAE,UAAU,EAAE;YAClB,QAAQ,EAAE,UAAU,EAAE;YACtB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YACtC,aAAa,EAAE,eAAe,CAAC,gBAAgB,CAAC;YAChD,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;SAClC,CAAA;QAED,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE3B,MAAM,QAAQ,GAAG;YACb,GAAG,OAAO;YACV,aAAa,EAAE,gBAAgB;SAClC,CAAA;QAED,MAAM,CAAC,WAAW,CACd,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAC3C,QAAQ,EACR,iDAAiD,CACpD,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,2BAA2B;QAC9C,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAE1D,MAAM,CAAC,WAAW,CACd,IAAI,CAAC,UAAU,CAAC,qCAAqC,EACrD;YACI,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;YACnC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;gBAChD,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;aAClB,CAAC,CAAC;SACN,EACD,gDAAgD,CACnD,CAAA;IACL,CAAC;IAEO,MAAM,CAAU,cAAc,GAAG;QACrC,IAAI,EAAE,UAAU,EAAE;QAClB,IAAI,EAAE,UAAU,EAAE;QAClB,QAAQ,EAAE,UAAU,EAAE;QACtB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,aAAa,EAAE,SAAS;QACxB,UAAU,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;KACb,CAAA;IAEd,MAAM,CAAC,aAAa,CAAC,OAAoC;QAC7D,OAAO,aAAa,CAAC,MAAM,CAAC;YACxB,GAAG,IAAI,CAAC,cAAc;YACtB,GAAG,OAAO;SACb,CAAkB,CAAA;IACvB,CAAC;;AAlLsB;IADtB,IAAI,EAAE;8CAGN;AAGsB;IADtB,IAAI,EAAE;+DAUN;AAGsB;IADtB,IAAI,EAAE;qDASN;AAGsB;IADtB,IAAI,EAAE;iDAUN;AAGsB;IADtB,IAAI,EAAE;+DAUN;AAGsB;IADtB,IAAI,EAAE;iDAUN;AAGsB;IADtB,IAAI,EAAE;mEAUN;AAGsB;IADtB,IAAI,EAAE;qDAUN;AAGsB;IADtB,IAAI,EAAE;yDAON;AAGsB;IADtB,IAAI,EAAE;kDAUN;AAGsB;IADtB,IAAI,EAAE;8DAON;AAGsB;IADtB,IAAI,EAAE;wDA2BN;AAGsB;IADtB,IAAI,EAAE;0DAgBN"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
2
|
+
export default class LslStreamInletTest extends AbstractPackageTest {
|
|
3
|
+
private static instance;
|
|
4
|
+
protected static beforeEach(): Promise<void>;
|
|
5
|
+
protected static createsInstance(): Promise<void>;
|
|
6
|
+
protected static createsStreamInfoWithExpectedOptions(): Promise<void>;
|
|
7
|
+
protected static uniqueNameHasSetPrefix(): Promise<void>;
|
|
8
|
+
protected static callsBindingsToCreateStreamInlet(): Promise<void>;
|
|
9
|
+
protected static flushSamplesCallsLslBinding(): Promise<void>;
|
|
10
|
+
private static LslStreamInlet;
|
|
11
|
+
}
|
|
@@ -1,30 +1,26 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
2
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
3
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
6
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const FakeStreamInfo_1 = __importDefault(require("../../testDoubles/StreamInfo/FakeStreamInfo"));
|
|
15
|
-
const AbstractLslTest_1 = __importDefault(require("../AbstractLslTest"));
|
|
16
|
-
class LslStreamInletTest extends AbstractLslTest_1.default {
|
|
7
|
+
import { test, assert } from '@neurodevs/node-tdd';
|
|
8
|
+
import LslStreamInlet from '../../impl/LslStreamInlet.js';
|
|
9
|
+
import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo.js';
|
|
10
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
11
|
+
export default class LslStreamInletTest extends AbstractPackageTest {
|
|
12
|
+
static instance;
|
|
17
13
|
static async beforeEach() {
|
|
18
14
|
await super.beforeEach();
|
|
19
|
-
this.
|
|
15
|
+
this.setSpyStreamInlet();
|
|
20
16
|
this.setFakeStreamInfo();
|
|
21
17
|
this.instance = this.LslStreamInlet();
|
|
22
18
|
}
|
|
23
|
-
static async
|
|
24
|
-
|
|
19
|
+
static async createsInstance() {
|
|
20
|
+
assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
25
21
|
}
|
|
26
22
|
static async createsStreamInfoWithExpectedOptions() {
|
|
27
|
-
|
|
23
|
+
assert.isEqualDeep(FakeStreamInfo.callsToConstructor[0], {
|
|
28
24
|
channelNames: this.channelNames,
|
|
29
25
|
channelFormat: 'float32',
|
|
30
26
|
sampleRate: 0,
|
|
@@ -35,17 +31,21 @@ class LslStreamInletTest extends AbstractLslTest_1.default {
|
|
|
35
31
|
}
|
|
36
32
|
static async uniqueNameHasSetPrefix() {
|
|
37
33
|
const instance = this.LslStreamInlet({ name: undefined });
|
|
38
|
-
|
|
34
|
+
assert.doesInclude(instance.getName(), 'lsl-inlet-', 'Name should have set prefix!');
|
|
39
35
|
}
|
|
40
|
-
static async
|
|
36
|
+
static async callsBindingsToCreateStreamInlet() {
|
|
41
37
|
const fakeInfo = this.instance.getStreamInfo();
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
assert.isTruthy(fakeInfo, 'Should have created stream info!');
|
|
39
|
+
assert.isEqualDeep(this.fakeLiblsl.lastCreateInletOptions, {
|
|
44
40
|
info: fakeInfo.boundStreamInfo,
|
|
45
41
|
chunkSize: this.chunkSize,
|
|
46
42
|
maxBuffered: this.maxBuffered,
|
|
47
43
|
}, 'Should have called createInlet!');
|
|
48
44
|
}
|
|
45
|
+
static async flushSamplesCallsLslBinding() {
|
|
46
|
+
this.instance.flushSamples();
|
|
47
|
+
assert.isEqualDeep(this.fakeLiblsl.lastFlushInletOptions, { inlet: this.instance.getBoundInlet() }, 'Should have called flushInlet!');
|
|
48
|
+
}
|
|
49
49
|
static LslStreamInlet(options) {
|
|
50
50
|
const defaultOptions = {
|
|
51
51
|
channelNames: this.channelNames,
|
|
@@ -58,20 +58,22 @@ class LslStreamInletTest extends AbstractLslTest_1.default {
|
|
|
58
58
|
maxBuffered: this.maxBuffered,
|
|
59
59
|
...options,
|
|
60
60
|
};
|
|
61
|
-
return
|
|
61
|
+
return LslStreamInlet.Create(defaultOptions);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
exports.default = LslStreamInletTest;
|
|
65
64
|
__decorate([
|
|
66
|
-
|
|
67
|
-
], LslStreamInletTest, "
|
|
65
|
+
test()
|
|
66
|
+
], LslStreamInletTest, "createsInstance", null);
|
|
68
67
|
__decorate([
|
|
69
|
-
|
|
68
|
+
test()
|
|
70
69
|
], LslStreamInletTest, "createsStreamInfoWithExpectedOptions", null);
|
|
71
70
|
__decorate([
|
|
72
|
-
|
|
71
|
+
test()
|
|
73
72
|
], LslStreamInletTest, "uniqueNameHasSetPrefix", null);
|
|
74
73
|
__decorate([
|
|
75
|
-
|
|
76
|
-
], LslStreamInletTest, "
|
|
74
|
+
test()
|
|
75
|
+
], LslStreamInletTest, "callsBindingsToCreateStreamInlet", null);
|
|
76
|
+
__decorate([
|
|
77
|
+
test()
|
|
78
|
+
], LslStreamInletTest, "flushSamplesCallsLslBinding", null);
|
|
77
79
|
//# sourceMappingURL=LslStreamInlet.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LslStreamInlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslStreamInlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { LslSample } from '../../types';
|
|
2
|
-
import
|
|
3
|
-
export default class LslStreamOutletTest extends
|
|
1
|
+
import { LslSample } from '../../types.js';
|
|
2
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
3
|
+
export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
4
4
|
private static randomOutletOptions;
|
|
5
5
|
protected static beforeEach(): Promise<void>;
|
|
6
6
|
protected static throwsWithEmptyChannelNames(): Promise<void>;
|