From fd0fe646eee85a329d4fa77657b9781e3f58a947 Mon Sep 17 00:00:00 2001 From: Doruk Date: Thu, 19 Jun 2025 20:52:29 +0200 Subject: [PATCH] fix test for scale factor --- test/backend-test/test-uptime-calculator.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/test/backend-test/test-uptime-calculator.js b/test/backend-test/test-uptime-calculator.js index bd22db14e..3dc41b8f4 100644 --- a/test/backend-test/test-uptime-calculator.js +++ b/test/backend-test/test-uptime-calculator.js @@ -820,15 +820,17 @@ test("Test getAggregatedBuckets - No duplicate accounting with scale factor", as // Reset to current time UptimeCalculator.currentDate = currentTime; - // Test with daily data (> 30 days), but using smaller range to see scale factor effect - let buckets = c.getAggregatedBuckets(40, 20); // 40 days, 20 buckets = 2 days per bucket + // Test with daily data where buckets are SMALLER than data points (to trigger scaling down) + let buckets = c.getAggregatedBuckets(40, 80); // 40 days, 80 buckets = 0.5 days (720 min) per bucket - // With scale factor, each daily data point (1440 minutes) should be scaled down - // when put into 2-day buckets (2880 minutes): scaleFactor = 1440/2880 = 0.5 + // With scale factor calculation: bucketSizeMinutes / dataPointSizeMinutes + // bucketSizeMinutes = (40 days * 1440 min/day) / 80 buckets = 720 min/bucket + // dataPointSizeMinutes = 1440 (daily data) + // scaleFactor = min(1.0, 720/1440) = min(1.0, 0.5) = 0.5 let totalUp = buckets.reduce((sum, b) => sum + b.up, 0); // We should have 10 * 0.5 = 5 total UP beats due to scale factor - // This prevents double-counting when daily data points span multiple days + // This prevents double-counting when daily data points span multiple buckets assert.strictEqual(totalUp, 5, "Scale factor should prevent over-counting: 10 daily beats * 0.5 scale = 5"); // Test with exact bucket size match (no scaling needed)