edfcore 0.2.47 → 0.2.49
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 +34 -0
- package/README.md +12 -2
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/package.json +1 -1
- package/src/constants.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,40 @@ alone does not tell you whether you were affected.
|
|
|
6
6
|
edfcore is pre-1.0. Patch releases have carried behaviour changes where the old behaviour was a
|
|
7
7
|
defect; those are called out below.
|
|
8
8
|
|
|
9
|
+
## 0.2.49
|
|
10
|
+
|
|
11
|
+
- **Added** annotation, start-date and geometry parity on the real corpus, alongside the sample
|
|
12
|
+
parity added in 0.2.48. The richest case is the sleep-edfx hypnogram: **154 sleep stages on a
|
|
13
|
+
file whose record duration is legally zero** — the case where `sampleRateHz` is `undefined` and
|
|
14
|
+
every rate-derived expression yields `NaN`, so a reader that indexes by rate rather than by
|
|
15
|
+
record cannot read it at all. edfcore finds the same 154 events at the same onsets with the same
|
|
16
|
+
durations as pyEDFlib, and the epochs tile the night with no gap, checked against pyEDFlib's
|
|
17
|
+
onsets rather than against edfcore's.
|
|
18
|
+
- Start dates too. The sleep-edfx files were recorded in 1989 and carry a two-digit year, so
|
|
19
|
+
resolving them exercises the 1985-2084 pivot rule against a reader that implements it
|
|
20
|
+
independently.
|
|
21
|
+
- No discrepancy was found. That is the result, and it is worth stating plainly rather than
|
|
22
|
+
implying the sweep found something.
|
|
23
|
+
|
|
24
|
+
## 0.2.48
|
|
25
|
+
|
|
26
|
+
- **Added** bit-for-bit parity against pyEDFlib on the REAL corpus — the last thing the README
|
|
27
|
+
withheld. A 22-hour clinical polysomnogram from sleep-edfx and the three teuniz generator files
|
|
28
|
+
in EDF, EDF+ and 24-bit BDF+, compared with `Object.is` per sample.
|
|
29
|
+
- These files matter because nobody here chose them: they were written by other people's software
|
|
30
|
+
and hardware, years ago. `corpus.test.ts` already read them, but it checked that the output was
|
|
31
|
+
BELIEVABLE — a rectal temperature near 37 degrees, an 8.5 Hz channel oscillating at 8.5 Hz — and
|
|
32
|
+
a check like that would pass for a reader that was slightly wrong everywhere, which is exactly
|
|
33
|
+
the failure the pinned scaling expression exists to prevent. A test in the new file demonstrates
|
|
34
|
+
that directly: on the PSG's temperature channel the textbook expression produces a believable
|
|
35
|
+
body temperature for every sample AND disagrees with pyEDFlib, so the old check could not have
|
|
36
|
+
told the two apart and the new one can.
|
|
37
|
+
- Sampled at the start, the middle and the END of each signal rather than whole files — the PSG
|
|
38
|
+
alone is 48 MB. The end window is the one that earns its place: a reader whose record arithmetic
|
|
39
|
+
drifts does so with distance from the start.
|
|
40
|
+
- Skips without the corpus, like every other test in that directory, so a fresh clone stays green
|
|
41
|
+
and offline.
|
|
42
|
+
|
|
9
43
|
## 0.2.47
|
|
10
44
|
|
|
11
45
|
- **Fixed** this changelog. Every heading from `0.2.36` down to `0.2.45` named a version one lower
|
package/README.md
CHANGED
|
@@ -306,8 +306,18 @@ about the sample. Bit-parity is claimed for pyEDFlib alone. Both readers also ag
|
|
|
306
306
|
own declaration about POLARITY on a negative-gain channel, which a value comparison alone could not
|
|
307
307
|
establish.
|
|
308
308
|
|
|
309
|
-
**
|
|
310
|
-
|
|
309
|
+
**The public corpora, as of 0.2.48.** The bit-for-bit claim above also holds on files nobody here
|
|
310
|
+
chose: a **22-hour clinical polysomnogram** from sleep-edfx, and the teuniz generator files in EDF,
|
|
311
|
+
EDF+ and 24-bit BDF+. Sampled at the start, the middle and the end of every signal — the end window
|
|
312
|
+
being the one that catches record arithmetic drifting with distance, which a sample near record 0
|
|
313
|
+
cannot. Those tests need the corpus and skip without it:
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
npm run corpus:fetch
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**Still open before 1.0.** CHB-MIT, and the edfplus.info conformance files. Those are not claimed
|
|
320
|
+
here until a test produces them.
|
|
311
321
|
|
|
312
322
|
**Shipped since 0.1.6.** Min/max envelope decimation (`readEnvelope`,
|
|
313
323
|
`readEnvelopeAtResolution`). BioSemi Status-byte helpers (`readTriggers`). Streaming iteration
|
package/dist/constants.d.ts
CHANGED
|
@@ -109,5 +109,5 @@ export declare const SIGNAL_FIELD_BLOCK_OFFSETS: {
|
|
|
109
109
|
readonly reserved: 224;
|
|
110
110
|
};
|
|
111
111
|
/** Published package version. Kept in sync with package.json by a test. */
|
|
112
|
-
export declare const VERSION = "0.2.
|
|
112
|
+
export declare const VERSION = "0.2.49";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/package.json
CHANGED
package/src/constants.ts
CHANGED