edfcore 0.4.461 → 0.4.463

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.
@@ -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.4.461";
112
+ export declare const VERSION = "0.4.463";
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.4.461';
82
+ export const VERSION = '0.4.463';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,41 @@ 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.4.463
10
+
11
+ - **Added** the half-open edge cases for the branch `trimToWindow` takes when nothing in the chunk
12
+ advances in time — a zero record duration, or a signal with no samples per record. It decides
13
+ membership with its own comparison pair, and the existing test put the chunk at 0 and asked
14
+ about `[0, 1)` and `[1, 2)`, missing both boundaries by a whole second.
15
+ - Relaxing the right-hand comparison to `<=` admitted a chunk that begins exactly where the window
16
+ ends, so two adjacent windows both returned it and a caller walking such a file got every sample
17
+ twice. Relaxing the left-hand one excluded a chunk that begins exactly where the window begins,
18
+ which is the ordinary way anyone asks for the first window of a file.
19
+ - The `windowDurationTicks > 0n` clause guarding both survives mutation and is left as it is. It
20
+ is redundant with the pair below it — with a zero-length window, `chunkStartTicks <
21
+ windowStartTicks + 0n` is already false wherever the left comparison holds — so no input can
22
+ distinguish it, and the empty-window case is asserted for what it promises rather than to kill a
23
+ mutant it cannot reach.
24
+
25
+ ## 0.4.462
26
+
27
+ - **Added** the edge cases for `countOutOfDigitalRange`, the third copy of a rule whose other two
28
+ copies were already pinned. `decodeInt16` and `decodeInt24` count a sample as out of range only
29
+ when it is strictly outside `[digitalMinimum, digitalMaximum]`; this copy runs when a trim
30
+ narrows a chunk that had one, and neither of its comparisons was pinned at the edge. Relaxing
31
+ either left the suite green.
32
+ - A sample sitting exactly at the declared maximum is the common case, not the exotic one — a
33
+ saturating amplifier parks a channel at 32767 for the length of an artefact.
34
+ `outOfDigitalRangeCount` is documented as meaning the declared range is WRONG, so counting a
35
+ clipped sample says that about the one file where the declaration is exactly right. And only
36
+ for callers who trimmed: the same samples would be in range before the trim and out of range
37
+ after it.
38
+ - The inverted declaration is pinned here too. `digitalMinimum > digitalMaximum` is a real writer
39
+ bug, the decoder compares against min/max of the pair rather than the pair as written, and this
40
+ copy has to agree — taking them as written makes every sample out of range, again only after a
41
+ trim.
42
+ - Found by mutation, not by coverage: all three lines were reported as covered.
43
+
9
44
  ## 0.4.461
10
45
 
11
46
  - **Added** the exact-edge cases for `resolveTimeWindow` on a segmented index. The window is
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.461",
3
+ "version": "0.4.463",
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.4.461';
96
+ export const VERSION = '0.4.463';