code: def test_shear_y(self, device, dtype):
      # prepare input data
      inp = torch.tensor(
          [
              [
                  [1.0, 1.0, 1.0, 1.0],
                  [1.0, 1.0, 1.0, 1.0],
                  [1.0, 1.0, 1.0, 1.0],
                  [1.0, 1.0, 1.0, 1.0],
              ]
          ],
          device=device,
          dtype=dtype,
      )
      expected = torch.tensor(
          [
              [
                  [0.75, 0.25, 0.0, 0.0],
                  [1.0, 1.0, 0.75, 0.25],
                  [1.0, 1.0, 1.0, 1.0],
                  [1.0, 1.0, 1.0, 1.0],
              ]
          ],
          device=device,
          dtype=dtype,
      )
  
      # prepare transformation
      shear = torch.tensor([[0.0, 0.5]], device=device, dtype=dtype)
      transform = kornia.geometry.transform.Shear(
          shear, align_corners=False
      )
      assert_close(transform(inp), 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 2 for calling the TestShear obj's underlying member method code with example usage: obj.test_shear_y(device, dtype) without return types