code: def test_cascaded_preprocessing():
      """Pre-processor unit test"""
  
      # instantiate env
      env = build_dummy_structured_environment()
  
      # pre-processor config
      config = {
          "pre_processor_mapping": [
              {
                  "observation": "observation_0_image",
                  "_target_": "maze.core.wrappers.observation_preprocessing.preprocessors.rgb2gray.Rgb2GrayPreProcessor",
                  "keep_original": False,
                  "config": {"rgb_dim": -1},
              },
              {
                  "observation": "observation_0_image-rgb2gray",
                  "_target_": "maze.core.wrappers.observation_preprocessing.preprocessors.resize_img.ResizeImgPreProcessor",
                  "keep_original": False,
                  "config": {
                      "target_size": [16, 16],
                      "transpose": False,
                  },
              },
          ]
      }
  
      env = PreProcessingWrapper.wrap(
          env, pre_processor_mapping=config["pre_processor_mapping"]
      )
  
      # test application of wrapper
      obs = env.reset()
      observation_keys = list(obs.keys())
  
      assert "observation_0_image-rgb2gray" not in observation_keys
      assert (
          "observation_0_image-rgb2gray-resize_img" in observation_keys
      )
  
imports: import maze.test.core.wrappers.observation_preprocessing
  from maze.core.wrappers.observation_preprocessing.preprocessing_wrapper import PreProcessingWrapper
  from maze.test.core.wrappers.observation_preprocessing.preprocessor_testing_utils import build_dummy_structured_environment
  from maze.test.shared_test_utils.config_testing_utils import load_env_config
label_desc: Use image node_id 3 for calling a global function with example usage: test_cascaded_preprocessing() without return types