edf2csv 0.5.15 → 0.5.16
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/CHANGELOG.md +28 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,34 @@
|
|
|
3
3
|
Notable changes to edf2csv. Versions follow [semantic versioning](https://semver.org); while the
|
|
4
4
|
major version is 0, a minor bump may contain breaking changes.
|
|
5
5
|
|
|
6
|
+
## 0.5.16
|
|
7
|
+
|
|
8
|
+
### Added: `npm run layouts`, which checks the claim `--layout long` is built on
|
|
9
|
+
|
|
10
|
+
Every page says the same thing about it: a different shape, not different data. That is what
|
|
11
|
+
makes it an honest answer to a mixed-rate recording rather than a second way to be wrong, and
|
|
12
|
+
for thirteen versions nothing ran it. In those thirteen versions the long layout shipped four
|
|
13
|
+
defects — a byte audit counting one writer per rate group, then the same again for the
|
|
14
|
+
compressed stream, then a channel order taken from the sampling rate rather than from the
|
|
15
|
+
file, then a promise of sorted rows a discontinuous recording can break. Three of the four
|
|
16
|
+
were found by reading code, not by converting anything.
|
|
17
|
+
|
|
18
|
+
So this converts. Every fixture crossed with six option sets that move the window and the
|
|
19
|
+
precision, both layouts, compared per channel: the wide column read down its rows against
|
|
20
|
+
that channel's rows in the long table, as an ordered sequence of value cells.
|
|
21
|
+
|
|
22
|
+
Deliberately not joined on time. The two layouts write `time_s` at different precisions by
|
|
23
|
+
design — the long one shares the finest any rate needs, since one column cannot mean three
|
|
24
|
+
things — so a time-keyed comparison compares the formatting rather than the data, and at nine
|
|
25
|
+
decimal places it collapses distinct sub-nanosecond samples into one key. The first version
|
|
26
|
+
of this harness did exactly that and reported 42 disagreements that were all its own.
|
|
27
|
+
|
|
28
|
+
Confirmed capable of failing before being kept: making the long layout skip one sample per
|
|
29
|
+
record is caught on the first recording, as a channel holding 8 values one way and 6 the
|
|
30
|
+
other. It is the correctness page's eighth claim, and the page states the sweep's shape
|
|
31
|
+
rather than a total, since the totals move with the fixture set — a test holds the shape
|
|
32
|
+
against the harness.
|
|
33
|
+
|
|
6
34
|
## 0.5.15
|
|
7
35
|
|
|
8
36
|
### Fixed: `--stdout` on a recording with no signal table, which both layouts got wrong
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "edf2csv",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.16",
|
|
4
4
|
"description": "Convert EDF, EDF+ and BDF biosignal recordings (European Data Format) to CSV from the command line. Local, streaming, and never resamples or alters units.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"edf",
|
|
@@ -65,7 +65,8 @@
|
|
|
65
65
|
"fuzz": "npm run build && npm run fixtures && node test/fuzz/mutate.mjs",
|
|
66
66
|
"fuzz:batch": "npm run build && npm run fixtures && node test/fuzz/trees.mjs",
|
|
67
67
|
"estimate": "npm run build && npm run fixtures && node test/fuzz/estimate.mjs",
|
|
68
|
-
"roundtrip": "npm run build && node test/fuzz/roundtrip.mjs"
|
|
68
|
+
"roundtrip": "npm run build && node test/fuzz/roundtrip.mjs",
|
|
69
|
+
"layouts": "npm run build && npm run fixtures && node test/fuzz/layouts.mjs"
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
71
72
|
"@types/node": "^22.10.0",
|