blur uses radius instead of intensity

This commit is contained in:
Michael Freno
2025-12-05 11:31:52 -05:00
parent 3eb5b12240
commit 7883f914d9
11 changed files with 136 additions and 144 deletions

View File

@@ -104,7 +104,7 @@ end
-- applyToRegion() Edge Cases
-- ============================================================================
function TestBlur:testApplyToRegionWithZeroIntensity()
function TestBlur:testApplyToRegionWithZeroRadius()
local blur = Blur.new({quality = 5})
local called = false
local drawFunc = function()
@@ -116,7 +116,7 @@ function TestBlur:testApplyToRegionWithZeroIntensity()
luaunit.assertTrue(called)
end
function TestBlur:testApplyToRegionWithNegativeIntensity()
function TestBlur:testApplyToRegionWithNegativeRadius()
local blur = Blur.new({quality = 5})
local called = false
local drawFunc = function()
@@ -176,14 +176,14 @@ function TestBlur:testApplyToRegionWithNegativeHeight()
luaunit.assertTrue(called)
end
function TestBlur:testApplyToRegionWithIntensityOver100()
function TestBlur:testApplyToRegionWithLargeRadius()
local blur = Blur.new({quality = 5})
local called = false
local drawFunc = function()
called = true
end
-- Should clamp intensity to 100
-- Should work with large radius values
blur:applyToRegion(150, 0, 0, 100, 100, drawFunc)
luaunit.assertTrue(called)
end
@@ -240,36 +240,36 @@ function TestBlur:testApplyToRegionWithVeryLargeDimensions()
luaunit.assertTrue(called)
end
function TestBlur:testApplyToRegionIntensityBoundaries()
function TestBlur:testApplyToRegionRadiusValues()
local blur = Blur.new({quality = 5})
local called = false
local drawFunc = function()
called = true
end
-- Test boundary values that affect passes calculation
-- intensity 20 = 1 pass
-- Test various radius values
-- Small radius
blur:applyToRegion(5, 0, 0, 100, 100, drawFunc)
luaunit.assertTrue(called)
called = false
-- Medium radius
blur:applyToRegion(10, 0, 0, 100, 100, drawFunc)
luaunit.assertTrue(called)
called = false
-- Large radius
blur:applyToRegion(20, 0, 0, 100, 100, drawFunc)
luaunit.assertTrue(called)
called = false
-- intensity 40 = 2 passes
blur:applyToRegion(40, 0, 0, 100, 100, drawFunc)
-- Very large radius
blur:applyToRegion(50, 0, 0, 100, 100, drawFunc)
luaunit.assertTrue(called)
called = false
-- intensity 60 = 3 passes
blur:applyToRegion(60, 0, 0, 100, 100, drawFunc)
luaunit.assertTrue(called)
called = false
-- intensity 80 = 4 passes
blur:applyToRegion(80, 0, 0, 100, 100, drawFunc)
luaunit.assertTrue(called)
called = false
-- intensity 100 = 5 passes
blur:applyToRegion(100, 0, 0, 100, 100, drawFunc)
-- Fractional radius
blur:applyToRegion(2.5, 0, 0, 100, 100, drawFunc)
luaunit.assertTrue(called)
end
@@ -277,7 +277,7 @@ end
-- applyBackdrop() Edge Cases
-- ============================================================================
function TestBlur:testApplyBackdropWithZeroIntensity()
function TestBlur:testApplyBackdropWithZeroRadius()
local blur = Blur.new({quality = 5})
local mockCanvas = {
getDimensions = function()
@@ -290,7 +290,7 @@ function TestBlur:testApplyBackdropWithZeroIntensity()
luaunit.assertTrue(true)
end
function TestBlur:testApplyBackdropWithNegativeIntensity()
function TestBlur:testApplyBackdropWithNegativeRadius()
local blur = Blur.new({quality = 5})
local mockCanvas = {
getDimensions = function()
@@ -337,7 +337,7 @@ function TestBlur:testApplyBackdropWithNilCanvas()
luaunit.assertTrue(true) -- Should reach here without crash
end
function TestBlur:testApplyBackdropWithIntensityOver100()
function TestBlur:testApplyBackdropWithLargeRadius()
local blur = Blur.new({quality = 5})
local mockCanvas = {
getDimensions = function()
@@ -345,7 +345,7 @@ function TestBlur:testApplyBackdropWithIntensityOver100()
end,
}
-- Should clamp intensity to 100
-- Should work with large radius values
blur:applyBackdrop(200, 0, 0, 100, 100, mockCanvas)
luaunit.assertTrue(true)
end

View File

@@ -393,7 +393,7 @@ function TestCriticalFailures:test_blur_invalid_quality()
FlexLove.new({
width = 100,
height = 100,
contentBlur = { intensity = 50, quality = 0 },
contentBlur = { radius = 50, quality = 0 },
})
end)
@@ -403,7 +403,7 @@ function TestCriticalFailures:test_blur_invalid_quality()
FlexLove.new({
width = 100,
height = 100,
contentBlur = { intensity = 50, quality = -5 },
contentBlur = { radius = 50, quality = -5 },
})
end)

