code: def test_random_motion_blur(
      self, kernel_size, same_on_batch, p, device, dtype
  ):
      f = RandomMotionBlur(
          kernel_size=kernel_size,
          angle=(10, 30),
          direction=0.5,
          same_on_batch=same_on_batch,
          p=p,
      )
      torch.manual_seed(0)
      batch_size = 2
      input = torch.randn(
          1, 3, 5, 6, device=device, dtype=dtype
      ).repeat(batch_size, 1, 1, 1)
  
      output = f(input)
  
      if same_on_batch:
          assert_close(output[0], output[1], rtol=1e-4, atol=1e-4)
      elif p == 0:
          assert_close(output, input, rtol=1e-4, atol=1e-4)
      else:
          assert not torch.allclose(
              output[0], output[1], rtol=1e-4, atol=1e-4
          )
  
      assert output.shape == torch.Size([batch_size, 3, 5, 6])
  
file_path: kornia/test/augmentation/test_motionblur.py
imports: import pytest
  import torch
  from torch.autograd import gradcheck
  from kornia.augmentation import RandomMotionBlur, RandomMotionBlur3D
  from kornia.filters import motion_blur, motion_blur3d
  from kornia.testing import assert_close, tensor_to_gradcheck_var
label_desc: Use image node_id 2 for calling the TestRandomMotionBlur obj's underlying member method code with example usage: obj.test_random_motion_blur(kernel_size, same_on_batch, p, device, dtype) without return types