code: def test_all_classes(self):
      def get_all_classes(module, level):
          class_list = []
  
          if level == 4:
              return []
  
          for _, obj in inspect.getmembers(module):
              if inspect.ismodule(obj):
                  sublist = get_all_classes(obj, level + 1)
                  if sublist != []:
                      class_list.append(sublist)
              elif inspect.isclass(obj):
                  if inspect.isabstract(obj) is True:
                      sublist = get_all_classes(obj, level + 1)
                      if sublist != []:
                          class_list.append(sublist)
                  elif inspect.isbuiltin(obj) is False:
                      try:
                          source_file = inspect.getsourcefile(obj)
                          if source_file is None:
                              continue
                          if issubclass(obj, Enum):
                              continue
                          if "python" not in str(source_file):
                              class_list.append([obj])
                      except OSError:
                          pass
                      except TypeError:
                          pass
  
          flat_class_list = [
              item for sublist in class_list for item in sublist
          ]
          return set(flat_class_list)
  
      class_list = get_all_classes(evadb, 1)
  
      base_id = 0
      ref_object = None
      for class_type in class_list:
          base_id = base_id + 1
          sig = inspect.signature(class_type.__init__)
          params = sig.parameters
          len_params = len(params)
          if "kwargs" in params:
              len_params = len_params - 1
          if "args" in params:
              len_params = len_params - 1
          try:
              dummy_object = get_mock_object(class_type, len_params)
          except Exception:
              continue
  
          if base_id == 0:
              ref_object = dummy_object
          else:
              self.assertEqual(dummy_object, dummy_object)
              self.assertNotEqual(ref_object, dummy_object)
  
          # Check name
          try:
              inspect.signature(class_type.name)
          except Exception:
              continue
  
          name_str = dummy_object.name()
          self.assertTrue(name_str is not None)
  
file_path: evadb/test/unit_tests/functions/test_abstract_udf.py
imports: import inspect
  import unittest
  from enum import Enum
  from inspect import isabstract
  from test.util import get_all_subclasses, get_mock_object
  import evadb
  from evadb.functions.abstract.abstract_function import AbstractFunction
  from evadb.functions.abstract.hf_abstract_function import AbstractHFFunction
  from evadb.functions.yolo_object_detector import Yolo
label_desc: Use image node_id 2 for calling the AbstractFunctionTest obj's underlying member method code with example usage: obj.test_all_classes() and returns: set, list