edfcore 0.3.100 → 0.3.102

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,42 @@ 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.3.102
10
+
11
+ - **Fixed** `tests/corpus/coverage.test.ts` asserting nothing on the run it exists to protect.
12
+ - The file's docblock says it "checks the parts that need no corpus at all — that the manifest and
13
+ the goldens agree. A golden for a file the manifest no longer lists ... is a real drift that no
14
+ amount of skipping should hide." Its one test early-returned when the corpus was absent, with
15
+ `expect(corpusGoldens().length).toBeGreaterThanOrEqual(0)`. A length is never negative, so on
16
+ `git clone && npm test` — no corpus, which is the case the whole file is about — it checked
17
+ nothing.
18
+ - The manifest-versus-goldens half is now its own test and always runs: both sides are committed,
19
+ so it needs no corpus. The half that genuinely needs the files still skips without them, and
20
+ says so.
21
+ - Canaried in the state that matters: with `tests/corpus/files/` moved away and a manifest entry
22
+ removed, the new test fails and names the orphaned golden. Before this it passed.
23
+ - Fifth release in this batch about defect shape (e) — a guard that would still pass if what it
24
+ names regressed. Found by sweeping the whole suite for self-comparisons and structurally weak
25
+ assertions after 0.3.101, rather than one at a time.
26
+
27
+ ## 0.3.101
28
+
29
+ - **Fixed** an assertion in `tests/corpus/whole-api.test.ts` that compared a value with itself:
30
+ `expect(inspection.header.signals.length).toBe(inspection.header.signals.length)`. Both operands
31
+ are the same expression, so it held for every input.
32
+ - It was the only consistency check in the test the file's docblock calls "the strongest promise
33
+ in the package", under a comment reading "Whatever it reports must be internally consistent
34
+ rather than merely present". Across five corpus files it checked nothing.
35
+ - Replaced with invariants that can fail: the two index arrays partition the signals exactly once,
36
+ `headerByteLength` is the `256 * (ns + 1)` the signal count implies, `bytesRead` exceeds neither
37
+ the file nor the 128 KiB ceiling, and `ok` equals "no error-severity diagnostic" — the rule the
38
+ `inspectEdf` docblock states.
39
+ - Each new assertion was canaried by breaking the behaviour it names and confirming it fails.
40
+ Two earlier attempts were rejected: one could not distinguish anything on a clean corpus, and one
41
+ broke module loading instead of changing behaviour, which is not a canary.
42
+ - Defect shape (e), the one this project keeps re-learning: a guard that would still pass if what it
43
+ names regressed. It has now been the subject of 0.3.52, 0.3.78, 0.3.80, 0.3.90 and this release.
44
+
9
45
  ## 0.3.100
10
46
 
11
47
  - **Fixed** `diagnostics.md` recommending, as the alternative to a gate it warns against, a gate
@@ -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.3.100";
112
+ export declare const VERSION = "0.3.102";
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.3.100';
82
+ export const VERSION = '0.3.102';
83
83
  //# sourceMappingURL=constants.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.3.100",
3
+ "version": "0.3.102",
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.3.100';
96
+ export const VERSION = '0.3.102';