code: def test_affine_rotate(self, device, dtype):
      # TODO: Remove when #666 is implemented
      if device.type == "cuda":
          pytest.skip(
              "Currently breaks in CUDA."
              "See https://github.com/kornia/kornia/issues/666"
          )
      torch.manual_seed(0)
      angle = torch.rand(1, device=device, dtype=dtype) * 90.0
      input = torch.rand(1, 2, 3, 4, device=device, dtype=dtype)
  
      transform = kornia.geometry.transform.Affine(angle=angle).to(
          device=device, dtype=dtype
      )
      actual = transform(input)
      expected = kornia.geometry.transform.rotate(input, angle)
      assert_close(actual, expected, atol=1e-4, rtol=1e-4)
  
imports: import pytest
  import torch
  from torch.autograd import gradcheck
  import kornia
  import kornia.testing
  from kornia.testing import assert_close
label_desc: Use image node_id 3 for calling the TestAffine2d obj's underlying member method code with example usage: obj.test_affine_rotate(device, dtype) without return types