@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
|
@@ -1,21 +1,43 @@
|
|
|
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
|
-
|
|
18
|
-
|
|
7
|
+
import { randomInt } from 'crypto';
|
|
8
|
+
import generateId from '@neurodevs/generate-id';
|
|
9
|
+
import { test, assert } from '@neurodevs/node-tdd';
|
|
10
|
+
import { DataType } from 'ffi-rs';
|
|
11
|
+
import LiblslAdapter from '../../impl/LiblslAdapter.js';
|
|
12
|
+
import FakeLiblsl from '../../testDoubles/Liblsl/FakeLiblsl.js';
|
|
13
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
14
|
+
export default class LiblslAdapterTest extends AbstractPackageTest {
|
|
15
|
+
static instance;
|
|
16
|
+
static libraryPath;
|
|
17
|
+
static libraryOptions;
|
|
18
|
+
static fakeBindings;
|
|
19
|
+
static fakeStreamInfo;
|
|
20
|
+
static fakeOutlet;
|
|
21
|
+
static fakeInlet = {};
|
|
22
|
+
static fakeDesc;
|
|
23
|
+
static fakeChildNamedChannels;
|
|
24
|
+
static createStreamInfoParams;
|
|
25
|
+
static appendChildParams = [];
|
|
26
|
+
static createOutletParams;
|
|
27
|
+
static destroyOutletParams;
|
|
28
|
+
static createInletParams;
|
|
29
|
+
static flushInletParams;
|
|
30
|
+
static destroyInletParams;
|
|
31
|
+
static localClockParams;
|
|
32
|
+
static pushSampleFloatTimestampParams;
|
|
33
|
+
static pushSampleStringTimestampParams;
|
|
34
|
+
static appendChildValueParams;
|
|
35
|
+
static shouldThrowWhenCreatingBindings;
|
|
36
|
+
static getDescriptionParams;
|
|
37
|
+
static fakeChildNamedChannel;
|
|
38
|
+
static appendChildHitCount;
|
|
39
|
+
static ffiRsOpenOptions;
|
|
40
|
+
static ffiRsDefineOptions;
|
|
19
41
|
static async beforeEach() {
|
|
20
42
|
await super.beforeEach();
|
|
21
43
|
delete this.libraryPath;
|
|
@@ -29,7 +51,7 @@ class LiblslAdapterTest extends AbstractLslTest_1.default {
|
|
|
29
51
|
delete this.getDescriptionParams;
|
|
30
52
|
this.appendChildParams = [];
|
|
31
53
|
this.appendChildValueParams = [];
|
|
32
|
-
process.env.LIBLSL_PATH =
|
|
54
|
+
process.env.LIBLSL_PATH = generateId();
|
|
33
55
|
this.fakeStreamInfo = {};
|
|
34
56
|
this.fakeDesc = {};
|
|
35
57
|
this.fakeOutlet = {};
|
|
@@ -39,265 +61,277 @@ class LiblslAdapterTest extends AbstractLslTest_1.default {
|
|
|
39
61
|
this.shouldThrowWhenCreatingBindings = false;
|
|
40
62
|
this.appendChildHitCount = 0;
|
|
41
63
|
delete this.ffiRsOpenOptions;
|
|
42
|
-
|
|
64
|
+
LiblslAdapter.ffiRsOpen = (options) => {
|
|
43
65
|
this.ffiRsOpenOptions = options;
|
|
44
66
|
};
|
|
45
|
-
|
|
67
|
+
LiblslAdapter.ffiRsDefine = (options) => {
|
|
46
68
|
this.ffiRsDefineOptions = options;
|
|
47
69
|
if (this.shouldThrowWhenCreatingBindings) {
|
|
48
70
|
throw new Error('Failed to create bindings!');
|
|
49
71
|
}
|
|
50
72
|
return this.fakeBindings;
|
|
51
73
|
};
|
|
52
|
-
|
|
53
|
-
this.
|
|
74
|
+
LiblslAdapter.resetInstance();
|
|
75
|
+
this.instance = LiblslAdapter.getInstance();
|
|
76
|
+
}
|
|
77
|
+
static async createsInstance() {
|
|
78
|
+
assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
54
79
|
}
|
|
55
80
|
static async throwsWhenBindingsFailToLoad() {
|
|
56
81
|
this.shouldThrowWhenCreatingBindings = true;
|
|
57
|
-
|
|
58
|
-
const err =
|
|
59
|
-
|
|
60
|
-
test_utils_1.assert.isTrue(err.message.includes(this.generateFailedMessage()), 'Did not receive the expected error!');
|
|
82
|
+
LiblslAdapter.resetInstance();
|
|
83
|
+
const err = assert.doesThrow(() => LiblslAdapter.getInstance());
|
|
84
|
+
assert.isTrue(err.message.includes(this.generateFailedMessage()), 'Did not receive the expected error!');
|
|
61
85
|
}
|
|
62
86
|
static async callsOpenOnFfiRs() {
|
|
63
|
-
|
|
87
|
+
assert.isEqualDeep(this.ffiRsOpenOptions, {
|
|
64
88
|
library: 'lsl',
|
|
65
89
|
path: process.env.LIBLSL_PATH,
|
|
66
90
|
});
|
|
67
91
|
}
|
|
68
92
|
static async worksAsASingleton() {
|
|
69
|
-
const liblsl =
|
|
93
|
+
const liblsl = LiblslAdapter.getInstance();
|
|
70
94
|
//@ts-ignore
|
|
71
|
-
|
|
95
|
+
assert.isInstanceOf(liblsl, LiblslAdapter);
|
|
72
96
|
}
|
|
73
97
|
static async singletonIsTheSame() {
|
|
74
|
-
|
|
98
|
+
assert.isEqual(LiblslAdapter.getInstance(), LiblslAdapter.getInstance());
|
|
75
99
|
}
|
|
76
100
|
static canSetInstance() {
|
|
77
|
-
const fake = new
|
|
78
|
-
|
|
79
|
-
|
|
101
|
+
const fake = new FakeLiblsl();
|
|
102
|
+
LiblslAdapter.setInstance(fake);
|
|
103
|
+
assert.isEqual(LiblslAdapter.getInstance(), fake);
|
|
80
104
|
}
|
|
81
105
|
static async createsExpectedBindingsWithFfiRs() {
|
|
82
|
-
|
|
106
|
+
assert.isEqualDeep(this.ffiRsDefineOptions, {
|
|
83
107
|
lsl_create_streaminfo: {
|
|
84
108
|
library: 'lsl',
|
|
85
|
-
retType:
|
|
109
|
+
retType: DataType.External,
|
|
86
110
|
paramsType: [
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
111
|
+
DataType.String,
|
|
112
|
+
DataType.String,
|
|
113
|
+
DataType.I32,
|
|
114
|
+
DataType.Double,
|
|
115
|
+
DataType.I32,
|
|
116
|
+
DataType.String,
|
|
93
117
|
],
|
|
94
118
|
},
|
|
95
119
|
lsl_create_outlet: {
|
|
96
120
|
library: 'lsl',
|
|
97
|
-
retType:
|
|
98
|
-
paramsType: [
|
|
121
|
+
retType: DataType.External,
|
|
122
|
+
paramsType: [DataType.External, DataType.I32, DataType.I32],
|
|
99
123
|
},
|
|
100
|
-
|
|
124
|
+
lsl_push_sample_ft: {
|
|
101
125
|
library: 'lsl',
|
|
102
|
-
retType:
|
|
103
|
-
paramsType: [
|
|
126
|
+
retType: DataType.Void,
|
|
127
|
+
paramsType: [
|
|
128
|
+
DataType.External,
|
|
129
|
+
DataType.FloatArray,
|
|
130
|
+
DataType.Double,
|
|
131
|
+
],
|
|
104
132
|
},
|
|
105
|
-
|
|
133
|
+
lsl_push_sample_strt: {
|
|
106
134
|
library: 'lsl',
|
|
107
|
-
retType:
|
|
108
|
-
paramsType: [
|
|
135
|
+
retType: DataType.Void,
|
|
136
|
+
paramsType: [
|
|
137
|
+
DataType.External,
|
|
138
|
+
DataType.StringArray,
|
|
139
|
+
DataType.Double,
|
|
140
|
+
],
|
|
109
141
|
},
|
|
110
|
-
|
|
142
|
+
lsl_destroy_outlet: {
|
|
111
143
|
library: 'lsl',
|
|
112
|
-
retType:
|
|
113
|
-
paramsType: [
|
|
144
|
+
retType: DataType.Void,
|
|
145
|
+
paramsType: [DataType.External],
|
|
114
146
|
},
|
|
115
|
-
|
|
147
|
+
lsl_create_inlet: {
|
|
116
148
|
library: 'lsl',
|
|
117
|
-
retType:
|
|
118
|
-
paramsType: [],
|
|
149
|
+
retType: DataType.External,
|
|
150
|
+
paramsType: [DataType.External, DataType.I32, DataType.I32],
|
|
119
151
|
},
|
|
120
|
-
|
|
152
|
+
lsl_flush_inlet: {
|
|
121
153
|
library: 'lsl',
|
|
122
|
-
retType:
|
|
123
|
-
paramsType: [
|
|
124
|
-
ffi_rs_1.DataType.External,
|
|
125
|
-
ffi_rs_1.DataType.FloatArray,
|
|
126
|
-
ffi_rs_1.DataType.Double,
|
|
127
|
-
],
|
|
154
|
+
retType: DataType.I32,
|
|
155
|
+
paramsType: [DataType.External],
|
|
128
156
|
},
|
|
129
|
-
|
|
157
|
+
lsl_destroy_inlet: {
|
|
130
158
|
library: 'lsl',
|
|
131
|
-
retType:
|
|
132
|
-
paramsType: [
|
|
133
|
-
ffi_rs_1.DataType.External,
|
|
134
|
-
ffi_rs_1.DataType.StringArray,
|
|
135
|
-
ffi_rs_1.DataType.Double,
|
|
136
|
-
],
|
|
159
|
+
retType: DataType.Void,
|
|
160
|
+
paramsType: [DataType.External],
|
|
137
161
|
},
|
|
138
162
|
lsl_get_desc: {
|
|
139
163
|
library: 'lsl',
|
|
140
|
-
retType:
|
|
141
|
-
paramsType: [
|
|
164
|
+
retType: DataType.External,
|
|
165
|
+
paramsType: [DataType.External],
|
|
142
166
|
},
|
|
143
167
|
lsl_append_child: {
|
|
144
168
|
library: 'lsl',
|
|
145
|
-
retType:
|
|
146
|
-
paramsType: [
|
|
169
|
+
retType: DataType.External,
|
|
170
|
+
paramsType: [DataType.External, DataType.String],
|
|
147
171
|
},
|
|
148
172
|
lsl_append_child_value: {
|
|
149
173
|
library: 'lsl',
|
|
150
|
-
retType:
|
|
174
|
+
retType: DataType.External,
|
|
151
175
|
paramsType: [
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
176
|
+
DataType.External,
|
|
177
|
+
DataType.String,
|
|
178
|
+
DataType.String,
|
|
155
179
|
],
|
|
156
180
|
},
|
|
181
|
+
lsl_local_clock: {
|
|
182
|
+
library: 'lsl',
|
|
183
|
+
retType: DataType.Double,
|
|
184
|
+
paramsType: [],
|
|
185
|
+
},
|
|
157
186
|
});
|
|
158
187
|
}
|
|
159
188
|
static async canCreateStreamInfoWithRequiredParams() {
|
|
160
189
|
const options = this.generateRandomCreateStreamInfoOptions();
|
|
161
|
-
const actual = this.
|
|
162
|
-
|
|
163
|
-
|
|
190
|
+
const actual = this.instance.createStreamInfo(options);
|
|
191
|
+
assert.isEqual(actual, this.fakeStreamInfo);
|
|
192
|
+
assert.isEqualDeep(this.createStreamInfoParams, Object.values(options));
|
|
164
193
|
}
|
|
165
194
|
static async canCreateOutletWithRequiredParams() {
|
|
166
195
|
const { options, outlet } = this.createRandomOutlet();
|
|
167
|
-
|
|
168
|
-
|
|
196
|
+
assert.isEqualDeep(this.createOutletParams, Object.values(options));
|
|
197
|
+
assert.isEqual(outlet, this.fakeOutlet);
|
|
169
198
|
}
|
|
170
199
|
static async canPushFloatSample() {
|
|
171
200
|
const expected = [1.0, 2.0, 3.0];
|
|
172
|
-
const timestamp =
|
|
201
|
+
const timestamp = randomInt(100);
|
|
173
202
|
const options = {
|
|
174
203
|
outlet: this.fakeOutlet,
|
|
175
204
|
sample: expected,
|
|
176
205
|
timestamp,
|
|
177
206
|
};
|
|
178
|
-
this.
|
|
179
|
-
|
|
207
|
+
this.instance.pushSampleFloatTimestamp(options);
|
|
208
|
+
assert.isEqualDeep(this.pushSampleFloatTimestampParams, [
|
|
180
209
|
this.fakeOutlet,
|
|
181
210
|
expected,
|
|
182
211
|
timestamp,
|
|
183
212
|
]);
|
|
184
213
|
}
|
|
185
214
|
static async canPushStringSample() {
|
|
186
|
-
const expected = [
|
|
187
|
-
const timestamp =
|
|
215
|
+
const expected = [generateId()];
|
|
216
|
+
const timestamp = randomInt(100);
|
|
188
217
|
const options = {
|
|
189
218
|
outlet: this.fakeOutlet,
|
|
190
219
|
sample: expected,
|
|
191
220
|
timestamp,
|
|
192
221
|
};
|
|
193
|
-
this.
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
222
|
+
this.instance.pushSampleStringTimestamp(options);
|
|
223
|
+
assert.isEqual(this.pushSampleStringTimestampParams?.[0], this.fakeOutlet);
|
|
224
|
+
assert.isEqualDeep(this.pushSampleStringTimestampParams?.[1], expected);
|
|
225
|
+
assert.isEqual(this.pushSampleStringTimestampParams?.[2], timestamp);
|
|
197
226
|
}
|
|
198
227
|
static async addingSingleChannelGetsDescription() {
|
|
199
228
|
const info = this.createRandomStreamInfo();
|
|
200
229
|
const channel = this.generateRandomChannelValues();
|
|
201
|
-
this.
|
|
230
|
+
this.instance.appendChannelsToStreamInfo({
|
|
202
231
|
info,
|
|
203
232
|
channels: [channel],
|
|
204
233
|
});
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
234
|
+
assert.isEqualDeep(this.getDescriptionParams?.[0], [info]);
|
|
235
|
+
assert.isEqual(this.appendChildParams?.[0][0], this.fakeDesc);
|
|
236
|
+
assert.isEqual(this.appendChildParams?.[0][1], 'channels');
|
|
237
|
+
assert.isEqual(this.appendChildParams?.[1][0], this.fakeChildNamedChannels);
|
|
238
|
+
assert.isEqual(this.appendChildParams?.[1][1], 'channel');
|
|
239
|
+
assert.isLength(this.appendChildValueParams, 3);
|
|
211
240
|
for (let i = 0; i < 3; i++) {
|
|
212
241
|
const param = this.appendChildValueParams[i];
|
|
213
|
-
|
|
242
|
+
assert.isEqual(param[0], this.fakeChildNamedChannel);
|
|
214
243
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
244
|
+
assert.isEqual(this.appendChildValueParams[0][1], 'label');
|
|
245
|
+
assert.isEqual(this.appendChildValueParams[1][1], 'unit');
|
|
246
|
+
assert.isEqual(this.appendChildValueParams[2][1], 'type');
|
|
247
|
+
assert.isEqual(this.appendChildValueParams[0][2], channel.label);
|
|
248
|
+
assert.isEqual(this.appendChildValueParams[1][2], channel.unit);
|
|
249
|
+
assert.isEqual(this.appendChildValueParams[2][2], channel.type);
|
|
221
250
|
}
|
|
222
251
|
static async addingMultpleChannelsAddsChildrenToChannelsChild() {
|
|
223
252
|
const info = this.createRandomStreamInfo();
|
|
224
253
|
const channel1 = this.generateRandomChannelValues();
|
|
225
254
|
const channel2 = this.generateRandomChannelValues();
|
|
226
|
-
this.
|
|
255
|
+
this.instance.appendChannelsToStreamInfo({
|
|
227
256
|
info,
|
|
228
257
|
channels: [channel1, channel2],
|
|
229
258
|
});
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
259
|
+
assert.isEqual(this.appendChildParams?.[2][0], this.fakeChildNamedChannels);
|
|
260
|
+
assert.isEqual(this.appendChildParams?.[2][1], 'channel');
|
|
261
|
+
assert.isEqual(this.appendChildValueParams[3][2], channel2.label);
|
|
262
|
+
assert.isEqual(this.appendChildValueParams[4][2], channel2.unit);
|
|
263
|
+
assert.isEqual(this.appendChildValueParams[5][2], channel2.type);
|
|
235
264
|
}
|
|
236
265
|
static async canDestroyOutlet() {
|
|
237
266
|
const outlet = this.createRandomOutlet();
|
|
238
267
|
const options = { outlet };
|
|
239
|
-
this.
|
|
240
|
-
|
|
268
|
+
this.instance.destroyOutlet(options);
|
|
269
|
+
assert.isEqualDeep(this.destroyOutletParams, Object.values(options));
|
|
241
270
|
}
|
|
242
271
|
static async callingLocalClockTwiceReturnsDifferentTimestamps() {
|
|
243
|
-
const t1 = this.
|
|
272
|
+
const t1 = this.instance.localClock();
|
|
244
273
|
await this.wait(10);
|
|
245
|
-
const t2 = this.
|
|
246
|
-
|
|
274
|
+
const t2 = this.instance.localClock();
|
|
275
|
+
assert.isNotEqual(t1, t2);
|
|
247
276
|
}
|
|
248
277
|
static async localClockBindingReceivesEmptyArray() {
|
|
249
278
|
delete this.localClockParams;
|
|
250
|
-
this.
|
|
251
|
-
|
|
279
|
+
this.instance.localClock();
|
|
280
|
+
assert.isEqualDeep(this.localClockParams, []);
|
|
252
281
|
}
|
|
253
282
|
static async defaultsToMacOsPath() {
|
|
254
283
|
delete process.env.LIBLSL_PATH;
|
|
255
|
-
|
|
256
|
-
this.
|
|
257
|
-
|
|
284
|
+
LiblslAdapter.resetInstance();
|
|
285
|
+
this.instance = LiblslAdapter.getInstance();
|
|
286
|
+
assert.isEqual(this.ffiRsOpenOptions?.path, '/opt/homebrew/Cellar/lsl/1.16.2/lib/liblsl.1.16.2.dylib');
|
|
258
287
|
}
|
|
259
288
|
static async canCreateInletWithRequiredParams() {
|
|
260
289
|
const { options, inlet } = this.createRandomInlet();
|
|
261
|
-
|
|
262
|
-
|
|
290
|
+
assert.isEqualDeep(this.createInletParams, Object.values(options));
|
|
291
|
+
assert.isEqual(inlet, this.fakeInlet);
|
|
292
|
+
}
|
|
293
|
+
static async flushInletCallsBinding() {
|
|
294
|
+
const { inlet } = this.createRandomInlet();
|
|
295
|
+
this.instance.flushInlet({ inlet });
|
|
296
|
+
assert.isEqualDeep(this.flushInletParams, [inlet], 'Should have called flushInlet with expected params!');
|
|
263
297
|
}
|
|
264
298
|
static createRandomStreamInfo() {
|
|
265
|
-
return this.
|
|
299
|
+
return this.instance.createStreamInfo(this.generateRandomCreateStreamInfoOptions());
|
|
266
300
|
}
|
|
267
301
|
static createRandomOutlet() {
|
|
268
302
|
const options = this.createRandomOptions();
|
|
269
|
-
const outlet = this.
|
|
303
|
+
const outlet = this.instance.createOutlet(options);
|
|
270
304
|
return { options, outlet };
|
|
271
305
|
}
|
|
272
306
|
static createRandomInlet() {
|
|
273
307
|
const options = this.createRandomOptions();
|
|
274
|
-
const inlet = this.
|
|
308
|
+
const inlet = this.instance.createInlet(options);
|
|
275
309
|
return { options, inlet };
|
|
276
310
|
}
|
|
277
311
|
static createRandomOptions() {
|
|
278
312
|
const info = this.createRandomStreamInfo();
|
|
279
313
|
const options = {
|
|
280
314
|
info,
|
|
281
|
-
chunkSize:
|
|
282
|
-
maxBuffered:
|
|
315
|
+
chunkSize: randomInt(10),
|
|
316
|
+
maxBuffered: randomInt(10),
|
|
283
317
|
};
|
|
284
318
|
return options;
|
|
285
319
|
}
|
|
286
320
|
static generateRandomChannelValues() {
|
|
287
321
|
return {
|
|
288
|
-
label:
|
|
289
|
-
type:
|
|
290
|
-
unit:
|
|
322
|
+
label: generateId(),
|
|
323
|
+
type: generateId(),
|
|
324
|
+
unit: generateId(),
|
|
291
325
|
};
|
|
292
326
|
}
|
|
293
327
|
static generateRandomCreateStreamInfoOptions() {
|
|
294
328
|
return {
|
|
295
|
-
name:
|
|
296
|
-
type:
|
|
297
|
-
channelCount:
|
|
298
|
-
sampleRate:
|
|
299
|
-
channelFormat:
|
|
300
|
-
sourceId:
|
|
329
|
+
name: generateId(),
|
|
330
|
+
type: generateId(),
|
|
331
|
+
channelCount: randomInt(1, 10),
|
|
332
|
+
sampleRate: randomInt(100),
|
|
333
|
+
channelFormat: randomInt(7),
|
|
334
|
+
sourceId: generateId(),
|
|
301
335
|
};
|
|
302
336
|
}
|
|
303
337
|
static generateFailedMessage() {
|
|
@@ -326,6 +360,10 @@ class LiblslAdapterTest extends AbstractLslTest_1.default {
|
|
|
326
360
|
this.createInletParams = params;
|
|
327
361
|
return this.fakeInlet;
|
|
328
362
|
},
|
|
363
|
+
lsl_flush_inlet: (params) => {
|
|
364
|
+
this.flushInletParams = params;
|
|
365
|
+
return 0;
|
|
366
|
+
},
|
|
329
367
|
lsl_destroy_inlet: (params) => {
|
|
330
368
|
this.destroyInletParams = params;
|
|
331
369
|
},
|
|
@@ -351,57 +389,61 @@ class LiblslAdapterTest extends AbstractLslTest_1.default {
|
|
|
351
389
|
};
|
|
352
390
|
}
|
|
353
391
|
}
|
|
354
|
-
LiblslAdapterTest.appendChildParams = [];
|
|
355
|
-
exports.default = LiblslAdapterTest;
|
|
356
392
|
__decorate([
|
|
357
|
-
|
|
393
|
+
test()
|
|
394
|
+
], LiblslAdapterTest, "createsInstance", null);
|
|
395
|
+
__decorate([
|
|
396
|
+
test()
|
|
358
397
|
], LiblslAdapterTest, "throwsWhenBindingsFailToLoad", null);
|
|
359
398
|
__decorate([
|
|
360
|
-
|
|
399
|
+
test()
|
|
361
400
|
], LiblslAdapterTest, "callsOpenOnFfiRs", null);
|
|
362
401
|
__decorate([
|
|
363
|
-
|
|
402
|
+
test()
|
|
364
403
|
], LiblslAdapterTest, "worksAsASingleton", null);
|
|
365
404
|
__decorate([
|
|
366
|
-
|
|
405
|
+
test()
|
|
367
406
|
], LiblslAdapterTest, "singletonIsTheSame", null);
|
|
368
407
|
__decorate([
|
|
369
|
-
|
|
408
|
+
test()
|
|
370
409
|
], LiblslAdapterTest, "canSetInstance", null);
|
|
371
410
|
__decorate([
|
|
372
|
-
|
|
411
|
+
test()
|
|
373
412
|
], LiblslAdapterTest, "createsExpectedBindingsWithFfiRs", null);
|
|
374
413
|
__decorate([
|
|
375
|
-
|
|
414
|
+
test()
|
|
376
415
|
], LiblslAdapterTest, "canCreateStreamInfoWithRequiredParams", null);
|
|
377
416
|
__decorate([
|
|
378
|
-
|
|
417
|
+
test()
|
|
379
418
|
], LiblslAdapterTest, "canCreateOutletWithRequiredParams", null);
|
|
380
419
|
__decorate([
|
|
381
|
-
|
|
420
|
+
test()
|
|
382
421
|
], LiblslAdapterTest, "canPushFloatSample", null);
|
|
383
422
|
__decorate([
|
|
384
|
-
|
|
423
|
+
test()
|
|
385
424
|
], LiblslAdapterTest, "canPushStringSample", null);
|
|
386
425
|
__decorate([
|
|
387
|
-
|
|
426
|
+
test()
|
|
388
427
|
], LiblslAdapterTest, "addingSingleChannelGetsDescription", null);
|
|
389
428
|
__decorate([
|
|
390
|
-
|
|
429
|
+
test()
|
|
391
430
|
], LiblslAdapterTest, "addingMultpleChannelsAddsChildrenToChannelsChild", null);
|
|
392
431
|
__decorate([
|
|
393
|
-
|
|
432
|
+
test()
|
|
394
433
|
], LiblslAdapterTest, "canDestroyOutlet", null);
|
|
395
434
|
__decorate([
|
|
396
|
-
|
|
435
|
+
test()
|
|
397
436
|
], LiblslAdapterTest, "callingLocalClockTwiceReturnsDifferentTimestamps", null);
|
|
398
437
|
__decorate([
|
|
399
|
-
|
|
438
|
+
test()
|
|
400
439
|
], LiblslAdapterTest, "localClockBindingReceivesEmptyArray", null);
|
|
401
440
|
__decorate([
|
|
402
|
-
|
|
441
|
+
test()
|
|
403
442
|
], LiblslAdapterTest, "defaultsToMacOsPath", null);
|
|
404
443
|
__decorate([
|
|
405
|
-
|
|
444
|
+
test()
|
|
406
445
|
], LiblslAdapterTest, "canCreateInletWithRequiredParams", null);
|
|
446
|
+
__decorate([
|
|
447
|
+
test()
|
|
448
|
+
], LiblslAdapterTest, "flushInletCallsBinding", null);
|
|
407
449
|
//# sourceMappingURL=LiblslAdapter.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LiblslAdapter.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LiblslAdapter.test.ts"],"names":[],"mappings":"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"}
|
package/build/__tests__/{modules/EventMarkerOutlet.test.d.ts → impl/LslEventMarkerOutlet.test.d.ts}
RENAMED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
export default class EventMarkerOutletTest extends
|
|
1
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
2
|
+
export default class EventMarkerOutletTest extends AbstractPackageTest {
|
|
3
3
|
private static instance;
|
|
4
4
|
protected static beforeEach(): Promise<void>;
|
|
5
|
+
protected static createsInstance(): Promise<void>;
|
|
5
6
|
protected static loadsWithEventMarkerSpecificOptions(): Promise<void>;
|
|
6
7
|
protected static canOverrideDefaultOptions(): Promise<void>;
|
|
7
8
|
protected static pushingSingleMarkerIncrementsHitCountAndWaitTime(): Promise<void>;
|
|
@@ -11,9 +12,9 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
|
|
|
11
12
|
protected static doesNotWaitIfStopped(): Promise<void>;
|
|
12
13
|
protected static clearsTheTimeoutOnStop(): Promise<void>;
|
|
13
14
|
protected static pushMarkerCallsPushSampleOnMarkerOutlet(): Promise<void>;
|
|
14
|
-
private static get
|
|
15
|
+
private static get streamOutlet();
|
|
15
16
|
private static setupOutlet;
|
|
16
17
|
private static pushTotalMarkers;
|
|
17
18
|
private static generateDurationMarker;
|
|
18
|
-
private static
|
|
19
|
+
private static LslEventMarkerOutlet;
|
|
19
20
|
}
|