code: def test_args_box():
      im = Image.new("L", (10, 10))
  
      assert (5, 5) == im.reduce(2, (0, 0, 10, 10)).size
      assert (1, 1) == im.reduce(2, (5, 5, 6, 6)).size
  
      with pytest.raises(TypeError):
          im.reduce(2, "stri")
      with pytest.raises(TypeError):
          im.reduce(2, 2)
      with pytest.raises(ValueError):
          im.reduce(2, (0, 0, 11, 10))
      with pytest.raises(ValueError):
          im.reduce(2, (0, 0, 10, 11))
      with pytest.raises(ValueError):
          im.reduce(2, (-1, 0, 10, 10))
      with pytest.raises(ValueError):
          im.reduce(2, (0, -1, 10, 10))
      with pytest.raises(ValueError):
          im.reduce(2, (0, 5, 10, 5))
      with pytest.raises(ValueError):
          im.reduce(2, (5, 0, 5, 10))
  
file_path: pillow-simd/Tests/test_image_reduce.py
imports: import pytest
  from PIL import Image, ImageMath, ImageMode
  from .helper import convert_to_comparable, skip_unless_feature
label_desc: Use image node_id 2 for calling a global function with example usage: test_args_box() without return types