code: def test_smoke(self, device, dtype):
      sample = torch.rand(1, 3, 3, 4, 5, device=device, dtype=dtype)
      P = torch.rand(1, 3, 4, device=device, dtype=dtype)
      output = proj.warp_affine3d(sample, P, (3, 4, 5))
      assert output.shape == (1, 3, 3, 4, 5)
  
imports: import pytest
  import torch
  from torch.autograd import gradcheck
  import kornia
  import kornia.geometry.transform
  import kornia.testing
  from kornia.testing import assert_close
  from kornia.utils.helpers import _torch_inverse_cast
label_desc: Use image node_id 1 for calling the TestWarpAffine3d obj's underlying member method code with example usage: obj.test_smoke(device, dtype) without return types