@neurodevs/node-lsl 17.1.1 → 18.1.0
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/.claude/settings.local.json +10 -0
- package/.vscode/launch.json +54 -57
- package/.vscode/settings.json +61 -66
- package/.vscode/tasks.json +98 -129
- package/README.md +20 -44
- package/build/__tests__/AbstractPackageTest.d.ts +7 -5
- package/build/__tests__/AbstractPackageTest.js +22 -15
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/BleDeviceController.test.d.ts +54 -0
- package/build/__tests__/impl/BleDeviceController.test.js +333 -0
- package/build/__tests__/impl/BleDeviceController.test.js.map +1 -0
- package/build/__tests__/impl/LslEventMarkerEmitter.test.d.ts +34 -0
- package/build/__tests__/impl/LslEventMarkerEmitter.test.js +243 -0
- package/build/__tests__/impl/LslEventMarkerEmitter.test.js.map +1 -0
- package/build/__tests__/impl/LslStreamInfo.test.d.ts +0 -3
- package/build/__tests__/impl/LslStreamInfo.test.js +2 -27
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +20 -8
- package/build/__tests__/impl/LslStreamInlet.test.js +224 -69
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamOutlet.test.d.ts +3 -7
- package/build/__tests__/impl/LslStreamOutlet.test.js +40 -50
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +19 -20
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
- package/build/assertions.d.ts +1 -1
- package/build/assertions.js.map +1 -1
- package/build/impl/LslEventMarkerEmitter.d.ts +35 -0
- package/build/impl/LslEventMarkerEmitter.js +86 -0
- package/build/impl/LslEventMarkerEmitter.js.map +1 -0
- package/build/impl/LslStreamInfo.d.ts +4 -8
- package/build/impl/LslStreamInfo.js +8 -21
- package/build/impl/LslStreamInfo.js.map +1 -1
- package/build/impl/LslStreamInlet.d.ts +31 -50
- package/build/impl/LslStreamInlet.js +79 -149
- package/build/impl/LslStreamInlet.js.map +1 -1
- package/build/impl/LslStreamOutlet.d.ts +15 -18
- package/build/impl/LslStreamOutlet.js +39 -47
- package/build/impl/LslStreamOutlet.js.map +1 -1
- package/build/impl/LslWebSocketBridge.d.ts +4 -5
- package/build/impl/LslWebSocketBridge.js +10 -10
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/impl/controllers/BleDeviceController.d.ts +58 -0
- package/build/impl/controllers/BleDeviceController.js +145 -0
- package/build/impl/controllers/BleDeviceController.js.map +1 -0
- package/build/impl/workers/inlet/LslStreamInlet.worker.d.ts +22 -0
- package/build/impl/workers/inlet/LslStreamInlet.worker.js +42 -0
- package/build/impl/workers/inlet/LslStreamInlet.worker.js.map +1 -0
- package/build/impl/workers/inlet/StreamInletWorker.d.ts +73 -0
- package/build/impl/workers/inlet/StreamInletWorker.js +253 -0
- package/build/impl/workers/inlet/StreamInletWorker.js.map +1 -0
- package/build/impl/workers/outlet/LslStreamOutlet.worker.d.ts +32 -0
- package/build/impl/workers/outlet/LslStreamOutlet.worker.js +82 -0
- package/build/impl/workers/outlet/LslStreamOutlet.worker.js.map +1 -0
- package/build/index.d.ts +14 -14
- package/build/index.js +16 -16
- package/build/index.js.map +1 -1
- package/build/scripts/discoverMuse.js +40 -0
- package/build/scripts/discoverMuse.js.map +1 -0
- package/build/scripts/finalizeHandles.d.ts +2 -0
- package/build/scripts/finalizeHandles.js +48 -0
- package/build/scripts/finalizeHandles.js.map +1 -0
- package/build/scripts/runLslEventMarkerEmitter.d.ts +1 -0
- package/build/scripts/runLslEventMarkerEmitter.js +11 -0
- package/build/scripts/runLslEventMarkerEmitter.js.map +1 -0
- package/build/scripts/runMuse.d.ts +1 -0
- package/build/scripts/runMuse.js +40 -0
- package/build/scripts/runMuse.js.map +1 -0
- package/build/scripts/runOutletToInlet.js +7 -6
- package/build/scripts/runOutletToInlet.js.map +1 -1
- package/build/scripts/testDestroyOutlet.d.ts +1 -0
- package/build/scripts/testDestroyOutlet.js +4 -0
- package/build/scripts/testDestroyOutlet.js.map +1 -0
- package/build/testDoubles/BleController/FakeBleController.d.ts +24 -0
- package/build/testDoubles/BleController/FakeBleController.js +42 -0
- package/build/testDoubles/BleController/FakeBleController.js.map +1 -0
- package/build/testDoubles/BleController/SpyBleController.d.ts +14 -0
- package/build/testDoubles/BleController/SpyBleController.js +48 -0
- package/build/testDoubles/BleController/SpyBleController.js.map +1 -0
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.d.ts +17 -0
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js +30 -0
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js.map +1 -0
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.d.ts +10 -0
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js +23 -0
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js.map +1 -0
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.d.ts +9 -0
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js +19 -0
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js.map +1 -0
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +3 -3
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js +3 -3
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +8 -10
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js +6 -7
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +2 -5
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js +2 -8
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.d.ts +7 -9
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +8 -8
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.d.ts +1 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js +1 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js.map +1 -1
- package/build/testDoubles/WorkerThreads/FakeWorker.d.ts +27 -0
- package/build/testDoubles/WorkerThreads/FakeWorker.js +67 -0
- package/build/testDoubles/WorkerThreads/FakeWorker.js.map +1 -0
- package/build/testDoubles/generateRandomOutletOptions.js +1 -1
- package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
- package/build/validations.js +0 -2
- package/build/validations.js.map +1 -1
- package/eslint.config.js +3 -0
- package/package.json +27 -49
- package/prettier.config.js +3 -0
- package/src/__tests__/AbstractPackageTest.ts +38 -21
- package/src/__tests__/impl/BleDeviceController.test.ts +492 -0
- package/src/__tests__/impl/LslEventMarkerEmitter.test.ts +323 -0
- package/src/__tests__/impl/LslStreamInfo.test.ts +3 -40
- package/src/__tests__/impl/LslStreamInlet.test.ts +344 -97
- package/src/__tests__/impl/LslStreamOutlet.test.ts +65 -73
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +22 -21
- package/src/assertions.ts +2 -1
- package/src/impl/LslEventMarkerEmitter.ts +133 -0
- package/src/impl/LslStreamInfo.ts +17 -29
- package/src/impl/LslStreamInlet.ts +102 -215
- package/src/impl/LslStreamOutlet.ts +54 -78
- package/src/impl/LslWebSocketBridge.ts +14 -14
- package/src/impl/controllers/BleDeviceController.ts +223 -0
- package/src/impl/workers/inlet/LslStreamInlet.worker.ts +74 -0
- package/src/impl/workers/inlet/StreamInletWorker.ts +348 -0
- package/src/impl/workers/outlet/LslStreamOutlet.worker.ts +144 -0
- package/src/index.ts +16 -16
- package/src/scripts/discoverMuse.ts +50 -0
- package/src/scripts/finalizeHandles.ts +63 -0
- package/src/scripts/runLslEventMarkerEmitter.ts +15 -0
- package/src/scripts/runMuse.ts +50 -0
- package/src/scripts/runOutletToInlet.ts +10 -8
- package/src/scripts/testDestroyOutlet.ts +5 -0
- package/src/testDoubles/BleController/FakeBleController.ts +70 -0
- package/src/testDoubles/BleController/SpyBleController.ts +61 -0
- package/src/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.ts +46 -0
- package/src/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.ts +31 -0
- package/src/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.ts +29 -0
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +4 -4
- package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +11 -17
- package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +3 -16
- package/src/testDoubles/StreamOutlet/FakeStreamOutlet.ts +15 -15
- package/src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts +1 -1
- package/src/testDoubles/WorkerThreads/FakeWorker.ts +99 -0
- package/src/testDoubles/generateRandomOutletOptions.ts +2 -1
- package/src/validations.ts +0 -2
- package/tsconfig.json +23 -27
- package/build/.spruce/settings.json +0 -11
- package/build/__tests__/impl/LiblslAdapter.test.d.ts +0 -79
- package/build/__tests__/impl/LiblslAdapter.test.js +0 -688
- package/build/__tests__/impl/LiblslAdapter.test.js.map +0 -1
- package/build/__tests__/impl/LslEventMarkerOutlet.test.d.ts +0 -21
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js +0 -160
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +0 -1
- package/build/handleError.d.ts +0 -8
- package/build/handleError.js +0 -25
- package/build/handleError.js.map +0 -1
- package/build/impl/LiblslAdapter.d.ts +0 -154
- package/build/impl/LiblslAdapter.js +0 -317
- package/build/impl/LiblslAdapter.js.map +0 -1
- package/build/impl/LslEventMarkerOutlet.d.ts +0 -28
- package/build/impl/LslEventMarkerOutlet.js +0 -63
- package/build/impl/LslEventMarkerOutlet.js.map +0 -1
- package/build/scripts/runLslEventMarkerOutlet.js +0 -18
- package/build/scripts/runLslEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.d.ts +0 -13
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +0 -26
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.d.ts +0 -17
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js +0 -46
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +0 -9
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +0 -19
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts +0 -9
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js +0 -19
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +0 -50
- package/build/testDoubles/Liblsl/FakeLiblsl.js +0 -126
- package/build/testDoubles/Liblsl/FakeLiblsl.js.map +0 -1
- package/eslint.config.mjs +0 -3
- package/src/.spruce/settings.json +0 -11
- package/src/__tests__/impl/LiblslAdapter.test.ts +0 -817
- package/src/__tests__/impl/LslEventMarkerOutlet.test.ts +0 -195
- package/src/handleError.ts +0 -24
- package/src/impl/LiblslAdapter.ts +0 -543
- package/src/impl/LslEventMarkerOutlet.ts +0 -97
- package/src/scripts/runLslEventMarkerOutlet.ts +0 -23
- package/src/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.ts +0 -36
- package/src/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.ts +0 -75
- package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +0 -24
- package/src/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.ts +0 -28
- package/src/testDoubles/Liblsl/FakeLiblsl.ts +0 -182
- /package/build/scripts/{runLslEventMarkerOutlet.d.ts → discoverMuse.d.ts} +0 -0
|
@@ -4,41 +4,85 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
import { FakeLiblsl } from '@neurodevs/ndx-native';
|
|
7
8
|
import { test, assert } from '@neurodevs/node-tdd';
|
|
9
|
+
import { createPointer, DataType, PointerType, unwrapPointer, } from 'ffi-rs';
|
|
10
|
+
import LslStreamInlet from '../../impl/LslStreamInlet.js';
|
|
11
|
+
import StreamInletWorker from '../../impl/workers/inlet/StreamInletWorker.js';
|
|
12
|
+
import FakeWorker from '../../testDoubles/WorkerThreads/FakeWorker.js';
|
|
8
13
|
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
9
14
|
export default class LslStreamInletTest extends AbstractPackageTest {
|
|
10
15
|
static instance;
|
|
11
16
|
static callsToOnData;
|
|
17
|
+
static sampleBufferPtr = unwrapPointer(createPointer({
|
|
18
|
+
paramsType: [DataType.U8Array],
|
|
19
|
+
paramsValue: [new Float32Array(this.channelCount * this.chunkSize)],
|
|
20
|
+
}))[0];
|
|
21
|
+
static timestampBufferPtr = unwrapPointer(createPointer({
|
|
22
|
+
paramsType: [DataType.U8Array],
|
|
23
|
+
paramsValue: [new Float64Array(this.chunkSize)],
|
|
24
|
+
}))[0];
|
|
25
|
+
static errorCodePtr = unwrapPointer(createPointer({
|
|
26
|
+
paramsType: [DataType.U8Array],
|
|
27
|
+
paramsValue: [new Int32Array(1)],
|
|
28
|
+
}))[0];
|
|
29
|
+
static async beforeAll() {
|
|
30
|
+
assert.isEqual(LslStreamInlet.waitAfterOpenStreamMs, 100, 'Default waitAfterOpenStreamMs should be 100!');
|
|
31
|
+
}
|
|
12
32
|
static async beforeEach() {
|
|
13
33
|
await super.beforeEach();
|
|
14
34
|
this.setFakeLiblsl();
|
|
15
35
|
this.setFakeStreamInfo();
|
|
16
36
|
this.setSpyStreamInlet();
|
|
17
37
|
this.callsToOnData = [];
|
|
38
|
+
LslStreamInlet.waitAfterOpenStreamMs = 0;
|
|
39
|
+
LslStreamInlet.Worker = FakeWorker;
|
|
40
|
+
FakeWorker.resetTestDoubles();
|
|
41
|
+
StreamInletWorker.lsl = this.fakeLiblsl;
|
|
42
|
+
StreamInletWorker.freePointer = () => { };
|
|
43
|
+
FakeWorker.fakeOnData = this.onData;
|
|
18
44
|
this.instance = await this.LslStreamInlet();
|
|
19
45
|
}
|
|
20
46
|
static async createsInstance() {
|
|
21
47
|
assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
22
48
|
}
|
|
23
49
|
static async callsBindingsToCreateStreamInlet() {
|
|
24
|
-
|
|
25
|
-
assert.isTruthy(
|
|
50
|
+
await this.startPulling();
|
|
51
|
+
assert.isTruthy(this.inletHandle, 'Should have created stream info!');
|
|
26
52
|
assert.isEqualDeep(this.fakeLiblsl.lastCreateInletOptions, {
|
|
27
|
-
|
|
53
|
+
infoHandle: this.inletHandle,
|
|
28
54
|
maxBufferedMs: this.maxBufferedMs,
|
|
29
55
|
}, 'Should have called createInlet!');
|
|
56
|
+
this.stopPulling();
|
|
30
57
|
}
|
|
31
|
-
static async
|
|
32
|
-
this.instance.
|
|
33
|
-
assert.isEqualDeep(this.fakeLiblsl.lastFlushInletOptions, {
|
|
58
|
+
static async flushInletCallsLslBinding() {
|
|
59
|
+
this.instance.flushInlet();
|
|
60
|
+
assert.isEqualDeep(this.fakeLiblsl.lastFlushInletOptions, { inletHandle: this.inletHandle }, 'Should have called flushInlet!');
|
|
34
61
|
}
|
|
35
62
|
static async destroyCallsLslBinding() {
|
|
36
|
-
this.
|
|
37
|
-
assert.isEqualDeep(this.fakeLiblsl.lastDestroyInletOptions, {
|
|
63
|
+
await this.startPullingThenDestroy();
|
|
64
|
+
assert.isEqualDeep(this.fakeLiblsl.lastDestroyInletOptions, { inletHandle: this.inletHandle }, 'Did not destroy inlet!');
|
|
65
|
+
}
|
|
66
|
+
static async destroyFreesAllPointers() {
|
|
67
|
+
let calls = [];
|
|
68
|
+
StreamInletWorker.freePointer = (params) => {
|
|
69
|
+
calls.push(params);
|
|
70
|
+
};
|
|
71
|
+
await this.startPullingThenDestroy();
|
|
72
|
+
const { paramsType, pointerType } = calls[0];
|
|
73
|
+
assert.isEqualDeep({ paramsType, pointerType }, {
|
|
74
|
+
paramsType: [
|
|
75
|
+
DataType.U8Array,
|
|
76
|
+
DataType.U8Array,
|
|
77
|
+
DataType.U8Array,
|
|
78
|
+
DataType.U8Array,
|
|
79
|
+
],
|
|
80
|
+
pointerType: PointerType.CPointer,
|
|
81
|
+
}, 'Destroy did not free all pointers!');
|
|
38
82
|
}
|
|
39
83
|
static async destroyCallsStopIfIsRunning() {
|
|
40
|
-
this.
|
|
41
|
-
this.
|
|
84
|
+
await this.startPulling();
|
|
85
|
+
this.destroy();
|
|
42
86
|
assert.isFalse(this.instance.isRunning, 'Did not stop inlet before destroying!');
|
|
43
87
|
}
|
|
44
88
|
static async destroyDoesNotCallStopIfNotRunning() {
|
|
@@ -53,11 +97,72 @@ export default class LslStreamInletTest extends AbstractPackageTest {
|
|
|
53
97
|
assert.isFalse(this.isRunning, 'isRunning should be false at first!');
|
|
54
98
|
}
|
|
55
99
|
static async startPullingSetsIsRunningToTrue() {
|
|
56
|
-
this.startPulling();
|
|
57
|
-
await this.wait(10);
|
|
100
|
+
await this.startPulling();
|
|
58
101
|
assert.isTrue(this.isRunning, 'isRunning should be true!');
|
|
59
102
|
this.stopPulling();
|
|
60
103
|
}
|
|
104
|
+
static async doesNotStartPullingTwiceIfAlreadyRunning() {
|
|
105
|
+
await this.startPulling();
|
|
106
|
+
await this.startPulling();
|
|
107
|
+
assert.isEqual(FakeWorker.callsToPostMessage.filter((msg) => msg.type === 'startPulling').length, 1, 'startPulling did not return early!');
|
|
108
|
+
this.stopPulling();
|
|
109
|
+
}
|
|
110
|
+
static async startPullingOpensInletStream() {
|
|
111
|
+
await this.startPulling();
|
|
112
|
+
const aboutOneYearInMs = 32000000 * 1000;
|
|
113
|
+
assert.isEqualDeep(this.fakeLiblsl.lastOpenStreamOptions, {
|
|
114
|
+
inletHandle: this.inletHandle,
|
|
115
|
+
timeoutMs: aboutOneYearInMs,
|
|
116
|
+
errorCodePtr: this.errorCodePtr,
|
|
117
|
+
}, 'Did not open inlet stream!');
|
|
118
|
+
this.stopPulling();
|
|
119
|
+
}
|
|
120
|
+
static async opensInletStreamWithPassedTimeout() {
|
|
121
|
+
const openStreamTimeoutMs = 1000 * Math.random();
|
|
122
|
+
const instance = await this.LslStreamInlet({
|
|
123
|
+
openStreamTimeoutMs,
|
|
124
|
+
});
|
|
125
|
+
await this.startPulling(instance);
|
|
126
|
+
assert.isEqualDeep(this.fakeLiblsl.lastOpenStreamOptions, {
|
|
127
|
+
inletHandle: this.inletHandle,
|
|
128
|
+
timeoutMs: openStreamTimeoutMs,
|
|
129
|
+
errorCodePtr: this.errorCodePtr,
|
|
130
|
+
}, 'Did not open inlet stream with passed timeout!');
|
|
131
|
+
instance.stopPulling();
|
|
132
|
+
}
|
|
133
|
+
static async waitsAfterOpeningStreamWithPassedOption() {
|
|
134
|
+
const waitAfterOpenStreamMs = 10;
|
|
135
|
+
const instance = await this.LslStreamInlet({
|
|
136
|
+
waitAfterOpenStreamMs,
|
|
137
|
+
});
|
|
138
|
+
let t0 = Date.now();
|
|
139
|
+
await this.startPulling(instance);
|
|
140
|
+
let elapsed = Date.now() - t0;
|
|
141
|
+
instance.stopPulling();
|
|
142
|
+
assert.isAbove(elapsed, waitAfterOpenStreamMs * 0.8, 'Did not wait after opening stream!');
|
|
143
|
+
}
|
|
144
|
+
static async stopPullingClosesInletStream() {
|
|
145
|
+
await this.startPulling();
|
|
146
|
+
this.stopPulling();
|
|
147
|
+
assert.isEqualDeep(this.fakeLiblsl.lastCloseStreamOptions, {
|
|
148
|
+
inletHandle: this.inletHandle,
|
|
149
|
+
}, 'Did not close inlet stream!');
|
|
150
|
+
}
|
|
151
|
+
static async stopPullingFlushesInletByDefault() {
|
|
152
|
+
await this.startPulling();
|
|
153
|
+
this.stopPulling();
|
|
154
|
+
assert.isEqualDeep(this.fakeLiblsl.lastFlushInletOptions, {
|
|
155
|
+
inletHandle: this.inletHandle,
|
|
156
|
+
}, 'Did not flush inlet!');
|
|
157
|
+
}
|
|
158
|
+
static async stopPullingDoesNotFlushInletIfPassedOption() {
|
|
159
|
+
const instance = await this.LslStreamInlet({
|
|
160
|
+
flushInletOnStop: false,
|
|
161
|
+
});
|
|
162
|
+
await this.startPulling(instance);
|
|
163
|
+
instance.stopPulling();
|
|
164
|
+
assert.isUndefined(this.fakeLiblsl.lastFlushInletOptions, 'Should not have flushed inlet!');
|
|
165
|
+
}
|
|
61
166
|
static async stopPullingSetsIsRunningToFalse() {
|
|
62
167
|
await this.startThenStop();
|
|
63
168
|
assert.isFalse(this.isRunning, 'isRunning should be false!');
|
|
@@ -71,42 +176,78 @@ export default class LslStreamInletTest extends AbstractPackageTest {
|
|
|
71
176
|
assert.isEqual(this.callsToOnData.length, 2, 'Did not call onData as expected!');
|
|
72
177
|
}
|
|
73
178
|
static async callsPullSampleIfChunkSizeIsOne() {
|
|
74
|
-
|
|
179
|
+
await this.runChunkSizeOne();
|
|
75
180
|
assert.isEqualDeep(this.fakeLiblsl.lastPullSampleOptions, {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
181
|
+
inletHandle: this.inletHandle,
|
|
182
|
+
sampleBufferPtr: this.sampleBufferPtr,
|
|
183
|
+
sampleBufferElements: this.channelCount,
|
|
184
|
+
timeoutMs: 0,
|
|
185
|
+
errorCodePtr: this.errorCodePtr,
|
|
81
186
|
}, 'Should have called pullSample!');
|
|
82
187
|
}
|
|
83
188
|
static async callsPullChunkIfChunkSizeIsNotOne() {
|
|
84
189
|
await this.startThenStop();
|
|
85
190
|
assert.isEqualDeep(this.fakeLiblsl.lastPullChunkOptions, {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
timestampBufferPtr: this.
|
|
89
|
-
|
|
191
|
+
inletHandle: this.inletHandle,
|
|
192
|
+
sampleBufferPtr: this.sampleBufferPtr,
|
|
193
|
+
timestampBufferPtr: this.timestampBufferPtr,
|
|
194
|
+
sampleBufferElements: this.chunkSize * this.channelCount,
|
|
90
195
|
timestampBufferElements: this.chunkSize,
|
|
91
|
-
|
|
92
|
-
|
|
196
|
+
timeoutMs: 0,
|
|
197
|
+
errorCodePtr: this.errorCodePtr,
|
|
93
198
|
}, 'Should have called pullChunk!');
|
|
94
199
|
}
|
|
200
|
+
static async pushSampleHandlesErrorCode() {
|
|
201
|
+
let passedErrorCode;
|
|
202
|
+
StreamInletWorker.handleLslError = (errorCode) => {
|
|
203
|
+
passedErrorCode = errorCode;
|
|
204
|
+
};
|
|
205
|
+
const fakeErrorCode = [-4, -3, -2, -1, 0][Math.floor(Math.random() * 5)];
|
|
206
|
+
const worker = this.getFakeWorker();
|
|
207
|
+
worker['inletWorker']['pullErrorBuffer'].writeInt32LE(fakeErrorCode);
|
|
208
|
+
await this.startThenStop();
|
|
209
|
+
assert.isEqualDeep(passedErrorCode, FakeLiblsl.fakeErrorCode, 'Did not pass the expected error code to handleLslError!');
|
|
210
|
+
}
|
|
211
|
+
static async waitsBetweenPullsIfPassedOption() {
|
|
212
|
+
const waitBetweenPullsMs = 10;
|
|
213
|
+
const instance = await this.LslStreamInlet({
|
|
214
|
+
waitBetweenPullsMs,
|
|
215
|
+
});
|
|
216
|
+
let pulls = 0;
|
|
217
|
+
const inletWorker = this.getFakeWorker(instance)['inletWorker'];
|
|
218
|
+
const original = inletWorker['pullDataOnce'].bind(inletWorker);
|
|
219
|
+
inletWorker['pullDataOnce'] = async () => {
|
|
220
|
+
pulls++;
|
|
221
|
+
await original();
|
|
222
|
+
};
|
|
223
|
+
const t0 = Date.now();
|
|
224
|
+
const promise = this.startPulling(instance);
|
|
225
|
+
while (pulls < 2) {
|
|
226
|
+
await this.wait(1);
|
|
227
|
+
}
|
|
228
|
+
const elapsed = Date.now() - t0;
|
|
229
|
+
assert.isAbove(elapsed, waitBetweenPullsMs * 0.8, 'Did not wait between pulls');
|
|
230
|
+
instance.stopPulling();
|
|
231
|
+
await promise;
|
|
232
|
+
}
|
|
233
|
+
static async waitsOneMillisecondBetweenPullsIfNotPassed() {
|
|
234
|
+
assert.isEqual(this.instance['waitBetweenPullsMs'], 1, 'Default waitBetweenPullsMs should be 1!');
|
|
235
|
+
}
|
|
95
236
|
static async passesTimeoutMsOptionToPullSample() {
|
|
96
|
-
const
|
|
237
|
+
const pullTimeoutMs = 1000 * Math.random();
|
|
97
238
|
await this.runInletWithOptions({
|
|
98
239
|
chunkSize: 1,
|
|
99
|
-
|
|
240
|
+
pullTimeoutMs,
|
|
100
241
|
});
|
|
101
|
-
assert.isEqual(this.fakeLiblsl.lastPullSampleOptions?.
|
|
242
|
+
assert.isEqual(this.fakeLiblsl.lastPullSampleOptions?.timeoutMs, pullTimeoutMs, 'Did not pass pullTimeoutMs to pullSample!');
|
|
102
243
|
}
|
|
103
244
|
static async passesTimeoutMsOptionToPullChunk() {
|
|
104
|
-
const
|
|
245
|
+
const pullTimeoutMs = 1000 * Math.random();
|
|
105
246
|
await this.runInletWithOptions({
|
|
106
247
|
chunkSize: this.chunkSize,
|
|
107
|
-
|
|
248
|
+
pullTimeoutMs,
|
|
108
249
|
});
|
|
109
|
-
assert.isEqual(this.fakeLiblsl.lastPullChunkOptions?.
|
|
250
|
+
assert.isEqual(this.fakeLiblsl.lastPullChunkOptions?.timeoutMs, pullTimeoutMs, 'Did not pass timeoutMs to pullChunk!');
|
|
110
251
|
}
|
|
111
252
|
static async defaultsMaxBufferedMsToSixMinutesInSeconds() {
|
|
112
253
|
await this.runInletWithOptions({
|
|
@@ -115,27 +256,9 @@ export default class LslStreamInletTest extends AbstractPackageTest {
|
|
|
115
256
|
const sixMinutesInMs = 360 * 1000;
|
|
116
257
|
assert.isEqualDeep(this.fakeLiblsl.lastCreateInletOptions?.maxBufferedMs, sixMinutesInMs);
|
|
117
258
|
}
|
|
118
|
-
static async
|
|
119
|
-
await this.
|
|
120
|
-
|
|
121
|
-
static async throwsWithErrorCodeNegativeOne() {
|
|
122
|
-
await this.assertThrowsWithErrorCode(-1, `The liblsl operation failed due to a timeout!`);
|
|
123
|
-
}
|
|
124
|
-
static async throwsWithErrorCodeNegativeTwo() {
|
|
125
|
-
await this.assertThrowsWithErrorCode(-2, `The liblsl stream has been lost!`);
|
|
126
|
-
}
|
|
127
|
-
static async throwsWithErrorCodeNegativeThree() {
|
|
128
|
-
await this.assertThrowsWithErrorCode(-3, 'A liblsl argument was incorrectly specified!');
|
|
129
|
-
}
|
|
130
|
-
static async throwsWithErrorCodeNegativeFour() {
|
|
131
|
-
await this.assertThrowsWithErrorCode(-4, 'An internal liblsl error has occurred!');
|
|
132
|
-
}
|
|
133
|
-
static async assertThrowsWithErrorCode(errorCode, message) {
|
|
134
|
-
await this.startThenStop();
|
|
135
|
-
this.instance['errorCodeBuffer'].writeInt32LE(errorCode);
|
|
136
|
-
assert.doesThrow(() => {
|
|
137
|
-
this.instance['handleErrorCodeIfPresent']();
|
|
138
|
-
}, message);
|
|
259
|
+
static async startPullingThenDestroy() {
|
|
260
|
+
await this.startPulling();
|
|
261
|
+
this.destroy();
|
|
139
262
|
}
|
|
140
263
|
static async runChunkSizeOne() {
|
|
141
264
|
return await this.runInletWithOptions({
|
|
@@ -149,21 +272,35 @@ export default class LslStreamInletTest extends AbstractPackageTest {
|
|
|
149
272
|
}
|
|
150
273
|
static async startThenStop(inlet) {
|
|
151
274
|
const instance = inlet || this.instance;
|
|
152
|
-
|
|
275
|
+
await this.startPulling(instance);
|
|
153
276
|
await this.wait(10);
|
|
154
277
|
instance.stopPulling();
|
|
155
278
|
}
|
|
156
|
-
static startPulling() {
|
|
157
|
-
this.instance
|
|
279
|
+
static async startPulling(instance) {
|
|
280
|
+
const inst = instance || this.instance;
|
|
281
|
+
const startPullingPromise = inst.startPulling();
|
|
282
|
+
while (!this.getFakeWorker(inst).createInletPromise) {
|
|
283
|
+
await this.wait(1);
|
|
284
|
+
}
|
|
285
|
+
await this.getFakeWorker(inst).createInletPromise;
|
|
286
|
+
inst['workerReady'] = true;
|
|
287
|
+
await startPullingPromise;
|
|
158
288
|
}
|
|
159
289
|
static stopPulling() {
|
|
160
290
|
this.instance.stopPulling();
|
|
161
291
|
}
|
|
292
|
+
static destroy() {
|
|
293
|
+
this.instance.destroy();
|
|
294
|
+
}
|
|
162
295
|
static get isRunning() {
|
|
163
296
|
return this.instance.isRunning;
|
|
164
297
|
}
|
|
165
|
-
static get
|
|
166
|
-
return this.
|
|
298
|
+
static get inletHandle() {
|
|
299
|
+
return this.getFakeWorker()['inletWorker']['inletHandle'];
|
|
300
|
+
}
|
|
301
|
+
static getFakeWorker(instance) {
|
|
302
|
+
const inst = instance || this.instance;
|
|
303
|
+
return inst['worker'];
|
|
167
304
|
}
|
|
168
305
|
static onData = (samples, timestamps) => {
|
|
169
306
|
this.callsToOnData.push({ samples, timestamps });
|
|
@@ -182,10 +319,13 @@ __decorate([
|
|
|
182
319
|
], LslStreamInletTest, "callsBindingsToCreateStreamInlet", null);
|
|
183
320
|
__decorate([
|
|
184
321
|
test()
|
|
185
|
-
], LslStreamInletTest, "
|
|
322
|
+
], LslStreamInletTest, "flushInletCallsLslBinding", null);
|
|
186
323
|
__decorate([
|
|
187
324
|
test()
|
|
188
325
|
], LslStreamInletTest, "destroyCallsLslBinding", null);
|
|
326
|
+
__decorate([
|
|
327
|
+
test()
|
|
328
|
+
], LslStreamInletTest, "destroyFreesAllPointers", null);
|
|
189
329
|
__decorate([
|
|
190
330
|
test()
|
|
191
331
|
], LslStreamInletTest, "destroyCallsStopIfIsRunning", null);
|
|
@@ -198,6 +338,27 @@ __decorate([
|
|
|
198
338
|
__decorate([
|
|
199
339
|
test()
|
|
200
340
|
], LslStreamInletTest, "startPullingSetsIsRunningToTrue", null);
|
|
341
|
+
__decorate([
|
|
342
|
+
test()
|
|
343
|
+
], LslStreamInletTest, "doesNotStartPullingTwiceIfAlreadyRunning", null);
|
|
344
|
+
__decorate([
|
|
345
|
+
test()
|
|
346
|
+
], LslStreamInletTest, "startPullingOpensInletStream", null);
|
|
347
|
+
__decorate([
|
|
348
|
+
test()
|
|
349
|
+
], LslStreamInletTest, "opensInletStreamWithPassedTimeout", null);
|
|
350
|
+
__decorate([
|
|
351
|
+
test()
|
|
352
|
+
], LslStreamInletTest, "waitsAfterOpeningStreamWithPassedOption", null);
|
|
353
|
+
__decorate([
|
|
354
|
+
test()
|
|
355
|
+
], LslStreamInletTest, "stopPullingClosesInletStream", null);
|
|
356
|
+
__decorate([
|
|
357
|
+
test()
|
|
358
|
+
], LslStreamInletTest, "stopPullingFlushesInletByDefault", null);
|
|
359
|
+
__decorate([
|
|
360
|
+
test()
|
|
361
|
+
], LslStreamInletTest, "stopPullingDoesNotFlushInletIfPassedOption", null);
|
|
201
362
|
__decorate([
|
|
202
363
|
test()
|
|
203
364
|
], LslStreamInletTest, "stopPullingSetsIsRunningToFalse", null);
|
|
@@ -215,26 +376,20 @@ __decorate([
|
|
|
215
376
|
], LslStreamInletTest, "callsPullChunkIfChunkSizeIsNotOne", null);
|
|
216
377
|
__decorate([
|
|
217
378
|
test()
|
|
218
|
-
], LslStreamInletTest, "
|
|
379
|
+
], LslStreamInletTest, "pushSampleHandlesErrorCode", null);
|
|
219
380
|
__decorate([
|
|
220
381
|
test()
|
|
221
|
-
], LslStreamInletTest, "
|
|
382
|
+
], LslStreamInletTest, "waitsBetweenPullsIfPassedOption", null);
|
|
222
383
|
__decorate([
|
|
223
384
|
test()
|
|
224
|
-
], LslStreamInletTest, "
|
|
225
|
-
__decorate([
|
|
226
|
-
test()
|
|
227
|
-
], LslStreamInletTest, "throwsWithUnknownErrorCode", null);
|
|
228
|
-
__decorate([
|
|
229
|
-
test()
|
|
230
|
-
], LslStreamInletTest, "throwsWithErrorCodeNegativeOne", null);
|
|
385
|
+
], LslStreamInletTest, "waitsOneMillisecondBetweenPullsIfNotPassed", null);
|
|
231
386
|
__decorate([
|
|
232
387
|
test()
|
|
233
|
-
], LslStreamInletTest, "
|
|
388
|
+
], LslStreamInletTest, "passesTimeoutMsOptionToPullSample", null);
|
|
234
389
|
__decorate([
|
|
235
390
|
test()
|
|
236
|
-
], LslStreamInletTest, "
|
|
391
|
+
], LslStreamInletTest, "passesTimeoutMsOptionToPullChunk", null);
|
|
237
392
|
__decorate([
|
|
238
393
|
test()
|
|
239
|
-
], LslStreamInletTest, "
|
|
394
|
+
], LslStreamInletTest, "defaultsMaxBufferedMsToSixMinutesInSeconds", null);
|
|
240
395
|
//# sourceMappingURL=LslStreamInlet.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslStreamInlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslStreamInlet.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LslStreamInlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslStreamInlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LslSample } from '
|
|
1
|
+
import { LslSample } from '@neurodevs/ndx-native';
|
|
2
2
|
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
3
3
|
export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
4
4
|
private static randomOutletOptions;
|
|
@@ -21,16 +21,12 @@ export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
|
21
21
|
protected static canDestroyOutlet(): Promise<void>;
|
|
22
22
|
protected static destroyAlsoCallsDestroyStreamInfo(): Promise<void>;
|
|
23
23
|
protected static pushSampleShouldNotCreateMultipleOutlets(): Promise<void>;
|
|
24
|
+
protected static pushSampleAcceptsOptionalPreciseTimestamp(): Promise<void>;
|
|
25
|
+
protected static pushSampleHandlesErrorCode(): Promise<void>;
|
|
24
26
|
protected static waitsForTenMsAfterConstructionBeforeReturning(): Promise<void>;
|
|
25
27
|
protected static defaultsMaxBufferedMsToSixMinutesInSeconds(): Promise<void>;
|
|
26
28
|
protected static defaultsManufacturerToNA(): Promise<void>;
|
|
27
29
|
protected static defaultsUnitsToNA(): Promise<void>;
|
|
28
|
-
protected static throwsWithUnknownErrorCode(): Promise<void>;
|
|
29
|
-
protected static throwsWithErrorCodeNegativeOne(): Promise<void>;
|
|
30
|
-
protected static throwsWithErrorCodeNegativeTwo(): Promise<void>;
|
|
31
|
-
protected static throwsWithErrorCodeNegativeThree(): Promise<void>;
|
|
32
|
-
protected static throwsWithErrorCodeNegativeFour(): Promise<void>;
|
|
33
|
-
private static assertThrowsWithErrorCode;
|
|
34
30
|
private static assertThrowsWithEmptyChannelNames;
|
|
35
31
|
private static assertThrowsInvalidSampleRateHz;
|
|
36
32
|
private static assertThrowsInvalidChannelFormat;
|
|
@@ -4,13 +4,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
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;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
import { FakeLiblsl } from '@neurodevs/ndx-native';
|
|
7
8
|
import { test, assert } from '@neurodevs/node-tdd';
|
|
8
9
|
import { CHANNEL_FORMATS } from '../../consts.js';
|
|
9
10
|
import LslStreamOutlet from '../../impl/LslStreamOutlet.js';
|
|
11
|
+
import { setOutletHandleLslError, setOutletLiblslAdapter, } from '../../impl/workers/outlet/LslStreamOutlet.worker.js';
|
|
10
12
|
import { TEST_SUPPORTED_CHANNEL_FORMATS, TEST_UNSUPPORTED_CHANNEL_FORMATS, } from '../../testDoubles/consts.js';
|
|
11
13
|
import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions.js';
|
|
12
|
-
import FakeLiblsl from '../../testDoubles/Liblsl/FakeLiblsl.js';
|
|
13
14
|
import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo.js';
|
|
15
|
+
import FakeWorker from '../../testDoubles/WorkerThreads/FakeWorker.js';
|
|
14
16
|
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
15
17
|
export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
16
18
|
static randomOutletOptions;
|
|
@@ -20,6 +22,9 @@ export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
|
20
22
|
this.randomOutletOptions = generateRandomOutletOptions();
|
|
21
23
|
this.setFakeLiblsl();
|
|
22
24
|
this.setFakeStreamInfo();
|
|
25
|
+
LslStreamOutlet.Worker = FakeWorker;
|
|
26
|
+
FakeWorker.resetTestDoubles();
|
|
27
|
+
setOutletLiblslAdapter(this.fakeLiblsl);
|
|
23
28
|
}
|
|
24
29
|
static async throwsWithEmptyChannelNames() {
|
|
25
30
|
await this.assertThrowsWithEmptyChannelNames();
|
|
@@ -67,31 +72,31 @@ export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
|
67
72
|
static async canPushFloatSampleToLsl(sample) {
|
|
68
73
|
const outlet = await this.FloatOutlet();
|
|
69
74
|
outlet.pushSample(sample);
|
|
70
|
-
assert.isEqual(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.
|
|
75
|
+
assert.isEqual(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.outletHandle, this.fakeLiblsl.outletHandle);
|
|
71
76
|
assert.isEqualDeep(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.sample, sample);
|
|
72
77
|
assert.isEqualDeep(this.fakeLiblsl.lastCreateOutletOptions, {
|
|
73
|
-
|
|
78
|
+
infoHandle: this.fakeLiblsl.infoHandle,
|
|
74
79
|
chunkSize: this.randomOutletOptions.chunkSize,
|
|
75
80
|
maxBufferedMs: this.randomOutletOptions.maxBufferedMs,
|
|
76
81
|
});
|
|
77
|
-
assert.isNumber(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.
|
|
82
|
+
assert.isNumber(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.timestampSec);
|
|
78
83
|
}
|
|
79
84
|
static async canPushStringSampleToLsl() {
|
|
80
85
|
const sample = [this.generateId()];
|
|
81
86
|
const outlet = await this.StringOutlet();
|
|
82
87
|
outlet.pushSample(sample);
|
|
83
|
-
assert.isEqual(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.
|
|
88
|
+
assert.isEqual(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.outletHandle, this.fakeLiblsl.outletHandle);
|
|
84
89
|
assert.isEqualDeep(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.sample, sample);
|
|
85
|
-
assert.isNumber(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.
|
|
90
|
+
assert.isNumber(this.fakeLiblsl.lastPushSampleStringTimestampOptions?.timestampSec);
|
|
86
91
|
}
|
|
87
92
|
static async pushingStringTwiceGivesDifferentTimestamps() {
|
|
88
93
|
const outlet = await this.StringOutlet();
|
|
89
94
|
const sample = [this.generateId()];
|
|
90
95
|
outlet.pushSample(sample);
|
|
91
|
-
const t1 = this.fakeLiblsl.lastPushSampleStringTimestampOptions?.
|
|
96
|
+
const t1 = this.fakeLiblsl.lastPushSampleStringTimestampOptions?.timestampSec;
|
|
92
97
|
await this.wait(10);
|
|
93
98
|
outlet.pushSample(sample);
|
|
94
|
-
const t2 = this.fakeLiblsl.lastPushSampleStringTimestampOptions?.
|
|
99
|
+
const t2 = this.fakeLiblsl.lastPushSampleStringTimestampOptions?.timestampSec;
|
|
95
100
|
assert.isNotEqual(t1, t2);
|
|
96
101
|
assert.isEqual(this.fakeLiblsl.localClockHitCount, 2);
|
|
97
102
|
}
|
|
@@ -120,7 +125,7 @@ export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
|
120
125
|
static async destroyAlsoCallsDestroyStreamInfo() {
|
|
121
126
|
const outlet = await this.LslStreamOutlet();
|
|
122
127
|
outlet.destroy();
|
|
123
|
-
assert.isEqualDeep(this.fakeLiblsl.
|
|
128
|
+
assert.isEqualDeep(this.fakeLiblsl.lastDestroyOutletOptions, { outletHandle: this.fakeLiblsl.outletHandle }, 'Did not call destroy on outlet!');
|
|
124
129
|
}
|
|
125
130
|
static async pushSampleShouldNotCreateMultipleOutlets() {
|
|
126
131
|
const outlet = await this.FloatOutlet();
|
|
@@ -129,6 +134,24 @@ export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
|
129
134
|
outlet.pushSample([3.0]);
|
|
130
135
|
assert.isEqual(this.fakeLiblsl.createOutletHitCount, 1);
|
|
131
136
|
}
|
|
137
|
+
static async pushSampleAcceptsOptionalPreciseTimestamp() {
|
|
138
|
+
const outlet = await this.FloatOutlet();
|
|
139
|
+
const timestampSec = Math.random() * 10000;
|
|
140
|
+
outlet.pushSample([1.0], timestampSec);
|
|
141
|
+
assert.isEqual(this.fakeLiblsl.lastPushSampleFloatTimestampOptions?.timestampSec, timestampSec);
|
|
142
|
+
}
|
|
143
|
+
static async pushSampleHandlesErrorCode() {
|
|
144
|
+
let passedErrorCode;
|
|
145
|
+
setOutletHandleLslError((errorCode) => {
|
|
146
|
+
passedErrorCode = errorCode;
|
|
147
|
+
});
|
|
148
|
+
FakeLiblsl.fakeErrorCode = [-4, -3, -2, -1, 0][Math.floor(Math.random() * 5)];
|
|
149
|
+
const outlet = Math.random() > 0.5
|
|
150
|
+
? await this.FloatOutlet()
|
|
151
|
+
: await this.StringOutlet();
|
|
152
|
+
outlet.pushSample([1.0]);
|
|
153
|
+
assert.isEqualDeep(passedErrorCode, FakeLiblsl.fakeErrorCode, 'Did not pass the expected error code to handleError!');
|
|
154
|
+
}
|
|
132
155
|
static async waitsForTenMsAfterConstructionBeforeReturning() {
|
|
133
156
|
const startMs = Date.now();
|
|
134
157
|
await this.LslStreamOutlet({ waitAfterConstructionMs: 10 });
|
|
@@ -147,30 +170,6 @@ export default class LslStreamOutletTest extends AbstractPackageTest {
|
|
|
147
170
|
const outlet = await this.LslStreamOutlet({ units: undefined });
|
|
148
171
|
assert.isEqualDeep(outlet['units'], 'N/A', 'Did not set units as N/A!');
|
|
149
172
|
}
|
|
150
|
-
static async throwsWithUnknownErrorCode() {
|
|
151
|
-
await this.assertThrowsWithErrorCode(-999, `An unknown liblsl error has occurred!`);
|
|
152
|
-
}
|
|
153
|
-
static async throwsWithErrorCodeNegativeOne() {
|
|
154
|
-
await this.assertThrowsWithErrorCode(-1, `The liblsl operation failed due to a timeout!`);
|
|
155
|
-
}
|
|
156
|
-
static async throwsWithErrorCodeNegativeTwo() {
|
|
157
|
-
await this.assertThrowsWithErrorCode(-2, `The liblsl stream has been lost!`);
|
|
158
|
-
}
|
|
159
|
-
static async throwsWithErrorCodeNegativeThree() {
|
|
160
|
-
await this.assertThrowsWithErrorCode(-3, 'A liblsl argument was incorrectly specified!');
|
|
161
|
-
}
|
|
162
|
-
static async throwsWithErrorCodeNegativeFour() {
|
|
163
|
-
await this.assertThrowsWithErrorCode(-4, 'An internal liblsl error has occurred!');
|
|
164
|
-
}
|
|
165
|
-
static async assertThrowsWithErrorCode(errorCode, message) {
|
|
166
|
-
FakeLiblsl.fakeErrorCode = errorCode;
|
|
167
|
-
const outlet = Math.random() > 0.5
|
|
168
|
-
? await this.FloatOutlet()
|
|
169
|
-
: await this.StringOutlet();
|
|
170
|
-
assert.doesThrow(() => {
|
|
171
|
-
outlet.pushSample([1.0]);
|
|
172
|
-
}, message);
|
|
173
|
-
}
|
|
174
173
|
static async assertThrowsWithEmptyChannelNames() {
|
|
175
174
|
await this.createAndAssertThrows('channelNames', [], `Invalid channel count! Must be a positive integer, not: 0.`);
|
|
176
175
|
}
|
|
@@ -260,34 +259,25 @@ __decorate([
|
|
|
260
259
|
], LslStreamOutletTest, "pushSampleShouldNotCreateMultipleOutlets", null);
|
|
261
260
|
__decorate([
|
|
262
261
|
test()
|
|
263
|
-
], LslStreamOutletTest, "
|
|
264
|
-
__decorate([
|
|
265
|
-
test()
|
|
266
|
-
], LslStreamOutletTest, "defaultsMaxBufferedMsToSixMinutesInSeconds", null);
|
|
262
|
+
], LslStreamOutletTest, "pushSampleAcceptsOptionalPreciseTimestamp", null);
|
|
267
263
|
__decorate([
|
|
268
264
|
test()
|
|
269
|
-
], LslStreamOutletTest, "
|
|
265
|
+
], LslStreamOutletTest, "pushSampleHandlesErrorCode", null);
|
|
270
266
|
__decorate([
|
|
271
267
|
test()
|
|
272
|
-
], LslStreamOutletTest, "
|
|
273
|
-
__decorate([
|
|
274
|
-
test()
|
|
275
|
-
], LslStreamOutletTest, "throwsWithUnknownErrorCode", null);
|
|
276
|
-
__decorate([
|
|
277
|
-
test()
|
|
278
|
-
], LslStreamOutletTest, "throwsWithErrorCodeNegativeOne", null);
|
|
268
|
+
], LslStreamOutletTest, "waitsForTenMsAfterConstructionBeforeReturning", null);
|
|
279
269
|
__decorate([
|
|
280
270
|
test()
|
|
281
|
-
], LslStreamOutletTest, "
|
|
271
|
+
], LslStreamOutletTest, "defaultsMaxBufferedMsToSixMinutesInSeconds", null);
|
|
282
272
|
__decorate([
|
|
283
273
|
test()
|
|
284
|
-
], LslStreamOutletTest, "
|
|
274
|
+
], LslStreamOutletTest, "defaultsManufacturerToNA", null);
|
|
285
275
|
__decorate([
|
|
286
276
|
test()
|
|
287
|
-
], LslStreamOutletTest, "
|
|
277
|
+
], LslStreamOutletTest, "defaultsUnitsToNA", null);
|
|
288
278
|
class CheckingOutlet extends LslStreamOutlet {
|
|
289
|
-
constructor(
|
|
290
|
-
super(
|
|
279
|
+
constructor(options) {
|
|
280
|
+
super(options);
|
|
291
281
|
}
|
|
292
282
|
}
|
|
293
283
|
//# sourceMappingURL=LslStreamOutlet.test.js.map
|