code: def test_rms_contrast_rgb():
      # Create image that after turning from rgb to grayscale is 30% value 0 and 70% value 3:
      value = np.concatenate(
          [
              np.zeros((3, 10, 3)),
              np.concatenate(
                  [
                      np.ones((7, 10, 1)) * 1 / 0.2125,
                      np.ones((7, 10, 1)) * 1 / 0.7154,
                      np.ones((7, 10, 1)) * 1 / 0.0721,
                  ],
                  axis=2,
              ),
          ],
          axis=0,
      )
  
      expected_value = np.sqrt((210 * 0.9**2 + 90 * 2.1**2) / 300)
  
      batch = next(iter(numpy_shape_dataloader(value=value)))
  
      res = image_properties.rms_contrast(batch)
  
      assert_that(res[0], close_to(expected_value, 0.00001))
  
imports: from itertools import permutations
  from typing import Union
  import numpy
  import torch
  from hamcrest import assert_that, calling, close_to, equal_to, raises
  from torch.utils.data import DataLoader, Dataset
  from deepchecks.vision.datasets.detection import coco_torch
  from deepchecks.vision.utils import image_properties
  from deepchecks.vision.utils.detection_formatters import convert_batch_of_bboxes, convert_bbox, verify_bbox_format_notation
  from deepchecks.vision.vision_data import VisionData
label_desc: Use image node_id 5 for calling a global function with example usage: test_rms_contrast_rgb() without return types