text: Title: Automate simple tests cases
  Body:               not for this pull request, but to ease development we could consider to somehow automate the old abstract methods (maybe with some decorators)
  
  _Originally posted by @edgarriba in https://github.com/kornia/kornia/pull/2745#discussion_r1461614395_
  
  just for the record, the old methods that we used in the base test class as abstracts were:
  
  ```python
  
  
      def test_smoke(self, device, dtype):
          # test the function with different parameters arguments, to check if the function at least runs with all the
          # arguments allowed.
          pass
  
      def test_exception(self, device, dtype):
          # tests the exceptions which can occur on your function
  
          # example of how to properly test your exceptions
          # with pytest.raises(<raised Error>) as errinfo:
          #     your_function(<set of parameters that raise the error>)
          # assert '<msg of error>' in str(errinfo)
  
          pass
  
      def test_cardinality(self, device, dtype):
          # test if with different parameters the shape of the output is the expected
          pass
  
      def test_feature_foo(self, device, dtype):
          # test basic functionality
          pass
  
      def test_feature_bar(self, device, dtype):
          # test another functionality
          pass
  
      def test_gradcheck(self, device):
          # test the functionality gradients
          # Uses `self.gradcheck(...)`
          pass
  ```  