edfcore 0.2.33 → 0.2.34
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 +21 -0
- package/README.md +11 -4
- 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,27 @@ 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.34
|
|
10
|
+
|
|
11
|
+
- **Added** the golden-value harness this README has withheld a numerical-interop claim for since
|
|
12
|
+
0.1.0. edfcore now **reproduces pyEDFlib's float64 physical values bit for bit** on EDF and
|
|
13
|
+
24-bit BDF, across symmetric and asymmetric declared ranges. `scripts/golden/generate.py` writes
|
|
14
|
+
the fixtures with pyEDFlib's own writer, reads them back with pyEDFlib, and records every sample
|
|
15
|
+
as its exact IEEE-754 bit pattern; the test compares with `Object.is`, so one ULP is a failure.
|
|
16
|
+
Nothing under `tests/corpus/golden/` was produced by edfcore, and the goldens are committed so
|
|
17
|
+
CI never needs Python.
|
|
18
|
+
|
|
19
|
+
Every previous test of the pinned scaling expression re-derived that same expression inside the
|
|
20
|
+
test, which proved edfcore agrees with itself and nothing more. This is the first evidence that
|
|
21
|
+
the choice to keep EDFlib's numerically worse form was worth making: substituting the textbook
|
|
22
|
+
`physicalMinimum + (digital - digitalMinimum) * gain` fails on 140 of 256 samples of the
|
|
23
|
+
symmetric fixture — `-492.15686274509807` where pyEDFlib says `-492.156862745098` — and a test
|
|
24
|
+
asserts that the goldens can tell the two apart, so the parity is a real constraint rather than
|
|
25
|
+
a coincidence of the fixtures.
|
|
26
|
+
|
|
27
|
+
Still not claimed, because no test produces it yet: parity with MNE, and validation across the
|
|
28
|
+
public corpora.
|
|
29
|
+
|
|
9
30
|
## 0.2.33
|
|
10
31
|
|
|
11
32
|
- **Fixed** annotations being dropped with no diagnostic naming them. `TIMEKEEPING_TAL_NONCONFORMANT`
|
package/README.md
CHANGED
|
@@ -291,10 +291,17 @@ the reason to trust the reader.
|
|
|
291
291
|
**0.1 — reads everything, lies about nothing.** All six variants, the primitive/I/O/convenience
|
|
292
292
|
layers, `inspectEdf`, `edfcore/validate`, six source adapters, the full diagnostic vocabulary.
|
|
293
293
|
|
|
294
|
-
**
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
294
|
+
**Numerical interop, as of 0.2.34.** edfcore reproduces **pyEDFlib's float64 physical values bit
|
|
295
|
+
for bit** on EDF and 24-bit BDF, across symmetric and asymmetric ranges. That is a test, not a
|
|
296
|
+
belief: `scripts/golden/generate.py` writes the fixtures with pyEDFlib's own writer, reads them
|
|
297
|
+
back with pyEDFlib, and records every sample as its exact IEEE-754 bit pattern;
|
|
298
|
+
`tests/corpus/golden-values.test.ts` compares with `Object.is`, so one ULP is a failure. Nothing in
|
|
299
|
+
`tests/corpus/golden/` was produced by edfcore. Substituting the numerically better textbook
|
|
300
|
+
expression fails it on 140 of 256 samples — which is why the EDFlib form is pinned.
|
|
301
|
+
|
|
302
|
+
**Still open before 1.0.** The same harness against MNE, and validation across public corpora
|
|
303
|
+
(sleep-edfx, CHB-MIT, the BioSemi and edfplus.info test files). Those claims are not made here
|
|
304
|
+
until a test produces them.
|
|
298
305
|
|
|
299
306
|
**Shipped since 0.1.6.** Min/max envelope decimation (`readEnvelope`,
|
|
300
307
|
`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.34";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/package.json
CHANGED
package/src/constants.ts
CHANGED