From 9be97f5213aeb426417df719a2c4e8e93aeb98c2 Mon Sep 17 00:00:00 2001 From: Bane Stojkovic Date: Mon, 29 Dec 2025 10:54:39 +0100 Subject: [PATCH] fix tests --- .../src/main/java/org/diylc/presenter/CalcUtils.java | 4 +++- .../src/test/java/org/diylc/presenter/CalcUtilsTest.java | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/diylc/diylc-core/src/main/java/org/diylc/presenter/CalcUtils.java b/diylc/diylc-core/src/main/java/org/diylc/presenter/CalcUtils.java index f06a5d8dd..c54fc89ee 100644 --- a/diylc/diylc-core/src/main/java/org/diylc/presenter/CalcUtils.java +++ b/diylc/diylc-core/src/main/java/org/diylc/presenter/CalcUtils.java @@ -101,7 +101,9 @@ public class CalcUtils { return null; } double luminance = calculateLuminance(color); - Color monochromeColor = (luminance < threshold) ? Color.BLACK : Color.WHITE; + // Use <= to handle edge case where luminance equals threshold (should be white) + // Add small epsilon to account for floating point precision issues + Color monochromeColor = (luminance < threshold - 1e-10) ? Color.BLACK : Color.WHITE; // Preserve alpha channel if present if (color.getAlpha() < 255) { monochromeColor = new Color(monochromeColor.getRed(), monochromeColor.getGreen(), diff --git a/diylc/diylc-core/src/test/java/org/diylc/presenter/CalcUtilsTest.java b/diylc/diylc-core/src/test/java/org/diylc/presenter/CalcUtilsTest.java index 2909a7933..f0542ff65 100644 --- a/diylc/diylc-core/src/test/java/org/diylc/presenter/CalcUtilsTest.java +++ b/diylc/diylc-core/src/test/java/org/diylc/presenter/CalcUtilsTest.java @@ -229,8 +229,17 @@ public class CalcUtilsTest { @Test public void testConvertToMonochromeWithAlpha() { // Test color with alpha channel - alpha should be preserved + // Red (255, 0, 0) has luminance ~76, which is < 128, so it becomes BLACK Color transparentRed = new Color(255, 0, 0, 128); Color result = CalcUtils.convertToMonochrome(transparentRed); + assertEquals(Color.BLACK.getRed(), result.getRed()); + assertEquals(Color.BLACK.getGreen(), result.getGreen()); + assertEquals(Color.BLACK.getBlue(), result.getBlue()); + assertEquals(128, result.getAlpha()); + + // Test light color with alpha - should become WHITE + Color transparentLight = new Color(255, 255, 200, 128); + result = CalcUtils.convertToMonochrome(transparentLight); assertEquals(Color.WHITE.getRed(), result.getRed()); assertEquals(Color.WHITE.getGreen(), result.getGreen()); assertEquals(Color.WHITE.getBlue(), result.getBlue());