From 1c61c89f560e39a090e4ffd35c4ccc8e3e39fb01 Mon Sep 17 00:00:00 2001 From: Jakob Zahn Date: Wed, 18 Mar 2026 08:33:09 +0100 Subject: [PATCH 1/3] add regression test for draw_text_mut (#244) * add test_draw_text_outside_bounds() to cover the case of #174 --- tests/regression.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/regression.rs b/tests/regression.rs index 556cbe8a..7597eec5 100644 --- a/tests/regression.rs +++ b/tests/regression.rs @@ -1001,6 +1001,27 @@ fn test_draw_text() { } } +#[test] +#[cfg(feature = "text")] +fn test_draw_text_outside_bounds() { + use proptest::char::range; + + let font_bytes = include_bytes!("data/fonts/DejaVuSans.ttf"); + let font = ab_glyph::FontRef::try_from_slice(font_bytes).unwrap(); + + let background = Luma::black(); + let mut img = GrayImage::from_pixel(300, 300, background); + + let text = "Hello world!"; + let scale = 12.4; + let newline_offset = scale * 1.2; + let (x, y) = (50, 100); + for i in 0..16 { + let y_with_offset = y + (i as f32 * newline_offset) as i32; + imageproc::drawing::draw_text_mut(&mut img, Luma::white(), x, y_with_offset, scale, &font, text); + } +} + #[test] #[cfg(feature = "text")] fn test_draw_text_with_alpha() { From 049c4dc6d985da82f0dc2665d1e77d6fedd0ff0f Mon Sep 17 00:00:00 2001 From: Jakob Zahn Date: Wed, 18 Mar 2026 09:25:20 +0100 Subject: [PATCH 2/3] remove unnecessary use proptest::char::range --- tests/regression.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/regression.rs b/tests/regression.rs index 7597eec5..c21d66d1 100644 --- a/tests/regression.rs +++ b/tests/regression.rs @@ -1004,8 +1004,6 @@ fn test_draw_text() { #[test] #[cfg(feature = "text")] fn test_draw_text_outside_bounds() { - use proptest::char::range; - let font_bytes = include_bytes!("data/fonts/DejaVuSans.ttf"); let font = ab_glyph::FontRef::try_from_slice(font_bytes).unwrap(); From b2fedc24f63b5b202553545329f6adb9e2fa57af Mon Sep 17 00:00:00 2001 From: Jakob Zahn Date: Thu, 30 Apr 2026 09:23:42 +0200 Subject: [PATCH 3/3] rename y_with_offset to improve formatting --- tests/regression.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/regression.rs b/tests/regression.rs index c21d66d1..0708e7d9 100644 --- a/tests/regression.rs +++ b/tests/regression.rs @@ -1015,8 +1015,8 @@ fn test_draw_text_outside_bounds() { let newline_offset = scale * 1.2; let (x, y) = (50, 100); for i in 0..16 { - let y_with_offset = y + (i as f32 * newline_offset) as i32; - imageproc::drawing::draw_text_mut(&mut img, Luma::white(), x, y_with_offset, scale, &font, text); + let y_mod = y + (i as f32 * newline_offset) as i32; + imageproc::drawing::draw_text_mut(&mut img, Luma::white(), x, y_mod, scale, &font, text); } }