View File

@@ -1881,7 +1881,7 @@ end
function TestElementBlur:test_getBlurInstance_with_blur()
local element = createBasicElement({
backdropBlur = { intensity = 50, quality = 5 },
backdropBlur = { radius = 50, quality = 5 },
})
-- Blur instance should be created when backdropBlur is set
@@ -1981,7 +1981,7 @@ end
function TestElementDraw:test_draw_with_blur()
local element = createBasicElement({
backdropBlur = { intensity = 50, quality = 5 },
backdropBlur = { radius = 50, quality = 5 },
backgroundColor = Color.new(1, 1, 1, 0.5),
})
@@ -2906,7 +2906,7 @@ function TestElementEdgeCases:test_invalid_blur_config()
id = "blur",
width = 100,
height = 100,
contentBlur = { intensity = -10, quality = 5 },
contentBlur = { radius = -10, quality = 5 },
})
luaunit.assertNotNil(element)
@@ -2915,7 +2915,7 @@ function TestElementEdgeCases:test_invalid_blur_config()
id = "blur2",
width = 100,
height = 100,
backdropBlur = { intensity = 150, quality = 5 },
backdropBlur = { radius = 150, quality = 5 },
})
luaunit.assertNotNil(element)
@@ -2924,7 +2924,7 @@ function TestElementEdgeCases:test_invalid_blur_config()
id = "blur3",
width = 100,
height = 100,
contentBlur = { intensity = 50, quality = 0 },
contentBlur = { radius = 50, quality = 0 },
})
luaunit.assertNotNil(element)
end

View File

@@ -438,26 +438,26 @@ TestRendererBlur = {}
function TestRendererBlur:testNewWithContentBlur()
local renderer = Renderer.new({
contentBlur = {
intensity = 5,
radius = 5,
quality = "high",
},
}, createDeps())
luaunit.assertNotNil(renderer.contentBlur)
luaunit.assertEquals(renderer.contentBlur.intensity, 5)
luaunit.assertEquals(renderer.contentBlur.radius, 5)
luaunit.assertEquals(renderer.contentBlur.quality, "high")
end
function TestRendererBlur:testNewWithBackdropBlur()
local renderer = Renderer.new({
backdropBlur = {
intensity = 10,
radius = 10,
quality = "medium",
},
}, createDeps())
luaunit.assertNotNil(renderer.backdropBlur)
luaunit.assertEquals(renderer.backdropBlur.intensity, 10)
luaunit.assertEquals(renderer.backdropBlur.radius, 10)
luaunit.assertEquals(renderer.backdropBlur.quality, "medium")
end
@@ -923,7 +923,7 @@ function TestRendererEdgeCases:test_blur_with_invalid_intensity()
id = "test1",
width = 100,
height = 100,
contentBlur = { intensity = -10, quality = 5 },
contentBlur = { radius = -10, quality = 5 },
})
luaunit.assertNotNil(element1)
@@ -932,7 +932,7 @@ function TestRendererEdgeCases:test_blur_with_invalid_intensity()
id = "test2",
width = 100,
height = 100,
backdropBlur = { intensity = 200, quality = 5 },
backdropBlur = { radius = 200, quality = 5 },
})
luaunit.assertNotNil(element2)
end
@@ -943,7 +943,7 @@ function TestRendererEdgeCases:test_blur_with_invalid_quality()
id = "test1",
width = 100,
height = 100,
contentBlur = { intensity = 10, quality = 0 },
contentBlur = { radius = 10, quality = 0 },
})
luaunit.assertNotNil(element1)
@@ -952,7 +952,7 @@ function TestRendererEdgeCases:test_blur_with_invalid_quality()
id = "test2",
width = 100,
height = 100,
contentBlur = { intensity = 10, quality = 100 },
contentBlur = { radius = 10, quality = 100 },
})
luaunit.assertNotNil(element2)
end