code: def test_calc_properties(coco_visiondata_train):
      images = next(iter(coco_visiondata_train.batch_loader))["images"]
      results = calc_vision_properties(images, default_image_properties)
      assert_that(
          results.keys(),
          contains_exactly(
              "Aspect Ratio",
              "Area",
              "Brightness",
              "RMS Contrast",
              "Mean Red Relative Intensity",
              "Mean Green Relative Intensity",
              "Mean Blue Relative Intensity",
          ),
      )
      assert_that(sum(results["Brightness"]), close_to(15.56, 0.01))
  
imports: from hamcrest import assert_that, calling, close_to, contains_exactly, equal_to, is_, raises
  from deepchecks.core.errors import DeepchecksValueError
  from deepchecks.vision import Suite
  from deepchecks.vision.checks import ImagePropertyOutliers
  from deepchecks.vision.utils.image_properties import calc_default_image_properties, default_image_properties, texture_level
  from deepchecks.vision.utils.label_prediction_properties import DEFAULT_CLASSIFICATION_LABEL_PROPERTIES, DEFAULT_CLASSIFICATION_PREDICTION_PROPERTIES, DEFAULT_OBJECT_DETECTION_LABEL_PROPERTIES, DEFAULT_OBJECT_DETECTION_PREDICTION_PROPERTIES, DEFAULT_SEMANTIC_SEGMENTATION_LABEL_PROPERTIES, DEFAULT_SEMANTIC_SEGMENTATION_PREDICTION_PROPERTIES
  from deepchecks.vision.utils.vision_properties import calc_vision_properties, validate_properties
label_desc: Use image node_id 1 for calling a global function with example usage: test_calc_properties(coco_visiondata_train) without return types