edf2csv 0.6.56 → 0.6.58

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.
Files changed (2) hide show
  1. package/docs/CHANGELOG.md +41 -0
  2. package/package.json +3 -2
package/docs/CHANGELOG.md CHANGED
@@ -3,6 +3,47 @@
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.6.58
7
+
8
+ ### Added: CI runs the six sweeps it has always claimed as its evidence
9
+
10
+ The correctness page names seven checks as how this project knows what it claims — the estimate
11
+ sweep, the layout sweep, the round trip, the corruption fuzzer, the batch trees, the narrowing
12
+ sweep, and the pyEDFlib cross-check. CI ran none of them. `npm test` covers the suite; the
13
+ harnesses are separate scripts, and nothing invoked them on a push, so a regression in an
14
+ invariant that only a sweep can see would have shipped in silence.
15
+
16
+ Six of the seven now run as their own job, each as a named step so a failure says which invariant
17
+ broke rather than "sweeps". A separate job because they take minutes where the suite takes one,
18
+ and GitHub runs jobs concurrently — a pull request waits for the slowest, not the sum. One Node
19
+ version, since these assert what the tool computes and `core` is what covers computing it on
20
+ both.
21
+
22
+ The seventh, `crossvalidate`, stays manual: it needs pyEDFlib installed, and a check whose value
23
+ is that it compares against an independent implementation should not be silently skipped when
24
+ that implementation fails to install.
25
+
26
+ ## 0.6.57
27
+
28
+ ### Added: a sweep checking that narrowing a conversion returns the part it names
29
+
30
+ `--channels` selects columns and `--start`/`--end` selects rows. Both are documented as
31
+ selections rather than transformations — output-files puts it as "a section converted on its own
32
+ lines up with the full conversion" — and nothing ran it. The layout sweep compares wide against
33
+ long, the estimate sweep compares predicted row counts against written ones, and neither asks
34
+ whether the rows a narrowed run writes are the rows the full run wrote.
35
+
36
+ `npm run narrowing` takes each fixture's full conversion as the truth, converts every channel
37
+ alone and three windows out of it, and requires the narrowed output to be the corresponding slice
38
+ byte for byte: 106 single-channel selections and 253 windows over 50 recordings. Everything
39
+ agrees, which is the result to want from a check written after the fact.
40
+
41
+ Its first run did not agree, and the disagreement was the sweep's. Window bounds were read back
42
+ off the CSV, where `time_s` is rounded — 8/17 is 0.47058823… and prints as `0.47059` — while a
43
+ conversion filters the exact sample times, so a bound taken from the file sits just past the
44
+ sample it came from and the conversion rightly keeps a row the check excluded. Bounds now sit
45
+ halfway between two samples, where no rounding on either side can move a row across them.
46
+
6
47
  ## 0.6.56
7
48
 
8
49
  ### Fixed: the `UNREADABLE` case list, four of the six things it covers
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edf2csv",
3
- "version": "0.6.56",
3
+ "version": "0.6.58",
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",
@@ -67,7 +67,8 @@
67
67
  "fuzz:batch": "npm run build && npm run fixtures && node test/fuzz/trees.mjs",
68
68
  "estimate": "npm run build && npm run fixtures && node test/fuzz/estimate.mjs",
69
69
  "roundtrip": "npm run build && node test/fuzz/roundtrip.mjs",
70
- "layouts": "npm run build && npm run fixtures && node test/fuzz/layouts.mjs"
70
+ "layouts": "npm run build && npm run fixtures && node test/fuzz/layouts.mjs",
71
+ "narrowing": "npm run build && npm run fixtures && node test/fuzz/narrowing.mjs"
71
72
  },
72
73
  "devDependencies": {
73
74
  "@types/node": "^22.10.0",