@@ -52,8 +52,8 @@ def test_image_resizing_converter_initialization_output_format_validation():
5252
5353def test_image_resizing_converter_initialization_scale_factor_validation ():
5454 """Test validation of scale_factor parameter."""
55- for invalid_scale_factor in [0.0 , - 0.1 , - 1.0 , - 100.0 ]:
56- with pytest .raises (ValueError , match = "Scale factor must be positive" ):
55+ for invalid_scale_factor in [0.0 , - 0.1 , - 1.0 , - 100.0 , float ( "nan" ), float ( "inf" ), float ( "-inf" ) ]:
56+ with pytest .raises (ValueError , match = "Scale factor must be a positive finite number " ):
5757 ImageResizingConverter (scale_factor = invalid_scale_factor )
5858
5959 for valid_scale_factor in [0.1 , 0.5 , 1.0 , 2.0 , 10.0 ]:
@@ -229,3 +229,23 @@ async def test_image_resizing_converter_output_dimensions(sample_image_bytes):
229229 expected_width = int (original_size [0 ] * scale_factor )
230230 expected_height = int (original_size [1 ] * scale_factor )
231231 assert resized_image .size == (expected_width , expected_height )
232+
233+
234+ @pytest .mark .parametrize (
235+ ("input_size" , "expected_size" ),
236+ [
237+ ((1 , 1 ), (1 , 1 )),
238+ ((1 , 8 ), (1 , 4 )),
239+ ((8 , 1 ), (4 , 1 )),
240+ ],
241+ )
242+ def test_image_resizing_converter_minimum_output_dimensions (
243+ input_size : tuple [int , int ], expected_size : tuple [int , int ]
244+ ) -> None :
245+ """Test that each output dimension is clamped to at least one pixel."""
246+ converter = ImageResizingConverter (scale_factor = 0.5 )
247+ image = Image .new ("RGB" , input_size )
248+
249+ resized_image = converter ._apply_transform (image )
250+
251+ assert resized_image .size == expected_size
0 commit comments