code: def test_fail_gaussian_blur():
      for dev in ["cpu", "gpu"]:
          # Check layout and channel placement errors
          args = [
              (
                  (20, 20, 30, 3),
                  "DHCW",
                  3,
                  r"Only channel-first or channel-last layouts are supported, got: .*\.",
              ),
              (
                  (5, 20, 30, 3),
                  "HFWC",
                  2,
                  r"For sequences, layout should begin with 'F' or 'C', got: .*\.",
              ),
              (
                  (5, 10, 10, 10, 7, 3),
                  "FWXYZC",
                  4,
                  r"Too many dimensions, found: \d+ data axes, maximum supported is: 3\.",
              ),
              (
                  (5, 3, 20, 3, 30),
                  "FCHCW",
                  2,
                  r"Only channel-first or channel-last layouts are supported, got: .*\.",
              ),
              (
                  (5, 3, 20, 3, 30),
                  "FCCHW",
                  2,
                  r"Found more the one occurrence of 'F' or 'C' axes in layout: .*\.",
              ),
          ]
          for shape, layout, axes, err_regex in args:
              yield check_fail_gaussian_blur, 10, 1.0, 11, shape, layout, axes, dev, err_regex
          # Negative, disallowed or both unspecified values of sigma and window size
          yield (
              check_fail_gaussian_blur,
              10,
              0.0,
              0,
              (
                  100,
                  20,
                  3,
              ),
              "HWC",
              3,
              dev,
              r"`sigma` and `window_size` shouldn't be 0 at the same time for sample: \d+, "
              r"axis: \d+\.",
          )
          yield (
              check_fail_gaussian_blur,
              10,
              -1.0,
              0,
              (
                  100,
                  20,
                  3,
              ),
              "HWC",
              3,
              dev,
              r"`sigma` must have non-negative values, got .\d* for sample: \d*, axis: \d*\.",
          )
          yield (
              check_fail_gaussian_blur,
              10,
              0.0,
              -11,
              (
                  100,
                  20,
                  3,
              ),
              "HWC",
              3,
              dev,
              r"`window_size` must have non-negative values, got .\d* for sample: \d*, axis : \d*\.",
          )
  
      yield (
          check_fail_gaussian_blur,
          10,
          0.0,
          2,
          (
              100,
              20,
              3,
          ),
          "HWC",
          3,
          "cpu",
          r"Kernel window should have odd length, got: \d*\.",
      )
      yield (
          check_fail_gaussian_blur,
          10,
          0.0,
          2,
          (
              100,
              20,
              3,
          ),
          "HWC",
          3,
          "gpu",
          (
              r"Even or non-centered windows are not supported yet, got window with even length: "
              r"[\s\S]* for sample \d*\."
          ),
      )
  
imports: from nvidia.dali.pipeline import Pipeline, pipeline_def
  import nvidia.dali.types
  import nvidia.dali.fn
  import numpy
  import cv2
  from scipy.ndimage import convolve1d
  import os
  from nose_utils import assert_raises, raises
  from nose.plugins.attrib import attr
  from sequences_test_utils import video_suite_helper, ArgCb
  from test_utils import get_dali_extra_path, check_batch, compare_pipelines, RandomlyShapedDataIterator, dali_type
label_desc: Use image node_id 22 for calling a global function with example usage: test_fail_gaussian_blur() without return types