@neurodevs/node-lsl 17.1.0 → 18.0.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/.regressionproof.json +7 -0
- package/.vscode/launch.json +3 -2
- package/README.md +9 -35
- package/build/.spruce/settings.json +5 -1
- package/build/__tests__/AbstractPackageTest.d.ts +4 -4
- package/build/__tests__/AbstractPackageTest.js +9 -11
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/LslBackpressureMonitor.test.d.ts +7 -0
- package/build/__tests__/impl/LslBackpressureMonitor.test.js +26 -0
- package/build/__tests__/impl/LslBackpressureMonitor.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 +22 -8
- package/build/__tests__/impl/LslStreamInlet.test.js +240 -66
- 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 +36 -46
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +16 -17
- 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/LslBackpressureMonitor.d.ts +8 -0
- package/build/impl/LslBackpressureMonitor.js +8 -0
- package/build/impl/LslBackpressureMonitor.js.map +1 -0
- 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 -47
- package/build/impl/LslStreamInlet.js +82 -143
- 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 +8 -8
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- 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 +12 -14
- package/build/index.js +14 -16
- package/build/index.js.map +1 -1
- 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.js +11 -0
- package/build/scripts/runLslEventMarkerEmitter.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/BackpressureMonitor/FakeBackpressureMonitor.d.ts +6 -0
- package/build/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.js +10 -0
- package/build/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.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 +5 -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/validations.js +0 -2
- package/build/validations.js.map +1 -1
- package/package.json +24 -8
- package/src/.spruce/settings.json +5 -1
- package/src/__tests__/AbstractPackageTest.ts +13 -15
- package/src/__tests__/impl/LslBackpressureMonitor.test.ts +25 -0
- package/src/__tests__/impl/LslEventMarkerEmitter.test.ts +322 -0
- package/src/__tests__/impl/LslStreamInfo.test.ts +3 -40
- package/src/__tests__/impl/LslStreamInlet.test.ts +366 -95
- package/src/__tests__/impl/LslStreamOutlet.test.ts +61 -69
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +18 -18
- package/src/assertions.ts +2 -1
- package/src/impl/LslBackpressureMonitor.ts +13 -0
- package/src/impl/LslEventMarkerEmitter.ts +133 -0
- package/src/impl/LslStreamInfo.ts +17 -29
- package/src/impl/LslStreamInlet.ts +105 -208
- package/src/impl/LslStreamOutlet.ts +54 -78
- package/src/impl/LslWebSocketBridge.ts +12 -12
- 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 +14 -17
- package/src/scripts/finalizeHandles.ts +63 -0
- package/src/scripts/runLslEventMarkerEmitter.ts +15 -0
- package/src/scripts/runOutletToInlet.ts +10 -8
- package/src/scripts/testDestroyOutlet.ts +5 -0
- package/src/testDoubles/BackpressureMonitor/FakeBackpressureMonitor.ts +13 -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 +12 -15
- package/src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts +1 -1
- package/src/testDoubles/WorkerThreads/FakeWorker.ts +99 -0
- package/src/validations.ts +0 -2
- 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 -159
- 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/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 -548
- 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 → runLslEventMarkerEmitter.d.ts} +0 -0
|
@@ -4,34 +4,48 @@ import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
|
4
4
|
export default class LslStreamInletTest extends AbstractPackageTest {
|
|
5
5
|
private static instance;
|
|
6
6
|
private static callsToOnData;
|
|
7
|
+
private static readonly sampleBufferPtr;
|
|
8
|
+
private static readonly timestampBufferPtr;
|
|
9
|
+
private static readonly errorCodePtr;
|
|
10
|
+
protected static beforeAll(): Promise<void>;
|
|
7
11
|
protected static beforeEach(): Promise<void>;
|
|
8
12
|
protected static createsInstance(): Promise<void>;
|
|
9
13
|
protected static callsBindingsToCreateStreamInlet(): Promise<void>;
|
|
10
|
-
protected static
|
|
14
|
+
protected static flushInletCallsLslBinding(): Promise<void>;
|
|
11
15
|
protected static destroyCallsLslBinding(): Promise<void>;
|
|
16
|
+
protected static destroyFreesAllPointers(): Promise<void>;
|
|
17
|
+
protected static destroyCallsStopIfIsRunning(): Promise<void>;
|
|
18
|
+
protected static destroyDoesNotCallStopIfNotRunning(): Promise<void>;
|
|
12
19
|
protected static exposesIsRunningFieldThatIsFalseAtFirst(): Promise<void>;
|
|
13
20
|
protected static startPullingSetsIsRunningToTrue(): Promise<void>;
|
|
21
|
+
protected static doesNotStartPullingTwiceIfAlreadyRunning(): Promise<void>;
|
|
22
|
+
protected static startPullingOpensInletStream(): Promise<void>;
|
|
23
|
+
protected static opensInletStreamWithPassedTimeout(): Promise<void>;
|
|
24
|
+
protected static waitsAfterOpeningStreamWithPassedOption(): Promise<void>;
|
|
25
|
+
protected static stopPullingClosesInletStream(): Promise<void>;
|
|
26
|
+
protected static stopPullingFlushesInletByDefault(): Promise<void>;
|
|
27
|
+
protected static stopPullingDoesNotFlushInletIfPassedOption(): Promise<void>;
|
|
14
28
|
protected static stopPullingSetsIsRunningToFalse(): Promise<void>;
|
|
15
29
|
protected static callsOnDataForChunkSizeNotOne(): Promise<void>;
|
|
16
30
|
protected static callsOnDataForChunkSizeOne(): Promise<void>;
|
|
17
31
|
protected static callsPullSampleIfChunkSizeIsOne(): Promise<void>;
|
|
18
32
|
protected static callsPullChunkIfChunkSizeIsNotOne(): Promise<void>;
|
|
33
|
+
protected static pushSampleHandlesErrorCode(): Promise<void>;
|
|
34
|
+
protected static waitsBetweenPullsIfPassedOption(): Promise<void>;
|
|
35
|
+
protected static waitsOneMillisecondBetweenPullsIfNotPassed(): Promise<void>;
|
|
19
36
|
protected static passesTimeoutMsOptionToPullSample(): Promise<void>;
|
|
20
37
|
protected static passesTimeoutMsOptionToPullChunk(): Promise<void>;
|
|
21
38
|
protected static defaultsMaxBufferedMsToSixMinutesInSeconds(): Promise<void>;
|
|
22
|
-
|
|
23
|
-
protected static throwsWithErrorCodeNegativeOne(): Promise<void>;
|
|
24
|
-
protected static throwsWithErrorCodeNegativeTwo(): Promise<void>;
|
|
25
|
-
protected static throwsWithErrorCodeNegativeThree(): Promise<void>;
|
|
26
|
-
protected static throwsWithErrorCodeNegativeFour(): Promise<void>;
|
|
27
|
-
private static assertThrowsWithErrorCode;
|
|
39
|
+
private static startPullingThenDestroy;
|
|
28
40
|
private static runChunkSizeOne;
|
|
29
41
|
private static runInletWithOptions;
|
|
30
42
|
private static startThenStop;
|
|
31
43
|
private static startPulling;
|
|
32
44
|
private static stopPulling;
|
|
45
|
+
private static destroy;
|
|
33
46
|
private static get isRunning();
|
|
34
|
-
private static get
|
|
47
|
+
private static get inletHandle();
|
|
48
|
+
private static getFakeWorker;
|
|
35
49
|
private static onData;
|
|
36
50
|
protected static LslStreamInlet(options?: Partial<StreamInletOptions>): Promise<SpyStreamInlet>;
|
|
37
51
|
}
|
|
@@ -4,47 +4,165 @@ 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() {
|
|
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!');
|
|
82
|
+
}
|
|
83
|
+
static async destroyCallsStopIfIsRunning() {
|
|
84
|
+
await this.startPulling();
|
|
85
|
+
this.destroy();
|
|
86
|
+
assert.isFalse(this.instance.isRunning, 'Did not stop inlet before destroying!');
|
|
87
|
+
}
|
|
88
|
+
static async destroyDoesNotCallStopIfNotRunning() {
|
|
89
|
+
let wasHit = false;
|
|
90
|
+
this.instance.stopPulling = () => {
|
|
91
|
+
wasHit = true;
|
|
92
|
+
};
|
|
36
93
|
this.instance.destroy();
|
|
37
|
-
assert.
|
|
94
|
+
assert.isFalse(wasHit, 'Stop should not have been called!');
|
|
38
95
|
}
|
|
39
96
|
static async exposesIsRunningFieldThatIsFalseAtFirst() {
|
|
40
97
|
assert.isFalse(this.isRunning, 'isRunning should be false at first!');
|
|
41
98
|
}
|
|
42
99
|
static async startPullingSetsIsRunningToTrue() {
|
|
43
|
-
this.startPulling();
|
|
44
|
-
await this.wait(10);
|
|
100
|
+
await this.startPulling();
|
|
45
101
|
assert.isTrue(this.isRunning, 'isRunning should be true!');
|
|
46
102
|
this.stopPulling();
|
|
47
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
|
+
}
|
|
48
166
|
static async stopPullingSetsIsRunningToFalse() {
|
|
49
167
|
await this.startThenStop();
|
|
50
168
|
assert.isFalse(this.isRunning, 'isRunning should be false!');
|
|
@@ -58,42 +176,78 @@ export default class LslStreamInletTest extends AbstractPackageTest {
|
|
|
58
176
|
assert.isEqual(this.callsToOnData.length, 2, 'Did not call onData as expected!');
|
|
59
177
|
}
|
|
60
178
|
static async callsPullSampleIfChunkSizeIsOne() {
|
|
61
|
-
|
|
179
|
+
await this.runChunkSizeOne();
|
|
62
180
|
assert.isEqualDeep(this.fakeLiblsl.lastPullSampleOptions, {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
181
|
+
inletHandle: this.inletHandle,
|
|
182
|
+
sampleBufferPtr: this.sampleBufferPtr,
|
|
183
|
+
sampleBufferElements: this.channelCount,
|
|
184
|
+
timeoutMs: 0,
|
|
185
|
+
errorCodePtr: this.errorCodePtr,
|
|
68
186
|
}, 'Should have called pullSample!');
|
|
69
187
|
}
|
|
70
188
|
static async callsPullChunkIfChunkSizeIsNotOne() {
|
|
71
189
|
await this.startThenStop();
|
|
72
190
|
assert.isEqualDeep(this.fakeLiblsl.lastPullChunkOptions, {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
timestampBufferPtr: this.
|
|
76
|
-
|
|
191
|
+
inletHandle: this.inletHandle,
|
|
192
|
+
sampleBufferPtr: this.sampleBufferPtr,
|
|
193
|
+
timestampBufferPtr: this.timestampBufferPtr,
|
|
194
|
+
sampleBufferElements: this.chunkSize * this.channelCount,
|
|
77
195
|
timestampBufferElements: this.chunkSize,
|
|
78
|
-
|
|
79
|
-
|
|
196
|
+
timeoutMs: 0,
|
|
197
|
+
errorCodePtr: this.errorCodePtr,
|
|
80
198
|
}, 'Should have called pullChunk!');
|
|
81
199
|
}
|
|
200
|
+
static async pushSampleHandlesErrorCode() {
|
|
201
|
+
let passedErrorCode;
|
|
202
|
+
StreamInletWorker.handleError = (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 handleError!');
|
|
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
|
+
}
|
|
82
236
|
static async passesTimeoutMsOptionToPullSample() {
|
|
83
|
-
const
|
|
237
|
+
const pullTimeoutMs = 1000 * Math.random();
|
|
84
238
|
await this.runInletWithOptions({
|
|
85
239
|
chunkSize: 1,
|
|
86
|
-
|
|
240
|
+
pullTimeoutMs,
|
|
87
241
|
});
|
|
88
|
-
assert.isEqual(this.fakeLiblsl.lastPullSampleOptions?.
|
|
242
|
+
assert.isEqual(this.fakeLiblsl.lastPullSampleOptions?.timeoutMs, pullTimeoutMs, 'Did not pass pullTimeoutMs to pullSample!');
|
|
89
243
|
}
|
|
90
244
|
static async passesTimeoutMsOptionToPullChunk() {
|
|
91
|
-
const
|
|
245
|
+
const pullTimeoutMs = 1000 * Math.random();
|
|
92
246
|
await this.runInletWithOptions({
|
|
93
247
|
chunkSize: this.chunkSize,
|
|
94
|
-
|
|
248
|
+
pullTimeoutMs,
|
|
95
249
|
});
|
|
96
|
-
assert.isEqual(this.fakeLiblsl.lastPullChunkOptions?.
|
|
250
|
+
assert.isEqual(this.fakeLiblsl.lastPullChunkOptions?.timeoutMs, pullTimeoutMs, 'Did not pass timeoutMs to pullChunk!');
|
|
97
251
|
}
|
|
98
252
|
static async defaultsMaxBufferedMsToSixMinutesInSeconds() {
|
|
99
253
|
await this.runInletWithOptions({
|
|
@@ -102,27 +256,9 @@ export default class LslStreamInletTest extends AbstractPackageTest {
|
|
|
102
256
|
const sixMinutesInMs = 360 * 1000;
|
|
103
257
|
assert.isEqualDeep(this.fakeLiblsl.lastCreateInletOptions?.maxBufferedMs, sixMinutesInMs);
|
|
104
258
|
}
|
|
105
|
-
static async
|
|
106
|
-
await this.
|
|
107
|
-
|
|
108
|
-
static async throwsWithErrorCodeNegativeOne() {
|
|
109
|
-
await this.assertThrowsWithErrorCode(-1, `The liblsl operation failed due to a timeout!`);
|
|
110
|
-
}
|
|
111
|
-
static async throwsWithErrorCodeNegativeTwo() {
|
|
112
|
-
await this.assertThrowsWithErrorCode(-2, `The liblsl stream has been lost!`);
|
|
113
|
-
}
|
|
114
|
-
static async throwsWithErrorCodeNegativeThree() {
|
|
115
|
-
await this.assertThrowsWithErrorCode(-3, 'A liblsl argument was incorrectly specified!');
|
|
116
|
-
}
|
|
117
|
-
static async throwsWithErrorCodeNegativeFour() {
|
|
118
|
-
await this.assertThrowsWithErrorCode(-4, 'An internal liblsl error has occurred!');
|
|
119
|
-
}
|
|
120
|
-
static async assertThrowsWithErrorCode(errorCode, message) {
|
|
121
|
-
await this.startThenStop();
|
|
122
|
-
this.instance['errorCodeBuffer'].writeInt32LE(errorCode);
|
|
123
|
-
assert.doesThrow(() => {
|
|
124
|
-
this.instance['handleErrorCodeIfPresent']();
|
|
125
|
-
}, message);
|
|
259
|
+
static async startPullingThenDestroy() {
|
|
260
|
+
await this.startPulling();
|
|
261
|
+
this.destroy();
|
|
126
262
|
}
|
|
127
263
|
static async runChunkSizeOne() {
|
|
128
264
|
return await this.runInletWithOptions({
|
|
@@ -136,21 +272,35 @@ export default class LslStreamInletTest extends AbstractPackageTest {
|
|
|
136
272
|
}
|
|
137
273
|
static async startThenStop(inlet) {
|
|
138
274
|
const instance = inlet || this.instance;
|
|
139
|
-
|
|
275
|
+
await this.startPulling(instance);
|
|
140
276
|
await this.wait(10);
|
|
141
277
|
instance.stopPulling();
|
|
142
278
|
}
|
|
143
|
-
static startPulling() {
|
|
144
|
-
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;
|
|
145
288
|
}
|
|
146
289
|
static stopPulling() {
|
|
147
290
|
this.instance.stopPulling();
|
|
148
291
|
}
|
|
292
|
+
static destroy() {
|
|
293
|
+
this.instance.destroy();
|
|
294
|
+
}
|
|
149
295
|
static get isRunning() {
|
|
150
296
|
return this.instance.isRunning;
|
|
151
297
|
}
|
|
152
|
-
static get
|
|
153
|
-
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'];
|
|
154
304
|
}
|
|
155
305
|
static onData = (samples, timestamps) => {
|
|
156
306
|
this.callsToOnData.push({ samples, timestamps });
|
|
@@ -169,16 +319,46 @@ __decorate([
|
|
|
169
319
|
], LslStreamInletTest, "callsBindingsToCreateStreamInlet", null);
|
|
170
320
|
__decorate([
|
|
171
321
|
test()
|
|
172
|
-
], LslStreamInletTest, "
|
|
322
|
+
], LslStreamInletTest, "flushInletCallsLslBinding", null);
|
|
173
323
|
__decorate([
|
|
174
324
|
test()
|
|
175
325
|
], LslStreamInletTest, "destroyCallsLslBinding", null);
|
|
326
|
+
__decorate([
|
|
327
|
+
test()
|
|
328
|
+
], LslStreamInletTest, "destroyFreesAllPointers", null);
|
|
329
|
+
__decorate([
|
|
330
|
+
test()
|
|
331
|
+
], LslStreamInletTest, "destroyCallsStopIfIsRunning", null);
|
|
332
|
+
__decorate([
|
|
333
|
+
test()
|
|
334
|
+
], LslStreamInletTest, "destroyDoesNotCallStopIfNotRunning", null);
|
|
176
335
|
__decorate([
|
|
177
336
|
test()
|
|
178
337
|
], LslStreamInletTest, "exposesIsRunningFieldThatIsFalseAtFirst", null);
|
|
179
338
|
__decorate([
|
|
180
339
|
test()
|
|
181
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);
|
|
182
362
|
__decorate([
|
|
183
363
|
test()
|
|
184
364
|
], LslStreamInletTest, "stopPullingSetsIsRunningToFalse", null);
|
|
@@ -196,26 +376,20 @@ __decorate([
|
|
|
196
376
|
], LslStreamInletTest, "callsPullChunkIfChunkSizeIsNotOne", null);
|
|
197
377
|
__decorate([
|
|
198
378
|
test()
|
|
199
|
-
], LslStreamInletTest, "
|
|
379
|
+
], LslStreamInletTest, "pushSampleHandlesErrorCode", null);
|
|
200
380
|
__decorate([
|
|
201
381
|
test()
|
|
202
|
-
], LslStreamInletTest, "
|
|
382
|
+
], LslStreamInletTest, "waitsBetweenPullsIfPassedOption", null);
|
|
203
383
|
__decorate([
|
|
204
384
|
test()
|
|
205
|
-
], LslStreamInletTest, "
|
|
206
|
-
__decorate([
|
|
207
|
-
test()
|
|
208
|
-
], LslStreamInletTest, "throwsWithUnknownErrorCode", null);
|
|
209
|
-
__decorate([
|
|
210
|
-
test()
|
|
211
|
-
], LslStreamInletTest, "throwsWithErrorCodeNegativeOne", null);
|
|
385
|
+
], LslStreamInletTest, "waitsOneMillisecondBetweenPullsIfNotPassed", null);
|
|
212
386
|
__decorate([
|
|
213
387
|
test()
|
|
214
|
-
], LslStreamInletTest, "
|
|
388
|
+
], LslStreamInletTest, "passesTimeoutMsOptionToPullSample", null);
|
|
215
389
|
__decorate([
|
|
216
390
|
test()
|
|
217
|
-
], LslStreamInletTest, "
|
|
391
|
+
], LslStreamInletTest, "passesTimeoutMsOptionToPullChunk", null);
|
|
218
392
|
__decorate([
|
|
219
393
|
test()
|
|
220
|
-
], LslStreamInletTest, "
|
|
394
|
+
], LslStreamInletTest, "defaultsMaxBufferedMsToSixMinutesInSeconds", null);
|
|
221
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":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAIlD,OAAO,mBAAmB,MAAM,2BAA2B,CAAA;AAE3D,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,mBAAmB;IACvD,MAAM,CAAC,QAAQ,CAAgB;IAE/B,MAAM,CAAC,aAAa,CAGzB;IAEO,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QAExB,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAExB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QAEvB,IAAI,CAAC,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAA;IAC/C,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,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAA;QAE9C,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAA;QAE7D,MAAM,CAAC,WAAW,CACd,IAAI,CAAC,UAAU,CAAC,sBAAsB,EACtC;YACI,IAAI,EAAE,QAAQ,CAAC,SAAS;YACxB,aAAa,EAAE,IAAI,CAAC,aAAa;SACpC,EACD,iCAAiC,CACpC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,yBAAyB;QAC5C,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;QAE1B,MAAM,CAAC,WAAW,CACd,IAAI,CAAC,UAAU,CAAC,qBAAqB,EACrC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAC1B,gCAAgC,CACnC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;QAEvB,MAAM,CAAC,WAAW,CACd,IAAI,CAAC,UAAU,CAAC,uBAAuB,EACvC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAC1B,wBAAwB,CAC3B,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,uCAAuC;QAC1D,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,qCAAqC,CAAC,CAAA;IACzE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B;QAClD,IAAI,CAAC,YAAY,EAAE,CAAA;QACnB,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEnB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAA;QAE1D,IAAI,CAAC,WAAW,EAAE,CAAA;IACtB,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B;QAClD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAE1B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,4BAA4B,CAAC,CAAA;IAChE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B;QAChD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAE1B,MAAM,CAAC,OAAO,CACV,IAAI,CAAC,aAAa,CAAC,MAAM,EACzB,CAAC,EACD,kCAAkC,CACrC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B;QAC7C,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QAE5B,MAAM,CAAC,OAAO,CACV,IAAI,CAAC,aAAa,CAAC,MAAM,EACzB,CAAC,EACD,kCAAkC,CACrC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B;QAClD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAA;QAE1C,MAAM,CAAC,WAAW,CACd,IAAI,CAAC,UAAU,CAAC,qBAAqB,EACrC;YACI,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,aAAa,EAAE,KAAK,CAAC,eAAe,CAAC;YACrC,kBAAkB,EAAE,IAAI,CAAC,YAAY;YACrC,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,KAAK,CAAC,oBAAoB,CAAC;SAC1C,EACD,gCAAgC,CACnC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,iCAAiC;QACpD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAE1B,MAAM,CAAC,WAAW,CACd,IAAI,CAAC,UAAU,CAAC,oBAAoB,EACpC;YACI,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC7C,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACvD,kBAAkB,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY;YACtD,uBAAuB,EAAE,IAAI,CAAC,SAAS;YACvC,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;SAClD,EACD,+BAA+B,CAClC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,iCAAiC;QACpD,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAEtC,MAAM,IAAI,CAAC,mBAAmB,CAAC;YAC3B,SAAS,EAAE,CAAC;YACZ,SAAS;SACZ,CAAC,CAAA;QAEF,MAAM,CAAC,OAAO,CACV,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,OAAO,EAC9C,SAAS,GAAG,IAAI,EAChB,uCAAuC,CAC1C,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gCAAgC;QACnD,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAEtC,MAAM,IAAI,CAAC,mBAAmB,CAAC;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS;SACZ,CAAC,CAAA;QAEF,MAAM,CAAC,OAAO,CACV,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,OAAO,EAC7C,SAAS,GAAG,IAAI,EAChB,sCAAsC,CACzC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0CAA0C;QAC7D,MAAM,IAAI,CAAC,mBAAmB,CAAC;YAC3B,aAAa,EAAE,SAAS;SAC3B,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,GAAG,GAAG,IAAI,CAAA;QAEjC,MAAM,CAAC,WAAW,CACd,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,aAAa,EACrD,cAAc,CACjB,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B;QAC7C,MAAM,IAAI,CAAC,yBAAyB,CAChC,CAAC,GAAG,EACJ,uCAAuC,CAC1C,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,8BAA8B;QACjD,MAAM,IAAI,CAAC,yBAAyB,CAChC,CAAC,CAAC,EACF,+CAA+C,CAClD,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,8BAA8B;QACjD,MAAM,IAAI,CAAC,yBAAyB,CAChC,CAAC,CAAC,EACF,kCAAkC,CACrC,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gCAAgC;QACnD,MAAM,IAAI,CAAC,yBAAyB,CAChC,CAAC,CAAC,EACF,8CAA8C,CACjD,CAAA;IACL,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B;QAClD,MAAM,IAAI,CAAC,yBAAyB,CAChC,CAAC,CAAC,EACF,wCAAwC,CAC3C,CAAA;IACL,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAC1C,SAAiB,EACjB,OAAe;QAEf,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAE1B,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QAExD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAA;QAC/C,CAAC,EAAE,OAAO,CAAC,CAAA;IACf,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe;QAChC,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC;YAClC,SAAS,EAAE,CAAC;SACf,CAAC,CAAA;IACN,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACpC,OAAqC;QAErC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAChD,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAC/B,OAAO,KAAK,CAAA;IAChB,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAsB;QACrD,MAAM,QAAQ,GAAG,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAA;QACvC,QAAQ,CAAC,YAAY,EAAE,CAAA;QACvB,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACnB,QAAQ,CAAC,WAAW,EAAE,CAAA;IAC1B,CAAC;IAEO,MAAM,CAAC,YAAY;QACvB,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;IAChC,CAAC;IAEO,MAAM,CAAC,WAAW;QACtB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAA;IAC/B,CAAC;IAEO,MAAM,KAAK,SAAS;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAA;IAClC,CAAC;IAEO,MAAM,KAAK,UAAU;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAA;IACxC,CAAC;IAEO,MAAM,CAAC,MAAM,GAAG,CACpB,OAAqB,EACrB,UAAwB,EAC1B,EAAE;QACA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;IACpD,CAAC,CAAA;IAES,MAAM,CAAC,KAAK,CAAC,cAAc,CACjC,OAAqC;QAErC,OAAO,CAAC,MAAM,mBAAmB,CAAC,cAAc,CAC5C;YACI,GAAG,OAAO;SACb,EACD,IAAI,CAAC,MAAM,CACd,CAAmB,CAAA;IACxB,CAAC;;AAlRsB;IADtB,IAAI,EAAE;+CAGN;AAGsB;IADtB,IAAI,EAAE;gEAcN;AAGsB;IADtB,IAAI,EAAE;yDASN;AAGsB;IADtB,IAAI,EAAE;sDASN;AAGsB;IADtB,IAAI,EAAE;uEAGN;AAGsB;IADtB,IAAI,EAAE;+DAQN;AAGsB;IADtB,IAAI,EAAE;+DAKN;AAGsB;IADtB,IAAI,EAAE;6DASN;AAGsB;IADtB,IAAI,EAAE;0DASN;AAGsB;IADtB,IAAI,EAAE;+DAeN;AAGsB;IADtB,IAAI,EAAE;iEAiBN;AAGsB;IADtB,IAAI,EAAE;iEAcN;AAGsB;IADtB,IAAI,EAAE;gEAcN;AAGsB;IADtB,IAAI,EAAE;0EAYN;AAGsB;IADtB,IAAI,EAAE;0DAMN;AAGsB;IADtB,IAAI,EAAE;8DAMN;AAGsB;IADtB,IAAI,EAAE;8DAMN;AAGsB;IADtB,IAAI,EAAE;gEAMN;AAGsB;IADtB,IAAI,EAAE;+DAMN"}
|
|
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;
|