code: def test_module(self, device, dtype):
      inpt = torch.randn(
          1, 1, 4, 4, requires_grad=True, device=device, dtype=dtype
      )
      estimator = StraightThroughEstimator(
          K.RandomPosterize(3, p=1.0), grad_fn=F.hardtanh
      )
      out = estimator(inpt)
      loss = out.mean()
      loss.backward()
      o = torch.tensor(
          [
              [
                  [
                      [0.0625, 0.0625, 0.0625, 0.0625],
                      [0.0625, 0.0625, 0.0625, 0.0625],
                      [0.0625, 0.0625, 0.0625, 0.0625],
                      [0.0625, 0.0625, 0.0625, 0.0625],
                  ]
              ]
          ],
          device=device,
          dtype=dtype,
      )
      assert_close(inpt.grad, o)
  
file_path: kornia/test/grad_estimator/test_ste.py
imports: import pytest
  import torch
  import torch.nn.functional
  from torch.testing import assert_close
  import kornia.augmentation
  from kornia.grad_estimator import STEFunction, StraightThroughEstimator
label_desc: Use image node_id 3 for calling the TestSTE obj's underlying member method code with example usage: obj.test_module(device, dtype) without return types