code: def test_gaussian_blur(device, image_size, dt, ksize, sigma, fn):
      # true_cv2_results = {
      #     # np_img = np.arange(3 * 10 * 12, dtype="uint8").reshape((10, 12, 3))
      #     # cv2.GaussianBlur(np_img, ksize=(3, 3), sigmaX=0.8)
      #     "3_3_0.8": ...
      #     # cv2.GaussianBlur(np_img, ksize=(3, 3), sigmaX=0.5)
      #     "3_3_0.5": ...
      #     # cv2.GaussianBlur(np_img, ksize=(3, 5), sigmaX=0.8)
      #     "3_5_0.8": ...
      #     # cv2.GaussianBlur(np_img, ksize=(3, 5), sigmaX=0.5)
      #     "3_5_0.5": ...
      #     # np_img2 = np.arange(26 * 28, dtype="uint8").reshape((26, 28))
      #     # cv2.GaussianBlur(np_img2, ksize=(23, 23), sigmaX=1.7)
      #     "23_23_1.7": ...
      # }
      p = os.path.join(
          os.path.dirname(os.path.abspath(__file__)),
          "assets",
          "gaussian_blur_opencv_results.pt",
      )
  
      true_cv2_results = torch.load(p, weights_only=False)
  
      if image_size == "small":
          tensor = (
              torch.from_numpy(
                  np.arange(3 * 10 * 12, dtype="uint8").reshape(
                      (10, 12, 3)
                  )
              )
              .permute(2, 0, 1)
              .to(device)
          )
      else:
          tensor = torch.from_numpy(
              np.arange(26 * 28, dtype="uint8").reshape((1, 26, 28))
          ).to(device)
  
      if dt == torch.float16 and device == "cpu":
          # skip float16 on CPU case
          return
  
      if dt is not None:
          tensor = tensor.to(dtype=dt)
  
      _ksize = (ksize, ksize) if isinstance(ksize, int) else ksize
      _sigma = sigma[0] if sigma is not None else None
      shape = tensor.shape
      gt_key = f"{shape[-2]}_{shape[-1]}_{shape[-3]}__{_ksize[0]}_{_ksize[1]}_{_sigma}"
      if gt_key not in true_cv2_results:
          return
  
      true_out = (
          torch.tensor(true_cv2_results[gt_key])
          .reshape(shape[-2], shape[-1], shape[-3])
          .permute(2, 0, 1)
          .to(tensor)
      )
  
      out = fn(tensor, kernel_size=ksize, sigma=sigma)
      torch.testing.assert_close(
          out, true_out, rtol=0.0, atol=1.0, msg=f"{ksize}, {sigma}"
      )
  
imports: import colorsys
  import itertools
  import math
  import os
  from functools import partial
  from typing import Sequence
  import numpy
  import PIL.Image
  import pytest
  import torch
  import torchvision.transforms
  import torchvision.transforms._functional_pil
  import torchvision.transforms._functional_tensor
  import torchvision.transforms.functional
  from common_utils import _assert_approx_equal_tensor_to_pil, _assert_equal_tensor_to_pil, _create_data, _create_data_batch, _test_fn_on_batch, assert_equal, cpu_and_cuda, needs_cuda
  from torchvision.transforms import InterpolationMode
label_desc: Use image node_id 32 for calling a global function with example usage: test_gaussian_blur(device, image_size, dt, ksize, sigma, fn) without return types