edf2csv 0.4.15 → 0.4.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 +40 -0
- package/package.json +3 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,46 @@
|
|
|
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.4.16
|
|
7
|
+
|
|
8
|
+
### Added: `npm run fuzz:batch`, which builds folder trees and converts them
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npm run fuzz:batch
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
12 folder trees, 49 recordings, 49 conversions (seed 1).
|
|
16
|
+
Serial and parallel agreed, and every batch matched converting alone.
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Converting a folder is the hardest part of this tool to reason about. The tree is walked, links
|
|
20
|
+
are followed, destinations are derived from file names, and the conversions may run in any order
|
|
21
|
+
across several processes. Every batch bug so far came from an arrangement nobody thought to
|
|
22
|
+
write a test for, so this builds arrangements instead — nesting, names with spaces and non-ASCII
|
|
23
|
+
characters, mixed-case extensions, symlinks, files that are not recordings — and checks four
|
|
24
|
+
things that must hold whatever comes out:
|
|
25
|
+
|
|
26
|
+
1. **Serial and parallel produce the same directories.** A difference between them is what a
|
|
27
|
+
race looks like from outside.
|
|
28
|
+
2. **Each recording's output equals converting it alone.** A batch may reorder the work; it may
|
|
29
|
+
not change a byte of it.
|
|
30
|
+
3. **The closing count matches the directories produced**, so "Converted 5 of 5" is a fact
|
|
31
|
+
rather than a hope.
|
|
32
|
+
4. **A non-zero exit comes with a message**, never a silent half-conversion.
|
|
33
|
+
|
|
34
|
+
The first of those is not hypothetical: it is how 0.4.14 was found two versions ago. One run
|
|
35
|
+
produced `<out>/rec` and another `<out>/rec/inner` from the same command over the same files,
|
|
36
|
+
which is the whole signature of that bug. Putting it back makes this fail in two independent
|
|
37
|
+
rounds and exit 1 — so the check is known to work rather than assumed to.
|
|
38
|
+
|
|
39
|
+
Runs are deterministic: the same seed builds the same tree, so a failure reproduces on another
|
|
40
|
+
machine. Like the other two harnesses it is opt-in and not part of `npm test`, which stays fast
|
|
41
|
+
and dependency-free.
|
|
42
|
+
|
|
43
|
+
There are now three: `npm run crossvalidate` for the arithmetic, `npm run fuzz` for damaged
|
|
44
|
+
files, and this one for batches.
|
|
45
|
+
|
|
6
46
|
## 0.4.15
|
|
7
47
|
|
|
8
48
|
### Fixed: two recordings differing only in filename case merged into one directory
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "edf2csv",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.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",
|
|
@@ -62,7 +62,8 @@
|
|
|
62
62
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
63
63
|
"prepublishOnly": "npm run clean && npm run build && npm test",
|
|
64
64
|
"crossvalidate": "npm run build && node test/crossvalidate/generate.mjs && python3 test/crossvalidate/compare.py",
|
|
65
|
-
"fuzz": "npm run build && npm run fixtures && node test/fuzz/mutate.mjs"
|
|
65
|
+
"fuzz": "npm run build && npm run fixtures && node test/fuzz/mutate.mjs",
|
|
66
|
+
"fuzz:batch": "npm run build && npm run fixtures && node test/fuzz/trees.mjs"
|
|
66
67
|
},
|
|
67
68
|
"devDependencies": {
|
|
68
69
|
"@types/node": "^22.10.0",
|