edfcore 0.2.51 → 0.2.53

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 CHANGED
@@ -6,6 +6,33 @@ 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.53
10
+
11
+ - **Added** a check that `validateRecording`'s sample scan sees what pyEDFlib sees. The observed
12
+ digital minimum and maximum are the only numbers in a validation report derived from every sample
13
+ rather than from the header, so they are the ones worth checking against another reader — and a
14
+ sampled window cannot check them, because the extremes of a 22-hour recording are very unlikely
15
+ to fall inside the 256 samples the goldens record. The whole-signal extremes now come from
16
+ pyEDFlib, across all five corpus files.
17
+ - Also pins `outOfDigitalRangeCount` against those extremes. It is a claim about the DECLARATION
18
+ rather than about the samples — a non-zero count means the header's digital range is wrong, and
19
+ edfcore never clamps — so recomputing whether any sample could be outside the declared bounds
20
+ from pyEDFlib's own observations is the independent form of that check.
21
+
22
+ ## 0.2.52
23
+
24
+ - **Added** streaming equivalence on the 22-hour recording. The documented claim is that a streamed
25
+ chunk and a read chunk are the same object in every respect; on a 40-record fixture a chunking
26
+ mistake often cancels out, and over 2,650 records it cannot. 7,950,000 samples are concatenated
27
+ from 42 streamed chunks and compared element by element with a single `readWindow`, and no chunk
28
+ is allowed to hold more than its own records.
29
+ - Also pins that streaming yields its first chunk after reading under one percent of a 48 MB file.
30
+ Bounded memory is half the claim; not having to read the whole file before yielding anything is
31
+ the other half, and a byte counter is the evidence.
32
+ - The comparison is a loop rather than `toEqual`. Deep equality over two 7.95-million-element typed
33
+ arrays took 45 seconds and, on failure, printed a diff nobody could read; the loop takes under a
34
+ second and names the first differing sample, which is the only part anyone would look at.
35
+
9
36
  ## 0.2.51
10
37
 
11
38
  - **Added** the tests only a real, large recording can support, against the 22-hour sleep-edfx
@@ -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.51";
112
+ export declare const VERSION = "0.2.53";
113
113
  //# sourceMappingURL=constants.d.ts.map
package/dist/constants.js CHANGED
@@ -79,5 +79,5 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
79
79
  reserved: 224,
80
80
  };
81
81
  /** Published package version. Kept in sync with package.json by a test. */
82
- export const VERSION = '0.2.51';
82
+ export const VERSION = '0.2.53';
83
83
  //# sourceMappingURL=constants.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.2.51",
3
+ "version": "0.2.53",
4
4
  "description": "Modern, typed, zero-dependency reader for EDF, EDF+, BDF and BDF+ biosignal files. Works in browsers and Node with true random access.",
5
5
  "keywords": [
6
6
  "edf",
package/src/constants.ts CHANGED
@@ -93,4 +93,4 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
93
93
  } as const;
94
94
 
95
95
  /** Published package version. Kept in sync with package.json by a test. */
96
- export const VERSION = '0.2.51';
96
+ export const VERSION = '0.2.53';