qvdjs 2.2.3 → 2.2.4

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/README.md CHANGED
@@ -42,28 +42,31 @@ thing worth reading:
42
42
 
43
43
  ## Checked against Qlik Sense
44
44
 
45
- qvdjs is compared with Qlik Sense itself, not only with its own reading of the format. 36 fields in
46
- 7 datasets - integers, doubles, text (non-ASCII, empty and number-like included), booleans, dates,
47
- timestamps and NULLs - are defined twice, as Qlik load-script expressions and as the JavaScript
48
- values a caller would write. Qlik Sense and qvdjs each write them to a QVD, and three things are
49
- checked:
45
+ qvdjs is compared with Qlik Sense itself, not only with its own reading of the format. 48 fields in
46
+ 8 datasets - integers, doubles, text (non-ASCII, empty and number-like included), booleans, dates,
47
+ timestamps, and NULLs beside numbers, text, dates and timestamps - are defined twice, as Qlik
48
+ load-script expressions and as the JavaScript values a caller would write. Qlik Sense and qvdjs each
49
+ write them to a QVD, and three things are checked:
50
50
 
51
51
  - **qvdjs writes the content Qlik writes** - the same symbols, of the same types, with the same text,
52
52
  on the same rows.
53
- - **Given Qlik's tags and number formats, qvdjs writes them unchanged** - the bit layout, below, is
54
- the only part of a field's header left to differ.
53
+ - **Given Qlik's tags and number formats, qvdjs writes them unchanged** - the bit layout and a tag the
54
+ values contradict, below, are the only parts of a field's header left to differ.
55
55
  - **Qlik reads qvdjs's file as it reads its own** - loaded into Qlik and stored again, with `Text()`,
56
56
  `Num()`, `IsNum()`, `IsText()`, `IsNull()` and `Year()` the same on every row.
57
57
 
58
58
  The live comparison runs on demand against a Qlik Sense server; its last run, against Qlik Sense
59
- Enterprise on Windows build 50699, passed for all 36 fields. Qlik's files from that run are kept in
59
+ Enterprise on Windows build 50699, passed for all 48 fields. Qlik's files from that run are kept in
60
60
  the test suite, so **every CI run compares qvdjs's output with them again** - on Linux, Windows and
61
61
  macOS, under Node 22, 24 and 26 - along with reference files Qlik wrote for booleans, dates and
62
62
  timestamps.
63
63
 
64
- Two differences are by design: Qlik often gives a field more bits in the index than its values need,
65
- where qvdjs uses the fewest, and qvdjs adds no tags or number formats of its own - Qlik works tags out
66
- when it loads a file. QVD is also QlikView's format, but QlikView is not part of the comparison.
64
+ Three differences are by design. Qlik often gives a field more bits in the index than its values need,
65
+ where qvdjs uses the fewest. qvdjs adds no tags or number formats of its own - Qlik works tags out when
66
+ it loads a file, and keeps any the file carries. And qvdjs drops a tag the values contradict, even one
67
+ Qlik wrote: Qlik tags dates outside 1980 to 2080 as text when their field has no date format, although
68
+ its own `IsNum()` reads every one as a number. QVD is also QlikView's format, but QlikView is not part
69
+ of the comparison.
67
70
 
68
71
  → [Checked against Qlik Sense](https://qvdjs.ptarmiganlabs.com/v2.0/overview/checked-against-qlik-sense/)
69
72