@neurodevs/node-lsl 3.3.1 → 4.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/build/Liblsl.d.ts +15 -4
- package/build/Liblsl.js +20 -4
- package/build/Liblsl.js.map +1 -1
- package/build/LslOutlet.d.ts +1 -1
- package/build/LslOutlet.js +24 -7
- package/build/LslOutlet.js.map +1 -1
- package/build/TimeMarkerOutlet.d.ts +6 -0
- package/build/TimeMarkerOutlet.js +9 -0
- package/build/TimeMarkerOutlet.js.map +1 -1
- package/build/__tests__/behavioral/LslOutlet.test.d.ts +6 -2
- package/build/__tests__/behavioral/LslOutlet.test.js +63 -15
- package/build/__tests__/behavioral/LslOutlet.test.js.map +1 -1
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.d.ts +4 -0
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.js +33 -4
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.js.map +1 -1
- package/build/__tests__/implementation/Liblsl.test.d.ts +8 -4
- package/build/__tests__/implementation/Liblsl.test.js +93 -60
- package/build/__tests__/implementation/Liblsl.test.js.map +1 -1
- package/build/__tests__/support/SpyLiblsl.d.ts +10 -5
- package/build/__tests__/support/SpyLiblsl.js +12 -2
- package/build/__tests__/support/SpyLiblsl.js.map +1 -1
- package/package.json +1 -1
- package/src/Liblsl.ts +43 -11
- package/src/LslOutlet.ts +44 -21
- package/src/TimeMarkerOutlet.ts +16 -0
- package/src/__tests__/behavioral/LslOutlet.test.ts +70 -13
- package/src/__tests__/behavioral/TimeMarkerOutlet.test.ts +45 -6
- package/src/__tests__/implementation/Liblsl.test.ts +88 -71
- package/src/__tests__/support/SpyLiblsl.ts +24 -9
package/build/Liblsl.d.ts
CHANGED
|
@@ -12,14 +12,18 @@ export default class LiblslImpl implements Liblsl {
|
|
|
12
12
|
appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
|
|
13
13
|
createOutlet(options: CreateOutletOptions): BoundOutlet;
|
|
14
14
|
destroyOutlet(options: DestroyOutletOptions): void;
|
|
15
|
-
|
|
15
|
+
pushSampleFt(options: PushSampleFtOptions): void;
|
|
16
|
+
pushSampleStrt(options: PushSampleStrtOptions): void;
|
|
17
|
+
localClock(): number;
|
|
16
18
|
}
|
|
17
19
|
export interface Liblsl {
|
|
18
20
|
createStreamInfo(options: CreateStreamInfoOptions): BoundStreamInfo;
|
|
19
21
|
appendChannelsToStreamInfo(options: AppendChannelsToStreamInfoOptions): void;
|
|
20
22
|
createOutlet(options: CreateOutletOptions): BoundOutlet;
|
|
21
23
|
destroyOutlet(options: DestroyOutletOptions): void;
|
|
22
|
-
|
|
24
|
+
pushSampleFt(options: PushSampleFtOptions): void;
|
|
25
|
+
pushSampleStrt(options: PushSampleStrtOptions): void;
|
|
26
|
+
localClock(): number;
|
|
23
27
|
}
|
|
24
28
|
export interface CreateStreamInfoOptions {
|
|
25
29
|
name: string;
|
|
@@ -43,9 +47,15 @@ export interface CreateOutletOptions {
|
|
|
43
47
|
export interface DestroyOutletOptions {
|
|
44
48
|
outlet: BoundOutlet;
|
|
45
49
|
}
|
|
46
|
-
export interface
|
|
50
|
+
export interface PushSampleFtOptions {
|
|
47
51
|
outlet: BoundOutlet;
|
|
48
|
-
sample:
|
|
52
|
+
sample: number[];
|
|
53
|
+
timestamp: number;
|
|
54
|
+
}
|
|
55
|
+
export interface PushSampleStrtOptions {
|
|
56
|
+
outlet: BoundOutlet;
|
|
57
|
+
sample: string[];
|
|
58
|
+
timestamp: number;
|
|
49
59
|
}
|
|
50
60
|
export interface LslChannel {
|
|
51
61
|
label: string;
|
|
@@ -58,6 +68,7 @@ export interface LiblslBindings {
|
|
|
58
68
|
lsl_create_outlet(info: BoundStreamInfo, chunkSize: number, maxBuffered: number): BoundOutlet;
|
|
59
69
|
lsl_destroy_outlet(outlet: BoundOutlet): void;
|
|
60
70
|
lsl_push_sample_ft(outlet: BoundOutlet, sample: LslSample, timestamp: number): void;
|
|
71
|
+
lsl_push_sample_strt(outlet: BoundOutlet, sample: LslSample, timestamp: number): void;
|
|
61
72
|
lsl_local_clock(): number;
|
|
62
73
|
lsl_get_desc(info: BoundStreamInfo): BoundDesc;
|
|
63
74
|
lsl_append_child(desc: BoundDesc, name: string): BoundChild;
|
package/build/Liblsl.js
CHANGED
|
@@ -47,6 +47,7 @@ class LiblslImpl {
|
|
|
47
47
|
lsl_destroy_outlet: ['void', [outletType]],
|
|
48
48
|
lsl_local_clock: ['double', []],
|
|
49
49
|
lsl_push_sample_ft: ['void', [outletType, FloatArray, 'double']],
|
|
50
|
+
lsl_push_sample_strt: ['void', [outletType, StringArray, 'double']],
|
|
50
51
|
lsl_get_desc: [xmlPtr, [streamInfo]],
|
|
51
52
|
lsl_append_child: [xmlPtr, [xmlPtr, 'string']],
|
|
52
53
|
lsl_append_child_value: [xmlPtr, [xmlPtr, 'string', 'string']],
|
|
@@ -86,10 +87,24 @@ class LiblslImpl {
|
|
|
86
87
|
const { outlet } = (0, schema_1.assertOptions)(options, ['outlet']);
|
|
87
88
|
this.bindings.lsl_destroy_outlet(outlet);
|
|
88
89
|
}
|
|
89
|
-
|
|
90
|
-
const { outlet, sample } = (0, schema_1.assertOptions)(options, [
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
pushSampleFt(options) {
|
|
91
|
+
const { outlet, sample, timestamp } = (0, schema_1.assertOptions)(options, [
|
|
92
|
+
'outlet',
|
|
93
|
+
'sample',
|
|
94
|
+
'timestamp',
|
|
95
|
+
]);
|
|
96
|
+
this.bindings.lsl_push_sample_ft(outlet, sample, timestamp);
|
|
97
|
+
}
|
|
98
|
+
pushSampleStrt(options) {
|
|
99
|
+
const { outlet, sample, timestamp } = (0, schema_1.assertOptions)(options, [
|
|
100
|
+
'outlet',
|
|
101
|
+
'sample',
|
|
102
|
+
'timestamp',
|
|
103
|
+
]);
|
|
104
|
+
this.bindings.lsl_push_sample_strt(outlet, sample, timestamp);
|
|
105
|
+
}
|
|
106
|
+
localClock() {
|
|
107
|
+
return this.bindings.lsl_local_clock();
|
|
93
108
|
}
|
|
94
109
|
}
|
|
95
110
|
LiblslImpl.ffi = ffi_napi_1.default;
|
|
@@ -97,5 +112,6 @@ exports.default = LiblslImpl;
|
|
|
97
112
|
const streamInfo = ref_napi_1.default.refType(ref_napi_1.default.types.void);
|
|
98
113
|
const outletType = ref_napi_1.default.refType(ref_napi_1.default.types.void);
|
|
99
114
|
const FloatArray = (0, ref_array_napi_1.default)(ref_napi_1.default.types.float);
|
|
115
|
+
const StringArray = (0, ref_array_napi_1.default)(ref_napi_1.default.types.CString);
|
|
100
116
|
const xmlPtr = ref_napi_1.default.refType(ref_napi_1.default.types.void);
|
|
101
117
|
//# sourceMappingURL=Liblsl.js.map
|
package/build/Liblsl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Liblsl.js","sourceRoot":"","sources":["../src/Liblsl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Liblsl.js","sourceRoot":"","sources":["../src/Liblsl.ts"],"names":[],"mappings":";;;;;AAAA,+CAAkD;AAClD,wDAA0B;AAC1B,oEAAsC;AACtC,wDAA0B;AAC1B,uEAA8C;AAE9C,MAAqB,UAAU;IAKvB,MAAM,CAAC,WAAW;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,QAAS,CAAA;IACtB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,QAAgB;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACzB,CAAC;IAEM,MAAM,CAAC,aAAa;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAA;IACrB,CAAC;IAED;QACC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,WAAY,CAAA;QAErC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,IAAA,sBAAa,EAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QACxC,CAAC;QAAC,WAAM,CAAC;YACR,MAAM,IAAI,qBAAW,CAAC;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,UAAU,EAAE,IAAI;aAChB,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAEO,YAAY,CAAC,IAAY;QAChC,YAAY;QACZ,OAAO,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAK,EAAE;YACpC,qBAAqB,EAAE;gBACtB,UAAU;gBACV,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC;aACtD;YACD,iBAAiB,EAAE,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3D,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC;YAC1C,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;YAC/B,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;YAChE,oBAAoB,EAAE,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YACnE,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC;YACpC,gBAAgB,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YAC9C,sBAAsB,EAAE,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAC9D,CAAmB,CAAA;IACrB,CAAC;IAEM,gBAAgB,CAAC,OAAgC;QACvD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,GACtE,IAAA,sBAAa,EAAC,OAAO,EAAE;YACtB,MAAM;YACN,MAAM;YACN,cAAc;YACd,YAAY;YACZ,eAAe;YACf,UAAU;SACV,CAAC,CAAA;QAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CACzC,IAAI,EACJ,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,QAAQ,CACR,CAAA;IACF,CAAC;IAEM,0BAA0B,CAChC,OAA0C;QAE1C,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;QAEvE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAE7C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;QAE/D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC/D,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;YACnE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YACjE,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;QAClE,CAAC;IACF,CAAC;IAEM,YAAY,CAAC,OAA4B;QAC/C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE;YAC/D,MAAM;YACN,WAAW;YACX,aAAa;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;IACrE,CAAC;IAEM,aAAa,CAAC,OAA6B;QACjD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAEM,YAAY,CAAC,OAA4B;QAC/C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE;YAC5D,QAAQ;YACR,QAAQ;YACR,WAAW;SACX,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAC5D,CAAC;IAEM,cAAc,CAAC,OAA8B;QACnD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,sBAAa,EAAC,OAAO,EAAE;YAC5D,QAAQ;YACR,QAAQ;YACR,WAAW;SACX,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAA;IAC9D,CAAC;IAEM,UAAU;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAA;IACvC,CAAC;;AA9Ha,cAAG,GAAG,kBAAG,CAAA;kBAFH,UAAU;AAmO/B,MAAM,UAAU,GAAG,kBAAG,CAAC,OAAO,CAAC,kBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC9C,MAAM,UAAU,GAAG,kBAAG,CAAC,OAAO,CAAC,kBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AAC9C,MAAM,UAAU,GAAG,IAAA,wBAAS,EAAC,kBAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AAC7C,MAAM,WAAW,GAAG,IAAA,wBAAS,EAAC,kBAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;AAChD,MAAM,MAAM,GAAG,kBAAG,CAAC,OAAO,CAAC,kBAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA"}
|
package/build/LslOutlet.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LslSample } from './Liblsl';
|
|
2
2
|
export default class LslOutletImpl implements LslOutlet {
|
|
3
|
-
private outletOptions;
|
|
4
3
|
static Class?: new (options: LslOutletOptions) => LslOutlet;
|
|
4
|
+
private options;
|
|
5
5
|
private streamInfo;
|
|
6
6
|
private outlet;
|
|
7
7
|
protected constructor(options: LslOutletOptions);
|
package/build/LslOutlet.js
CHANGED
|
@@ -30,9 +30,9 @@ class LslOutletImpl {
|
|
|
30
30
|
'chunkSize',
|
|
31
31
|
'maxBuffered',
|
|
32
32
|
]);
|
|
33
|
-
this.
|
|
33
|
+
this.options = options;
|
|
34
34
|
const _a = this
|
|
35
|
-
.
|
|
35
|
+
.options, { chunkSize, maxBuffered, channelNames } = _a, streamInfoOptions = __rest(_a, ["chunkSize", "maxBuffered", "channelNames"]);
|
|
36
36
|
const channelCount = channelNames.length;
|
|
37
37
|
this.assertValidChannelCount(channelCount);
|
|
38
38
|
this.assertValidSampleRate(sampleRate);
|
|
@@ -46,14 +46,14 @@ class LslOutletImpl {
|
|
|
46
46
|
info: this.streamInfo,
|
|
47
47
|
channels: channelNames.map((label) => ({
|
|
48
48
|
label,
|
|
49
|
-
unit: this.
|
|
50
|
-
type: this.
|
|
49
|
+
unit: this.options.unit,
|
|
50
|
+
type: this.options.type,
|
|
51
51
|
})),
|
|
52
52
|
});
|
|
53
53
|
this.outlet = this.lsl.createOutlet({
|
|
54
54
|
info: this.streamInfo,
|
|
55
|
-
chunkSize: this.
|
|
56
|
-
maxBuffered: this.
|
|
55
|
+
chunkSize: this.options.chunkSize,
|
|
56
|
+
maxBuffered: this.options.maxBuffered,
|
|
57
57
|
});
|
|
58
58
|
}
|
|
59
59
|
static Outlet(options) {
|
|
@@ -64,7 +64,24 @@ class LslOutletImpl {
|
|
|
64
64
|
this.lsl.destroyOutlet({ outlet: this.outlet });
|
|
65
65
|
}
|
|
66
66
|
pushSample(sample) {
|
|
67
|
-
this.lsl.
|
|
67
|
+
const timestamp = this.lsl.localClock();
|
|
68
|
+
if (this.options.channelFormat === 'float32') {
|
|
69
|
+
this.lsl.pushSampleFt({
|
|
70
|
+
outlet: this.outlet,
|
|
71
|
+
sample: sample,
|
|
72
|
+
timestamp,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
else if (this.options.channelFormat === 'string') {
|
|
76
|
+
this.lsl.pushSampleStrt({
|
|
77
|
+
outlet: this.outlet,
|
|
78
|
+
sample: sample,
|
|
79
|
+
timestamp,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
throw new Error(`This method currently does not support the ${this.options.channelFormat} type! Please implement it.`);
|
|
84
|
+
}
|
|
68
85
|
}
|
|
69
86
|
lookupChannelFormat(channelFormat) {
|
|
70
87
|
return CHANNEL_FORMATS.indexOf(channelFormat);
|
package/build/LslOutlet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../src/LslOutlet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA+D;AAC/D,
|
|
1
|
+
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../src/LslOutlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import LslOutletImpl, { LslOutletOptions } from './LslOutlet';
|
|
2
2
|
export default class TimeMarkerOutlet extends LslOutletImpl {
|
|
3
3
|
static Outlet(options?: Partial<LslOutletOptions>): import("./LslOutlet").LslOutlet;
|
|
4
|
+
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
5
|
+
protected wait(durationMs: number): Promise<unknown>;
|
|
6
|
+
}
|
|
7
|
+
export interface DurationMarker {
|
|
8
|
+
name: string;
|
|
9
|
+
durationMs: number;
|
|
4
10
|
}
|
|
@@ -21,6 +21,15 @@ class TimeMarkerOutlet extends LslOutlet_1.default {
|
|
|
21
21
|
};
|
|
22
22
|
return new ((_a = this.Class) !== null && _a !== void 0 ? _a : this)(Object.assign(Object.assign({}, defaultOptions), options));
|
|
23
23
|
}
|
|
24
|
+
async pushMarkers(markers) {
|
|
25
|
+
for (let marker of markers) {
|
|
26
|
+
this.pushSample([marker.name]);
|
|
27
|
+
await this.wait(marker.durationMs);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async wait(durationMs) {
|
|
31
|
+
return new Promise((resolve) => setTimeout(resolve, durationMs));
|
|
32
|
+
}
|
|
24
33
|
}
|
|
25
34
|
exports.default = TimeMarkerOutlet;
|
|
26
35
|
//# sourceMappingURL=TimeMarkerOutlet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeMarkerOutlet.js","sourceRoot":"","sources":["../src/TimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;AAAA,4DAA6D;AAE7D,MAAqB,gBAAiB,SAAQ,mBAAa;IACnD,MAAM,CAAC,MAAM,CAAC,OAAmC;;QACvD,MAAM,cAAc,GAAG;YACtB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACM,CAAA;QACrB,OAAO,IAAI,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC,iCAAM,cAAc,GAAK,OAAO,EAAG,CAAA;IACnE,CAAC;CACD;
|
|
1
|
+
{"version":3,"file":"TimeMarkerOutlet.js","sourceRoot":"","sources":["../src/TimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;AAAA,4DAA6D;AAE7D,MAAqB,gBAAiB,SAAQ,mBAAa;IACnD,MAAM,CAAC,MAAM,CAAC,OAAmC;;QACvD,MAAM,cAAc,GAAG;YACtB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACM,CAAA;QACrB,OAAO,IAAI,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC,iCAAM,cAAc,GAAK,OAAO,EAAG,CAAA;IACnE,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QACjD,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9B,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QACnC,CAAC;IACF,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,UAAkB;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IACjE,CAAC;CACD;AA3BD,mCA2BC"}
|
|
@@ -12,17 +12,21 @@ export default class LslOutletTest extends AbstractSpruceTest {
|
|
|
12
12
|
protected static throwsWithInvalidChunkSize(): Promise<void>;
|
|
13
13
|
protected static throwsWithInvalidMaxBuffered(): Promise<void>;
|
|
14
14
|
protected static supportsAllKnownChannelFormats(): Promise<void>;
|
|
15
|
-
protected static
|
|
15
|
+
protected static canPushFloatSampleToLsl(sample: LslSample): Promise<void>;
|
|
16
|
+
protected static canPushStringSampleToLsl(): Promise<void>;
|
|
17
|
+
protected static pushingStringTwiceGivesDifferentTimestamps(): Promise<void>;
|
|
16
18
|
protected static constructionCreatesStreamInfo(): Promise<void>;
|
|
17
19
|
protected static canOverrideClassInstantiatedInFactory(): Promise<void>;
|
|
18
20
|
protected static appendsChannelsBasedOnCount(labels: string[]): Promise<void>;
|
|
19
21
|
protected static canDestroyOutlet(): Promise<void>;
|
|
20
22
|
protected static pushSampleShouldNotCreateMultipleOutlets(): Promise<void>;
|
|
21
|
-
|
|
23
|
+
protected static pushSampleThrowsWithUnsupportedType(): Promise<void>;
|
|
22
24
|
private static assertThrowsInvalidMaxBuffered;
|
|
23
25
|
private static assertThrowsInvalidChunkSize;
|
|
24
26
|
private static assertThrowsInvalidSampleRate;
|
|
25
27
|
private static assertThrowsInvalidChannelNames;
|
|
26
28
|
private static assertDoesThrowInvalidParameters;
|
|
27
29
|
private static Outlet;
|
|
30
|
+
private static StringOutlet;
|
|
31
|
+
private static FloatOutlet;
|
|
28
32
|
}
|
|
@@ -108,16 +108,39 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
108
108
|
this.Outlet({ channelFormat: format });
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
static async
|
|
112
|
-
var _a, _b;
|
|
113
|
-
this.
|
|
114
|
-
|
|
115
|
-
test_utils_1.assert.
|
|
111
|
+
static async canPushFloatSampleToLsl(sample) {
|
|
112
|
+
var _a, _b, _c;
|
|
113
|
+
const outlet = this.FloatOutlet();
|
|
114
|
+
outlet.pushSample(sample);
|
|
115
|
+
test_utils_1.assert.isEqual((_a = this.spyLiblsl.lastPushSampleFtOptions) === null || _a === void 0 ? void 0 : _a.outlet, this.spyLiblsl.outlet);
|
|
116
|
+
test_utils_1.assert.isEqualDeep((_b = this.spyLiblsl.lastPushSampleFtOptions) === null || _b === void 0 ? void 0 : _b.sample, sample);
|
|
116
117
|
test_utils_1.assert.isEqualDeep(this.spyLiblsl.lastCreateOutletOptions, {
|
|
117
118
|
info: this.spyLiblsl.streamInfo,
|
|
118
119
|
chunkSize: this.randomOutletOptions.chunkSize,
|
|
119
120
|
maxBuffered: this.randomOutletOptions.maxBuffered,
|
|
120
121
|
});
|
|
122
|
+
test_utils_1.assert.isNumber((_c = this.spyLiblsl.lastPushSampleFtOptions) === null || _c === void 0 ? void 0 : _c.timestamp);
|
|
123
|
+
}
|
|
124
|
+
static async canPushStringSampleToLsl() {
|
|
125
|
+
var _a, _b, _c;
|
|
126
|
+
const sample = [(0, test_utils_1.generateId)()];
|
|
127
|
+
const outlet = this.StringOutlet();
|
|
128
|
+
outlet.pushSample(sample);
|
|
129
|
+
test_utils_1.assert.isEqual((_a = this.spyLiblsl.lastPushSampleStrtOptions) === null || _a === void 0 ? void 0 : _a.outlet, this.spyLiblsl.outlet);
|
|
130
|
+
test_utils_1.assert.isEqualDeep((_b = this.spyLiblsl.lastPushSampleStrtOptions) === null || _b === void 0 ? void 0 : _b.sample, sample);
|
|
131
|
+
test_utils_1.assert.isNumber((_c = this.spyLiblsl.lastPushSampleStrtOptions) === null || _c === void 0 ? void 0 : _c.timestamp);
|
|
132
|
+
}
|
|
133
|
+
static async pushingStringTwiceGivesDifferentTimestamps() {
|
|
134
|
+
var _a, _b;
|
|
135
|
+
const outlet = this.StringOutlet();
|
|
136
|
+
const sample = [(0, test_utils_1.generateId)()];
|
|
137
|
+
outlet.pushSample(sample);
|
|
138
|
+
const t1 = (_a = this.spyLiblsl.lastPushSampleStrtOptions) === null || _a === void 0 ? void 0 : _a.timestamp;
|
|
139
|
+
await this.wait(10);
|
|
140
|
+
outlet.pushSample(sample);
|
|
141
|
+
const t2 = (_b = this.spyLiblsl.lastPushSampleStrtOptions) === null || _b === void 0 ? void 0 : _b.timestamp;
|
|
142
|
+
test_utils_1.assert.isNotEqual(t1, t2);
|
|
143
|
+
test_utils_1.assert.isEqual(this.spyLiblsl.localClockHitCount, 2);
|
|
121
144
|
}
|
|
122
145
|
static async constructionCreatesStreamInfo() {
|
|
123
146
|
this.Outlet();
|
|
@@ -154,15 +177,25 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
154
177
|
test_utils_1.assert.isEqual(this.spyLiblsl.destroyOutletHitCount, 1);
|
|
155
178
|
}
|
|
156
179
|
static async pushSampleShouldNotCreateMultipleOutlets() {
|
|
157
|
-
const outlet = this.
|
|
158
|
-
outlet.pushSample([1]);
|
|
159
|
-
outlet.pushSample([2]);
|
|
160
|
-
outlet.pushSample([3]);
|
|
180
|
+
const outlet = this.FloatOutlet();
|
|
181
|
+
outlet.pushSample([1.0]);
|
|
182
|
+
outlet.pushSample([2.0]);
|
|
183
|
+
outlet.pushSample([3.0]);
|
|
161
184
|
test_utils_1.assert.isEqual(this.spyLiblsl.createStreamInfoHitCount, 1);
|
|
162
185
|
}
|
|
163
|
-
static
|
|
164
|
-
const
|
|
165
|
-
|
|
186
|
+
static async pushSampleThrowsWithUnsupportedType() {
|
|
187
|
+
const unsupportedTypes = [
|
|
188
|
+
'undefined',
|
|
189
|
+
'double64',
|
|
190
|
+
'int32',
|
|
191
|
+
'int16',
|
|
192
|
+
'int8',
|
|
193
|
+
'int64',
|
|
194
|
+
];
|
|
195
|
+
for (let unsupportedType of unsupportedTypes) {
|
|
196
|
+
const outlet = this.Outlet({ channelFormat: unsupportedType });
|
|
197
|
+
test_utils_1.assert.doesThrow(() => outlet.pushSample([]), `This method currently does not support the ${unsupportedType} type! Please implement it.`);
|
|
198
|
+
}
|
|
166
199
|
}
|
|
167
200
|
static assertThrowsInvalidMaxBuffered(maxBuffered) {
|
|
168
201
|
this.assertDoesThrowInvalidParameters({ maxBuffered }, ['maxBuffered']);
|
|
@@ -185,6 +218,12 @@ class LslOutletTest extends test_utils_1.default {
|
|
|
185
218
|
static Outlet(options) {
|
|
186
219
|
return LslOutlet_1.default.Outlet(Object.assign(Object.assign({}, this.randomOutletOptions), options));
|
|
187
220
|
}
|
|
221
|
+
static StringOutlet() {
|
|
222
|
+
return this.Outlet({ channelFormat: 'string' });
|
|
223
|
+
}
|
|
224
|
+
static FloatOutlet() {
|
|
225
|
+
return this.Outlet({ channelFormat: 'float32' });
|
|
226
|
+
}
|
|
188
227
|
}
|
|
189
228
|
exports.default = LslOutletTest;
|
|
190
229
|
__decorate([
|
|
@@ -209,9 +248,15 @@ __decorate([
|
|
|
209
248
|
(0, test_utils_1.test)()
|
|
210
249
|
], LslOutletTest, "supportsAllKnownChannelFormats", null);
|
|
211
250
|
__decorate([
|
|
212
|
-
(0, test_utils_1.test)('pushing [1, 2] sample sends to LSL', [1, 2]),
|
|
213
|
-
(0, test_utils_1.test)('pushing [1] sample sends to LSL', [1])
|
|
214
|
-
], LslOutletTest, "
|
|
251
|
+
(0, test_utils_1.test)('pushing [1, 2] sample sends to LSL', [1.0, 2.0]),
|
|
252
|
+
(0, test_utils_1.test)('pushing [1] sample sends to LSL', [1.0])
|
|
253
|
+
], LslOutletTest, "canPushFloatSampleToLsl", null);
|
|
254
|
+
__decorate([
|
|
255
|
+
(0, test_utils_1.test)()
|
|
256
|
+
], LslOutletTest, "canPushStringSampleToLsl", null);
|
|
257
|
+
__decorate([
|
|
258
|
+
(0, test_utils_1.test)()
|
|
259
|
+
], LslOutletTest, "pushingStringTwiceGivesDifferentTimestamps", null);
|
|
215
260
|
__decorate([
|
|
216
261
|
(0, test_utils_1.test)()
|
|
217
262
|
], LslOutletTest, "constructionCreatesStreamInfo", null);
|
|
@@ -228,6 +273,9 @@ __decorate([
|
|
|
228
273
|
__decorate([
|
|
229
274
|
(0, test_utils_1.test)()
|
|
230
275
|
], LslOutletTest, "pushSampleShouldNotCreateMultipleOutlets", null);
|
|
276
|
+
__decorate([
|
|
277
|
+
(0, test_utils_1.test)()
|
|
278
|
+
], LslOutletTest, "pushSampleThrowsWithUnsupportedType", null);
|
|
231
279
|
class CheckingOutlet extends LslOutlet_1.default {
|
|
232
280
|
constructor(options) {
|
|
233
281
|
super(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,qEAK+B;AAC/B,0DAAoD;AACpD,gEAA4E;AAC5E,8CAAwD;AACxD,yGAAgF;AAChF,oDAAgD;AAEhD,MAAqB,aAAc,SAAQ,oBAAkB;IAKlD,MAAM,CAAC,KAAK,CAAC,UAAU;QAChC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,OAAO,mBAAS,CAAC,KAAK,CAAA;QACtB,IAAI,CAAC,gBAAgB,GAAG,IAAA,kBAAS,EAAC,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,mBAAmB,GAAG,IAAA,qCAA2B,EACrD,IAAI,CAAC,gBAAgB,CACrB,CAAA;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;QAChC,gBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B;QACrD,YAAY;QACZ,MAAM,GAAG,GAAG,mBAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,mBAAS,EAAE,CAAC,CAAA;QACnD,wBAAW,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,EAAE;YAClD,UAAU,EAAE;gBACX,MAAM;gBACN,MAAM;gBACN,cAAc;gBACd,YAAY;gBACZ,eAAe;gBACf,UAAU;gBACV,cAAc;gBACd,MAAM;gBACN,WAAW;gBACX,aAAa;aACb;SACD,CAAC,CAAA;IACH,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B;QACnD,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,2BAA2B;QACjD,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9B,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,IAAI,CAAC,6BAA6B,CAAC,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,8BAA8B;QACpD,YAAY;QACZ,IAAI,CAAC,gCAAgC,CAAC,EAAE,aAAa,EAAE,IAAA,uBAAU,GAAE,EAAE,EAAE;YACtE,eAAe;SACf,CAAC,CAAA;IACH,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B;QAChD,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,IAAI,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,4BAA4B;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,8BAA8B;QACpD,KAAK,MAAM,MAAM,IAAI,6BAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAuB,EAAE,CAAC,CAAA;QACxD,CAAC;IACF,CAAC;IAIsB,AAAb,MAAM,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,qEAK+B;AAC/B,0DAAoD;AACpD,gEAA4E;AAC5E,8CAAwD;AACxD,yGAAgF;AAChF,oDAAgD;AAEhD,MAAqB,aAAc,SAAQ,oBAAkB;IAKlD,MAAM,CAAC,KAAK,CAAC,UAAU;QAChC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;QACxB,OAAO,mBAAS,CAAC,KAAK,CAAA;QACtB,IAAI,CAAC,gBAAgB,GAAG,IAAA,kBAAS,EAAC,CAAC,CAAC,CAAA;QACpC,IAAI,CAAC,mBAAmB,GAAG,IAAA,qCAA2B,EACrD,IAAI,CAAC,gBAAgB,CACrB,CAAA;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;QAChC,gBAAU,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACvC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,+BAA+B;QACrD,YAAY;QACZ,MAAM,GAAG,GAAG,mBAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,mBAAS,EAAE,CAAC,CAAA;QACnD,wBAAW,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,EAAE;YAClD,UAAU,EAAE;gBACX,MAAM;gBACN,MAAM;gBACN,cAAc;gBACd,YAAY;gBACZ,eAAe;gBACf,UAAU;gBACV,cAAc;gBACd,MAAM;gBACN,WAAW;gBACX,aAAa;aACb;SACD,CAAC,CAAA;IACH,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B;QACnD,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAA;IACxC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,2BAA2B;QACjD,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9B,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAA;QACtC,IAAI,CAAC,6BAA6B,CAAC,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,8BAA8B;QACpD,YAAY;QACZ,IAAI,CAAC,gCAAgC,CAAC,EAAE,aAAa,EAAE,IAAA,uBAAU,GAAE,EAAE,EAAE;YACtE,eAAe;SACf,CAAC,CAAA;IACH,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0BAA0B;QAChD,IAAI,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;QAC7B,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAA;QACrC,IAAI,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,CAAA;IACvC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,4BAA4B;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,CAAA;IACzC,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,8BAA8B;QACpD,KAAK,MAAM,MAAM,IAAI,6BAAoB,EAAE,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAuB,EAAE,CAAC,CAAA;QACxD,CAAC;IACF,CAAC;IAIsB,AAAb,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAiB;;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QACjC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAEzB,mBAAM,CAAC,OAAO,CACb,MAAA,IAAI,CAAC,SAAS,CAAC,uBAAuB,0CAAE,MAAM,EAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,CACrB,CAAA;QACD,mBAAM,CAAC,WAAW,CAAC,MAAA,IAAI,CAAC,SAAS,CAAC,uBAAuB,0CAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC1E,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;YAC1D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;YAC/B,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,SAAS;YAC7C,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,WAAW;SACjD,CAAC,CAAA;QACF,mBAAM,CAAC,QAAQ,CAAC,MAAA,IAAI,CAAC,SAAS,CAAC,uBAAuB,0CAAE,SAAS,CAAC,CAAA;IACnE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,wBAAwB;;QAC9C,MAAM,MAAM,GAAG,CAAC,IAAA,uBAAU,GAAE,CAAC,CAAA;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAElC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAEzB,mBAAM,CAAC,OAAO,CACb,MAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,0CAAE,MAAM,EAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CACrB,CAAA;QACD,mBAAM,CAAC,WAAW,CAAC,MAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,0CAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAC5E,mBAAM,CAAC,QAAQ,CAAC,MAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,0CAAE,SAAS,CAAC,CAAA;IACrE,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,0CAA0C;;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QAClC,MAAM,MAAM,GAAG,CAAC,IAAA,uBAAU,GAAE,CAAC,CAAA;QAE7B,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACzB,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,0CAAE,SAAS,CAAA;QAE9D,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAEnB,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACzB,MAAM,EAAE,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,0CAAE,SAAS,CAAA;QAE9D,mBAAM,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QACzB,mBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,6BAA6B;QACnD,IAAI,CAAC,MAAM,EAAE,CAAA;QAEb,MAAW,OAAO,UAAK,IAAI,CAAC,mBAA0B,EAAhD,EAAc,CAAkC,CAAA;QAEtD,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAA;QAElD,OAAO,OAAO,CAAC,YAAY,CAAA;QAC3B,OAAO,OAAO,CAAC,IAAI,CAAA;QACnB,OAAO,OAAO,CAAC,SAAS,CAAA;QACxB,OAAO,OAAO,CAAC,WAAW,CAAA;QAC1B,OAAO,OAAO,CAAC,YAAY,CAAA;QAE3B,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,kCACzD,OAAO,KACV,aAAa,EAAE,IAAI,CAAC,gBAAgB,IACnC,CAAA;IACH,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,qCAAqC;QAC3D,mBAAS,CAAC,KAAK,GAAG,cAAc,CAAA;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAE9B,mBAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IAC9C,CAAC;IAIsB,AAAb,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,MAAgB;QAClE,MAAM,IAAI,GAAG,IAAA,uBAAU,GAAE,CAAA;QACzB,MAAM,IAAI,GAAG,IAAA,uBAAU,GAAE,CAAA;QAEzB,IAAI,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;QAEjD,mBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,qCAAqC,EAAE;YACxE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU;YAC/B,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAChC,KAAK;gBACL,IAAI;gBACJ,IAAI;aACJ,CAAC,CAAC;SACH,CAAC,CAAA;IACH,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,gBAAgB;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAC5B,MAAM,CAAC,OAAO,EAAE,CAAA;QAEhB,mBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAA;IACxD,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,wCAAwC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QACjC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACxB,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACxB,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QAExB,mBAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;IAC3D,CAAC;IAGsB,AAAb,MAAM,CAAC,KAAK,CAAC,mCAAmC;QACzD,MAAM,gBAAgB,GAAG;YACxB,WAAW;YACX,UAAU;YACV,OAAO;YACP,OAAO;YACP,MAAM;YACN,OAAO;SACE,CAAA;QAEV,KAAK,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAA;YAC9D,mBAAM,CAAC,SAAS,CACf,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,EAC3B,8CAA8C,eAAe,6BAA6B,CAC1F,CAAA;QACF,CAAC;IACF,CAAC;IAEO,MAAM,CAAC,8BAA8B,CAAC,WAAmB;QAChE,IAAI,CAAC,gCAAgC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IACxE,CAAC;IAEO,MAAM,CAAC,4BAA4B,CAAC,SAAiB;QAC5D,IAAI,CAAC,gCAAgC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IACpE,CAAC;IAEO,MAAM,CAAC,6BAA6B,CAAC,UAAkB;QAC9D,IAAI,CAAC,gCAAgC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IACtE,CAAC;IAEO,MAAM,CAAC,+BAA+B,CAAC,KAAa;QAC3D,IAAI,CAAC,gCAAgC,CACpC,EAAE,YAAY,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAU,GAAE,CAAC,EAAE,EACrD,CAAC,cAAc,CAAC,CAChB,CAAA;IACF,CAAC;IAEO,MAAM,CAAC,gCAAgC,CAC9C,OAAkC,EAClC,UAAoB;QAEpB,MAAM,GAAG,GAAG,mBAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACxD,wBAAW,CAAC,WAAW,CAAC,GAAG,EAAE,oBAAoB,EAAE;YAClD,UAAU;SACV,CAAC,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,OAAmC;QACxD,OAAO,mBAAS,CAAC,MAAM,iCACnB,IAAI,CAAC,mBAAmB,GACxB,OAAO,EACT,CAAA;IACH,CAAC;IAEO,MAAM,CAAC,YAAY;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAA;IAChD,CAAC;IAEO,MAAM,CAAC,WAAW;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAA;IACjD,CAAC;CACD;AAjQD,gCAiQC;AAhPuB;IADtB,IAAA,iBAAI,GAAE;0DAkBN;AAGsB;IADtB,IAAA,iBAAI,GAAE;wDAGN;AAGsB;IADtB,IAAA,iBAAI,GAAE;sDAKN;AAGsB;IADtB,IAAA,iBAAI,GAAE;yDAMN;AAGsB;IADtB,IAAA,iBAAI,GAAE;qDAMN;AAGsB;IADtB,IAAA,iBAAI,GAAE;uDAMN;AAGsB;IADtB,IAAA,iBAAI,GAAE;yDAKN;AAIsB;IAFtB,IAAA,iBAAI,EAAC,oCAAoC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtD,IAAA,iBAAI,EAAC,iCAAiC,EAAE,CAAC,GAAG,CAAC,CAAC;kDAgB9C;AAGsB;IADtB,IAAA,iBAAI,GAAE;mDAaN;AAGsB;IADtB,IAAA,iBAAI,GAAE;qEAeN;AAGsB;IADtB,IAAA,iBAAI,GAAE;wDAkBN;AAGsB;IADtB,IAAA,iBAAI,GAAE;gEAMN;AAIsB;IAFtB,IAAA,iBAAI,EAAC,+BAA+B,EAAE,CAAC,IAAA,uBAAU,GAAE,CAAC,CAAC;IACrD,IAAA,iBAAI,EAAC,gCAAgC,EAAE,CAAC,IAAA,uBAAU,GAAE,EAAE,IAAA,uBAAU,GAAE,CAAC,CAAC;sDAepE;AAGsB;IADtB,IAAA,iBAAI,GAAE;2CAMN;AAGsB;IADtB,IAAA,iBAAI,GAAE;mEAQN;AAGsB;IADtB,IAAA,iBAAI,GAAE;8DAkBN;AA+CF,MAAM,cAAe,SAAQ,mBAAS;IACrC,YAAmB,OAAyB;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAA;IACf,CAAC;CACD"}
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import AbstractSpruceTest from '@sprucelabs/test-utils';
|
|
2
2
|
export default class TimeMarkerOutletTest extends AbstractSpruceTest {
|
|
3
3
|
private static spyLiblsl;
|
|
4
|
+
private static outlet;
|
|
4
5
|
protected static beforeEach(): Promise<void>;
|
|
5
6
|
protected static loadsWithTimeMarkerSpecificOptions(): Promise<void>;
|
|
6
7
|
protected static canOverrideDefaultOptions(): Promise<void>;
|
|
8
|
+
protected static pushingSingleMarkerIncrementsHitCountAndWaitTime(): Promise<void>;
|
|
9
|
+
protected static pushingTwoMarkersIncrementsHitCountAndWaitTimeTwice(): Promise<void>;
|
|
10
|
+
private static generateRandomDurationMarker;
|
|
7
11
|
private static Outlet;
|
|
8
12
|
}
|
|
@@ -44,10 +44,10 @@ class TimeMarkerOutletTest extends test_utils_1.default {
|
|
|
44
44
|
TimeMarkerOutlet_1.default.Class = SpyTimeMarkerOutlet;
|
|
45
45
|
this.spyLiblsl = new SpyLiblsl_1.SpyLiblsl();
|
|
46
46
|
Liblsl_1.default.setInstance(this.spyLiblsl);
|
|
47
|
+
this.outlet = this.Outlet();
|
|
47
48
|
}
|
|
48
49
|
static async loadsWithTimeMarkerSpecificOptions() {
|
|
49
|
-
|
|
50
|
-
test_utils_1.assert.isEqualDeep(outlet.options, {
|
|
50
|
+
test_utils_1.assert.isEqualDeep(this.outlet.spyOptions, {
|
|
51
51
|
name: 'Time markers',
|
|
52
52
|
type: 'Markers',
|
|
53
53
|
channelNames: ['Markers'],
|
|
@@ -63,7 +63,25 @@ class TimeMarkerOutletTest extends test_utils_1.default {
|
|
|
63
63
|
static async canOverrideDefaultOptions() {
|
|
64
64
|
const options = (0, generateRandomOutletOptions_1.default)((0, crypto_1.randomInt)(8));
|
|
65
65
|
const outlet = this.Outlet(options);
|
|
66
|
-
test_utils_1.assert.isEqualDeep(outlet.
|
|
66
|
+
test_utils_1.assert.isEqualDeep(outlet.spyOptions, options);
|
|
67
|
+
}
|
|
68
|
+
static async pushingSingleMarkerIncrementsHitCountAndWaitTime() {
|
|
69
|
+
const markers = [this.generateRandomDurationMarker()];
|
|
70
|
+
await this.outlet.pushMarkers(markers);
|
|
71
|
+
test_utils_1.assert.isEqual(this.spyLiblsl.pushSampleStrtHitCount, 1);
|
|
72
|
+
test_utils_1.assert.isEqual(this.outlet.totalWaitTimeMs, markers[0].durationMs);
|
|
73
|
+
}
|
|
74
|
+
static async pushingTwoMarkersIncrementsHitCountAndWaitTimeTwice() {
|
|
75
|
+
const markers = [
|
|
76
|
+
this.generateRandomDurationMarker(),
|
|
77
|
+
this.generateRandomDurationMarker(),
|
|
78
|
+
];
|
|
79
|
+
await this.outlet.pushMarkers(markers);
|
|
80
|
+
test_utils_1.assert.isEqual(this.spyLiblsl.pushSampleStrtHitCount, 2);
|
|
81
|
+
test_utils_1.assert.isEqual(this.outlet.totalWaitTimeMs, markers[0].durationMs + markers[1].durationMs);
|
|
82
|
+
}
|
|
83
|
+
static generateRandomDurationMarker() {
|
|
84
|
+
return { name: (0, test_utils_1.generateId)(), durationMs: (0, crypto_1.randomInt)(100, 1000) };
|
|
67
85
|
}
|
|
68
86
|
static Outlet(options) {
|
|
69
87
|
return TimeMarkerOutlet_1.default.Outlet(options);
|
|
@@ -76,10 +94,21 @@ __decorate([
|
|
|
76
94
|
__decorate([
|
|
77
95
|
(0, test_utils_1.test)()
|
|
78
96
|
], TimeMarkerOutletTest, "canOverrideDefaultOptions", null);
|
|
97
|
+
__decorate([
|
|
98
|
+
(0, test_utils_1.test)()
|
|
99
|
+
], TimeMarkerOutletTest, "pushingSingleMarkerIncrementsHitCountAndWaitTime", null);
|
|
100
|
+
__decorate([
|
|
101
|
+
(0, test_utils_1.test)()
|
|
102
|
+
], TimeMarkerOutletTest, "pushingTwoMarkersIncrementsHitCountAndWaitTimeTwice", null);
|
|
79
103
|
class SpyTimeMarkerOutlet extends TimeMarkerOutlet_1.default {
|
|
80
104
|
constructor(options) {
|
|
81
105
|
super(options);
|
|
82
|
-
this.
|
|
106
|
+
this.spyOptions = options;
|
|
107
|
+
this.totalWaitTimeMs = 0;
|
|
108
|
+
}
|
|
109
|
+
async wait(durationMs) {
|
|
110
|
+
this.totalWaitTimeMs += durationMs;
|
|
111
|
+
return Promise.resolve();
|
|
83
112
|
}
|
|
84
113
|
}
|
|
85
114
|
//# sourceMappingURL=TimeMarkerOutlet.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeMarkerOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/TimeMarkerOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"TimeMarkerOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/TimeMarkerOutlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,9 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
12
12
|
private static appendChildParams;
|
|
13
13
|
private static createOutletParams?;
|
|
14
14
|
private static destroyOutletParams?;
|
|
15
|
-
private static
|
|
15
|
+
private static pushSampleFtParams?;
|
|
16
|
+
private static pushSampleStrtParams?;
|
|
16
17
|
private static appendChildValueParams;
|
|
17
|
-
private static localClock;
|
|
18
18
|
private static shouldThrowWhenCreatingBindings;
|
|
19
19
|
private static getDescriptionParams?;
|
|
20
20
|
private static fakeChildNamedChannel;
|
|
@@ -25,19 +25,23 @@ export default class LiblslTest extends AbstractSpruceTest {
|
|
|
25
25
|
protected static throwsWhenCreateStreamInfoIsMissingRequiredParams(): void;
|
|
26
26
|
protected static throwsWhenAppendChannelsIsMissingRequiredParams(): Promise<void>;
|
|
27
27
|
protected static throwsWhenCreateOutletIsMissingRequiredParams(): Promise<void>;
|
|
28
|
-
protected static
|
|
28
|
+
protected static throwsWhenPushSampleFtIsMissingRequiredParams(): Promise<void>;
|
|
29
|
+
protected static throwsWhenPushSampleStrtIsMissingRequiredParams(): Promise<void>;
|
|
29
30
|
protected static worksAsASingleton(): Promise<void>;
|
|
30
31
|
protected static singletonIsTheSame(): Promise<void>;
|
|
31
32
|
protected static canSetInstance(): void;
|
|
32
33
|
protected static createsExpectedBindingsToLiblsl(): Promise<void>;
|
|
33
34
|
protected static canCreateStreamInfoWithRequiredParams(): Promise<void>;
|
|
34
35
|
protected static canCreateOutletWithRequiredParams(): Promise<void>;
|
|
35
|
-
protected static
|
|
36
|
+
protected static canPushFloatSample(): Promise<void>;
|
|
37
|
+
protected static canPushStringSample(): Promise<void>;
|
|
36
38
|
protected static addingSingleChannelGetsDescription(): Promise<void>;
|
|
37
39
|
protected static addingMultpleChannelsAddsChildrenToChannelsChild(): Promise<void>;
|
|
38
40
|
protected static canDestroyOutlet(): Promise<void>;
|
|
41
|
+
protected static callingLocalClockTwiceReturnsDifferentTimestamps(): Promise<void>;
|
|
39
42
|
private static createRandomStreamInfo;
|
|
40
43
|
private static createRandomOutlet;
|
|
41
44
|
private static generateRandomChannelValues;
|
|
42
45
|
private static generateRandomCreateStreamInfoOptions;
|
|
46
|
+
private static FakeBindings;
|
|
43
47
|
}
|