edfcore 0.4.459 → 0.4.461
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/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/docs/CHANGELOG.md +34 -0
- package/package.json +1 -1
- package/src/constants.ts +1 -1
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.4.
|
|
112
|
+
export declare const VERSION = "0.4.461";
|
|
113
113
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.js
CHANGED
package/docs/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.4.461
|
|
10
|
+
|
|
11
|
+
- **Added** the exact-edge cases for `resolveTimeWindow` on a segmented index. The window is
|
|
12
|
+
half-open — `[start, start + duration)` — and the segmented path decides that on one line:
|
|
13
|
+
`segmentEndTicks <= windowStartTicks || segmentStartTicks >= windowEndTicks`. Relaxing either
|
|
14
|
+
comparison to a strict one left the whole suite green, because no window in it had ever landed
|
|
15
|
+
on a segment edge exactly: they overlapped by a record or missed by ninety seconds.
|
|
16
|
+
- The cost is a duplicated record at every gap. Walking a discontinuous file segment by segment —
|
|
17
|
+
`[0, 4)` then `[4, 100)` on the fixture here — a relaxed left comparison returns record 3 in
|
|
18
|
+
both, so a consumer concatenating the two gets one second of signal twice, at the seam where a
|
|
19
|
+
sleep study is most likely to be scored.
|
|
20
|
+
- Four cases: a segment ending exactly where the window starts is out, a segment starting exactly
|
|
21
|
+
where the window ends is out, a segment starting exactly where the window starts is IN, and a
|
|
22
|
+
three-window walk that visits records 0..7 once each. The third is what stops the first two
|
|
23
|
+
passing on an implementation that excluded every boundary rather than the right one.
|
|
24
|
+
- Found by mutating the comparisons rather than by reading the coverage report, which called the
|
|
25
|
+
line covered.
|
|
26
|
+
|
|
27
|
+
## 0.4.460
|
|
28
|
+
|
|
29
|
+
- **Added** the fourth rung of `timekeepingDefect`'s ladder, which had never run: a timekeeping
|
|
30
|
+
TAL written `+t 0x14 0x14 0x14 0x00` — two empty texts where the grammar allows exactly one.
|
|
31
|
+
- The other three rungs were covered. Text merged into the timekeeping TAL is the destructive one
|
|
32
|
+
and has its own file; a stray duration and the widespread `+t 0x14 0x00` shorthand are both
|
|
33
|
+
benign and both tested. This is the shorthand's opposite — a writer looping over an events list
|
|
34
|
+
that happens to be empty and terminating each iteration anyway — and deleting the check for it
|
|
35
|
+
failed nothing.
|
|
36
|
+
- Pinned as BENIGN, which is the part that matters. The two kinds carry separate once-per-call
|
|
37
|
+
flags, and a rung landing on the destructive side would report every record of a file whose
|
|
38
|
+
writer does this throughout. The fixture makes all three records malformed and asserts one
|
|
39
|
+
report, with the "nothing was lost" advice rather than the "EVERY affected record" advice.
|
|
40
|
+
- And the onset still governs the timeline: the span is asserted, so a rung that reported the
|
|
41
|
+
defect while losing the timing would fail here rather than pass quietly.
|
|
42
|
+
|
|
9
43
|
## 0.4.459
|
|
10
44
|
|
|
11
45
|
- **Added** the two `COMMA_DECIMAL_SEPARATOR` cases that were missing: a comma in the declared
|
package/package.json
CHANGED
package/src/constants.ts
CHANGED