code: def test_smoke(
      self,
      shape,
      kernel_size,
      angle,
      direction,
      mode,
      params_as_tensor,
      device,
      dtype,
  ):
      B, C, H, W = shape
      inpt = torch.rand(shape, device=device, dtype=dtype)
  
      if params_as_tensor is True:
          angle = torch.tensor(
              [angle], device=device, dtype=dtype
          ).repeat(B)
          direction = torch.tensor(
              [direction], device=device, dtype=dtype
          ).repeat(B)
      actual = motion_blur(
          inpt, kernel_size, angle, direction, "constant", mode
      )
  
      assert isinstance(actual, torch.Tensor)
      assert actual.shape == shape
  
imports: import pytest
  import torch
  from kornia.filters import MotionBlur, MotionBlur3D, get_motion_kernel2d, get_motion_kernel3d, motion_blur, motion_blur3d
  from kornia.testing import BaseTester, tensor_to_gradcheck_var
label_desc: Use image node_id 1 for calling the TestMotionBlur obj's underlying member method code with example usage: obj.test_smoke(shape, kernel_size, angle, direction, mode, params_as_tensor, device, dtype) without return types