code: def test_with_drift_object_detection_alternative_properties(
      coco_visiondata_train, coco_visiondata_test
  ):
      # Arrange
      def prop(labels):
          return [int(x[0][0]) if len(x) != 0 else 0 for x in labels]
  
      alternative_properties = [
          {"name": "test", "method": prop, "output_type": "numerical"}
      ]
      check = LabelDrift(
          label_properties=alternative_properties,
          numerical_drift_method="EMD",
      )
  
      # Act
      result = check.run(coco_visiondata_train, coco_visiondata_test)
  
      # Assert
      assert_that(
          result.value,
          has_entries(
              {
                  "test": has_entries(
                      {
                          "Drift score": close_to(0.05, 0.001),
                          "Method": equal_to("Earth Mover's Distance"),
                      }
                  )
              }
          ),
      )
  
file_path: deepchecks/tests/vision/checks/train_test_validation/label_drift_test.py
imports: from hamcrest import assert_that, calling, close_to, equal_to, greater_than, has_entries, has_length, raises
  from deepchecks.core.errors import NotEnoughSamplesError
  from deepchecks.vision.checks import LabelDrift
  from tests.base.utils import equal_condition_result
label_desc: Use image node_id 14 for calling a global function with example usage: test_with_drift_object_detection_alternative_properties(coco_visiondata_train, coco_visiondata_test) and returns: unknown