From 7ae33649bfc65fc9d843ce2005409deaa458fbe4 Mon Sep 17 00:00:00 2001 From: mutec Date: Sun, 10 Nov 2024 17:22:41 +0100 Subject: [PATCH 1/2] fix switch back to `0` in HTP merging Value `0` was never set since the condition to be smaller than the reference `0` is never met. This led to being `undefined` and missing keys within the change-events. --- src/merging.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/merging.ts b/src/merging.ts index 39e695d..a72a401 100644 --- a/src/merging.ts +++ b/src/merging.ts @@ -236,7 +236,7 @@ export class MergingReceiver extends Receiver { ) { for (let ch = 1; ch <= 512; ch += 1) { const newValue = packet.payload[ch] || 0; - if ((mergedData[ch] ?? 0) < newValue) { + if ((mergedData[ch] ?? 0) <= newValue) { mergedData[ch] = newValue; } } From 1030b738c465f952252966b5d5ca7a2c2a796e64 Mon Sep 17 00:00:00 2001 From: Kyle Hensel Date: Wed, 13 Nov 2024 13:51:44 +0100 Subject: [PATCH 2/2] fix failing tests --- test/merging.test.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/merging.test.ts b/test/merging.test.ts index 94dd4c2..5bf90f3 100644 --- a/test/merging.test.ts +++ b/test/merging.test.ts @@ -42,6 +42,8 @@ describe('HTP', () => { }), }, }); + deleteZeros(merged); + expect(merged).toStrictEqual({ // HTP applies to the whole packet, so channel 4 is 0, instead of 204 // referenceData is irrelevant for HTP, so channel 5 is 0, instead of 5 @@ -66,6 +68,8 @@ describe('HTP', () => { }), }, }); + deleteZeros(merged); + expect(merged).toStrictEqual({ 1: 201, 2: 202,